{% extends "django_forms_workflows/base.html" %} {% load static %} {% block title %}Analytics Dashboard — {{ site_name }}{% endblock %} {% block extra_css %} {% endblock %} {% block content %}
{# ── Header + Filters ─────────────────────────────────────────────── #}

Analytics Dashboard

Export
{# ── Summary Cards (with period comparison) ───────────────────────── #}
{{ total_submissions }}
Total Submissions
{% if total_change is not None %}
{{ total_change }}% vs prev {{ range_days }}d
{% endif %}
{{ pending_count }}
Pending
{{ approved_count }}
Approved
{% if approved_change is not None %}
{{ approved_change }}%
{% endif %}
{{ rejected_count }}
Rejected
{% if rejected_change is not None %}
{{ rejected_change }}%
{% endif %}
{{ withdrawn_count }}
Withdrawn
{{ overdue_count }}
Overdue Tasks
{# ── Turnaround + Approval Rate Cards ─────────────────────────────── #}
{% if approval_rate is not None %}{{ approval_rate }}%{% else %}N/A{% endif %}
Approval Rate
{% if approval_rate_change is not None %}
{{ approval_rate_change }}pp
{% endif %}
{{ turnaround.avg }}
Avg Approval Time
{{ turnaround.fastest }}
Fastest Approval
{{ turnaround.slowest }}
Slowest Approval
{# ── Charts Row 1 ─────────────────────────────────────────────────── #}
Submissions Over Time
Status Breakdown
{# ── Charts Row 2 ─────────────────────────────────────────────────── #}
Monthly Volume
Submissions by Form
{# ── Tables Row ───────────────────────────────────────────────────── #}
{# Bottleneck stages #}
Bottleneck Stages
{% if bottleneck_stages %} {% for s in bottleneck_stages %} {% endfor %}
StageFormPending
{{ s.workflow_stage__name }} {{ s.workflow_stage__workflow__form_definition__name }} {{ s.pending }}
{% else %}

No pending tasks right now.

{% endif %}
{# Stage turnaround #}
Avg Turnaround by Stage
{% if stage_turnaround %} {% for s in stage_turnaround %} {% endfor %}
StageAvg TimeTasks
{{ s.workflow_stage__name }} {{ s.avg_display }} {{ s.task_count }}
{% else %}

No completed tasks yet.

{% endif %}
{# Top approvers #}
Top Approvers
{% if top_approvers %} {% for a in top_approvers %} {% endfor %}
ApproverCompleted
{% if a.completed_by__first_name %} {{ a.completed_by__first_name }} {{ a.completed_by__last_name }} {% else %} {{ a.completed_by__username }} {% endif %} {{ a.completed }}
{% else %}

No approvals completed yet.

{% endif %}
{% endblock %} {% block extra_js %} {% endblock %}