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, }
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'))
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'))
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))
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']}"))
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)
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()
def admin(): with db: metrics = Metric.as_dict() return render_template('admin.html', metrics=metrics)