Esempio n. 1
0
def get_dashboard_partials(service_id):
    all_statistics = template_statistics_client.get_template_statistics_for_service(
        service_id, limit_days=7)
    template_statistics = aggregate_template_usage(all_statistics)

    scheduled_jobs, immediate_jobs = [], []
    if job_api_client.has_jobs(service_id):
        scheduled_jobs = job_api_client.get_scheduled_jobs(service_id)
        immediate_jobs = [
            add_rate_to_job(job)
            for job in job_api_client.get_immediate_jobs(service_id)
        ]

    stats = aggregate_notifications_stats(all_statistics)
    column_width, max_notifiction_count = get_column_properties(
        number_of_columns=(
            3 if current_service.has_permission('letter') else 2))
    dashboard_totals = get_dashboard_totals(stats),
    highest_notification_count = max(
        sum(value[key] for key in {'requested', 'failed', 'delivered'})
        for key, value in dashboard_totals[0].items())

    return {
        'upcoming':
        render_template('views/dashboard/_upcoming.html',
                        scheduled_jobs=scheduled_jobs),
        'inbox':
        render_template(
            'views/dashboard/_inbox.html',
            inbound_sms_summary=(
                service_api_client.get_inbound_sms_summary(service_id)
                if current_service.has_permission('inbound_sms') else None),
        ),
        'totals':
        render_template(
            'views/dashboard/_totals.html',
            service_id=service_id,
            statistics=dashboard_totals[0],
            column_width=column_width,
            smaller_font_size=(highest_notification_count >
                               max_notifiction_count),
        ),
        'template-statistics':
        render_template(
            'views/dashboard/template-statistics.html',
            template_statistics=template_statistics,
            most_used_template_count=max(
                [row['count'] for row in template_statistics] or [0]),
        ),
        'has_template_statistics':
        bool(template_statistics),
        'jobs':
        render_template('views/dashboard/_jobs.html', jobs=immediate_jobs),
        'has_jobs':
        bool(immediate_jobs)
    }
Esempio n. 2
0
def get_dashboard_partials(service_id):
    all_statistics = template_statistics_client.get_template_statistics_for_service(
        service_id, limit_days=7)
    template_statistics = aggregate_template_usage(all_statistics)

    scheduled_jobs, immediate_jobs = [], []
    if job_api_client.has_jobs(service_id):
        scheduled_jobs = job_api_client.get_scheduled_jobs(service_id)
        immediate_jobs = [
            add_rate_to_job(job)
            for job in job_api_client.get_immediate_jobs(service_id)
        ]

    stats = aggregate_notifications_stats(all_statistics)
    column_width, max_notifiction_count = get_column_properties(
        number_of_columns=(
            3 if current_service.has_permission("letter") else 2))
    dashboard_totals = (get_dashboard_totals(stats), )
    highest_notification_count = max(
        sum(value[key] for key in {"requested", "failed", "delivered"})
        for key, value in dashboard_totals[0].items())

    return {
        "upcoming":
        render_template("views/dashboard/_upcoming.html",
                        scheduled_jobs=scheduled_jobs),
        "totals":
        render_template(
            "views/dashboard/_totals.html",
            service_id=service_id,
            statistics=dashboard_totals[0],
            column_width=column_width,
            smaller_font_size=(highest_notification_count >
                               max_notifiction_count),
        ),
        "template-statistics":
        render_template(
            "views/dashboard/template-statistics.html",
            template_statistics=template_statistics,
            most_used_template_count=max(
                [row["count"] for row in template_statistics] or [0]),
        ),
        "has_template_statistics":
        bool(template_statistics),
        "jobs":
        render_template("views/dashboard/_jobs.html", jobs=immediate_jobs),
        "has_jobs":
        bool(immediate_jobs),
        "has_scheduled_jobs":
        bool(scheduled_jobs),
    }
Esempio n. 3
0
 def has_jobs(self):
     # Can’t import at top-level because app isn’t yet initialised
     from app import job_api_client
     return job_api_client.has_jobs(self.id)