예제 #1
0
def test_metric_as_dict(db_connection):
    Metric.create(name='avg_monthly_users', value=1200)
    Metric.create(name='avg_monthly_pageviews', value=6400)

    assert Metric.as_dict() == {
        'avg_monthly_users': 1200,
        'avg_monthly_pageviews': 6400,
    }
예제 #2
0
def hire_juniors():
    with db:
        metrics = Metric.as_dict()
    return render_template('hire_juniors.html',
                           nav_active='jobs',
                           subnav_tabs=JOBS_SUBNAV_TABS,
                           subnav_active='hire_juniors',
                           metrics=metrics,
                           thumbnail=thumbnail(title='Najímejte odhodlané juniory'))
예제 #3
0
def jobs():
    with db:
        metrics = dict(**Metric.as_dict(), **Job.aggregate_metrics())
        jobs = Job.listing()
    return render_template('jobs.html',
                           nav_active='jobs',
                           subnav_tabs=JOBS_SUBNAV_TABS,
                           subnav_active='jobs',
                           jobs=jobs,
                           regions=REGIONS,
                           metrics=metrics,
                           thumbnail=thumbnail(title='Práce v\u00a0IT pro začátečníky'))
예제 #4
0
def job(job_id):
    with db:
        metrics = dict(**Metric.as_dict(), **Job.aggregate_metrics())
        job = Job.juniorguru_get_by_id(job_id)
    return render_template('job.html',
                           nav_active='jobs',
                           subnav_tabs=JOBS_SUBNAV_TABS,
                           subnav_active='jobs',
                           job=job,
                           metrics=metrics,
                           thumbnail=thumbnail(job_title=job.title,
                                               job_company=job.company_name,
                                               job_location=job.location))
예제 #5
0
def jobs_region(region_id):
    region = [reg for reg in REGIONS if reg['id'] == region_id][0]
    with db:
        metrics = dict(**Metric.as_dict(), **Job.aggregate_metrics())
        jobs = Job.region_listing(region['name'])
    return render_template('jobs_region.html',
                           nav_active='jobs',
                           subnav_tabs=JOBS_SUBNAV_TABS,
                           subnav_active='jobs',
                           jobs=jobs,
                           region=region,
                           regions=REGIONS,
                           metrics=metrics,
                           thumbnail=thumbnail(title=f"Práce v\u00a0IT pro začátečníky —\u00a0{region['name']}"))
예제 #6
0
def on_theme_context(context, page, config):
    context['page'].meta.setdefault(
        'title', 'Jak se naučit programovat a získat první práci v IT')

    context['thumbnail'] = thumbnail()
    context['nav_topics'] = sorted([
        file.page
        for file in context['pages'] if file.url.startswith('topics/')
    ],
                                   key=attrgetter('url'))

    metrics = Metric.as_dict()
    context['metrics'] = metrics
    context['metrics_inc_breakdown'] = sorted(
        ((METRICS_INC_NAMES[name], value) for name, value in metrics.items()
         if name.startswith('inc_') and name.endswith('_pct')),
        key=itemgetter(1),
        reverse=True)
예제 #7
0
def main():
    google_analytics_metrics = fetch_from_google_analytics()
    mailchimp_metrics = fetch_from_mailchimp()

    with db:
        Metric.drop_table()
        Metric.create_table()

        google_analytics_metric_names = [
            'avg_monthly_users',
            'avg_monthly_pageviews',
            'avg_monthly_handbook_users',
            'avg_monthly_handbook_pageviews',
            'avg_monthly_handbook_logo_clicks',
            'avg_monthly_jobs_users',
        ]
        for name in google_analytics_metric_names:
            Metric.create(name=name, value=google_analytics_metrics[name])
        Metric.create(name='subscribers',
                      value=mailchimp_metrics['subscribers'])

        JobMetric.drop_table()
        JobMetric.create_table()

        for url, value in google_analytics_metrics['users_per_job'].items():
            try:
                job = Job.get_by_url(url)
                JobMetric.create(job=job, name='users', value=value)
            except Job.DoesNotExist:
                pass

        for url, value in google_analytics_metrics['pageviews_per_job'].items(
        ):
            try:
                job = Job.get_by_url(url)
                JobMetric.create(job=job, name='pageviews', value=value)
            except Job.DoesNotExist:
                pass

        for url, value in google_analytics_metrics[
                'applications_per_job'].items():
            try:
                job = Job.get_by_url(url)
                JobMetric.create(job=job, name='applications', value=value)
            except Job.DoesNotExist:
                pass

        users_per_external_url = merge_metric_dicts(
            google_analytics_metrics['users_per_external_job'],
            mailchimp_metrics['users_per_external_url'])
        for url, value in users_per_external_url.items():
            try:
                job = Job.get_by_link(url)
                JobMetric.create(job=job, name='users', value=value)
            except Job.DoesNotExist:
                pass

        pageviews_per_external_url = merge_metric_dicts(
            google_analytics_metrics['pageviews_per_external_job'],
            mailchimp_metrics['pageviews_per_external_url'])
        for url, value in pageviews_per_external_url.items():
            try:
                job = Job.get_by_link(url)
                JobMetric.create(job=job, name='pageviews', value=value)
            except Job.DoesNotExist:
                pass

        LogoMetric.drop_table()
        LogoMetric.create_table()

        for url, value in google_analytics_metrics['clicks_per_logo'].items():
            try:
                logo = Logo.get_by_url(url)
                LogoMetric.create(logo=logo, name='clicks', value=value)
            except Logo.DoesNotExist:
                pass

        for logo in Logo.listing():
            values = google_analytics_metrics['handbook_users_per_date']
            metric = LogoMetric.from_values_per_date(logo, 'users', values)
            metric.save()
            values = google_analytics_metrics['handbook_pageviews_per_date']
            metric = LogoMetric.from_values_per_date(logo, 'pageviews', values)
            metric.save()
예제 #8
0
def admin():
    with db:
        metrics = Metric.as_dict()
    return render_template('admin.html', metrics=metrics)