|
|
{% extends "base.html" %} {% block content %} |
|
|
<div class="container py-4"> |
|
|
<h1 class="h2 mb-4">Admin Dashboard</h1> |
|
|
|
|
|
|
|
|
<div class="row"> |
|
|
<div class="col-xl-4 col-md-6 mb-4"> |
|
|
<div class="card stat-card border-left-primary"> |
|
|
<div class="card-body"> |
|
|
<div> |
|
|
<div class="text-xs text-primary text-uppercase"> |
|
|
Total Registered Users |
|
|
</div> |
|
|
<div class="h5 mb-0">{{ user_count }}</div> |
|
|
</div> |
|
|
<div class="card-icon"><i class="fas fa-users"></i></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
<div class="col-xl-4 col-md-6 mb-4"> |
|
|
<div class="card stat-card border-left-success"> |
|
|
<div class="card-body"> |
|
|
<div> |
|
|
<div class="text-xs text-success text-uppercase"> |
|
|
Total Tests Submitted |
|
|
</div> |
|
|
<div class="h5 mb-0">{{ report_count }}</div> |
|
|
</div> |
|
|
<div class="card-icon"><i class="fas fa-clipboard-list"></i></div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
|
|
|
<div class="row"> |
|
|
<div class="col-lg-8"> |
|
|
<div class="card shadow-sm chart-card mb-4"> |
|
|
<div class="card-header py-3"> |
|
|
<h6 class="m-0 fw-bold text-primary">Test Results Breakdown</h6> |
|
|
</div> |
|
|
<div class="card-body"> |
|
|
{% if chart_data %} |
|
|
<div class="chart-pie pt-4"><canvas id="myPieChart"></canvas></div> |
|
|
<div class="mt-4 text-center small"> |
|
|
{% for label in chart_labels %} |
|
|
<span class="me-3"> |
|
|
<i class="fas fa-circle color-{{ loop.index }}"></i> {{ label }} |
|
|
</span> |
|
|
{% endfor %} |
|
|
</div> |
|
|
{% else %} |
|
|
<p class="text-center text-muted p-5"> |
|
|
No test data available to generate a chart. |
|
|
</p> |
|
|
{% endif %} |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
</div> |
|
|
|
|
|
<a |
|
|
href="{{ url_for('main.admin_users') }}" |
|
|
class="btn btn-info" |
|
|
>Manage Users</a |
|
|
> |
|
|
</div> |
|
|
{% endblock %} {% block scripts %} {# Only include scripts if there is data to |
|
|
draw #} {% if chart_data %} |
|
|
|
|
|
<script src="https://cdn.jsdelivr.net/npm/chart.js@3.9.1/dist/chart.min.js"></script> |
|
|
|
|
|
|
|
|
<script> |
|
|
var chartLabels = {{ chart_labels|tojson|safe }}; |
|
|
var chartData = {{ chart_data|tojson|safe }}; |
|
|
</script> |
|
|
|
|
|
|
|
|
<script |
|
|
src="{{ url_for('static', filename='js/admin-charts.js') }}" |
|
|
defer |
|
|
></script> |
|
|
{% endif %} {% endblock %} |
|
|
|