{# pages/dashboard.html — premium dashboard #} {% extends "base.html" %} {% block title %}{{ title | default("Admin") }} — Dashboard{% endblock %} {% block content %} {% set _colors = { 'Categories': 'teal', 'Products': 'purple', 'Users': 'blue', 'Orders': 'orange', 'Order Items': 'green', 'Order Itemss': 'green', 'Admin Field Permissions': 'yellow', 'Admin Field Permissionss': 'yellow', 'Admin Permissions': 'red', 'Admin Permissionss': 'red', 'Admin Users': 'indigo', 'Admin Userss': 'indigo', 'Admin Audit Logs': 'cyan', 'Admin Roles': 'pink', 'Admin Roless': 'pink' } %}
{# ─── Page Header ─── #} {# ─── Stat Cards ─── #}
{% for card in stat_cards %} {% set _color = _colors[card.title] | default('teal') %}
{{ icon(card.icon, size="20px") }}
{{ card.title }}
{{ card.count }}
Total {{ card.title | lower }} {% if card.has_trend %} {% if card.trend_direction == 'up' %}{{ icon('arrow-up', size="10px") }}{% else %}{{ icon('arrow-down', size="10px") }}{% endif %} {{ card.trend_pct }}% vs last 30 days {% endif %}
{# Wave decoration #}
{% endfor %}
{# ─── Bottom Grid: Activity + Quick Actions ─── #}
{# Recent Activity #}
{{ icon('clock', size="18px") }}

Recent Activity

Latest system activities will appear here

{% if recent_audit %} View all {{ icon('chevron-right', size="14px") }} {% endif %}
{% if recent_audit %}
{% for entry in recent_audit %}
{% if entry.action == 'CREATE' %}
{{ icon('plus', size="16px") }}
{% elif entry.action == 'UPDATE' %}
{{ icon('pencil', size="16px") }}
{% elif entry.action == 'DELETE' %}
{{ icon('trash', size="16px") }}
{% endif %}
{{ entry.user_email | default("System") }} {{ entry.action | lower }}d {{ entry.model_name }} #{{ entry.object_id }}
{{ entry.timestamp }}
{% endfor %}
{% else %}
{{ icon('clock', size="32px") }}

No recent Activity

System activities will appear here

{% endif %}
{# Quick Actions #}
{{ icon('bolt', size="18px") }}

Quick Actions

Common actions at your fingertips

{% set _action_colors = { 'Categories': {'bg': 'rgba(20, 184, 166, 0.12)', 'fg': '#14b8a6'}, 'Products': {'bg': 'rgba(139, 92, 246, 0.12)', 'fg': '#8b5cf6'}, 'Users': {'bg': 'rgba(59, 130, 246, 0.12)', 'fg': '#3b82f6'}, 'Orders': {'bg': 'rgba(249, 115, 22, 0.12)', 'fg': '#f97316'}, 'Order Items': {'bg': 'rgba(34, 197, 94, 0.12)', 'fg': '#22c55e'}, 'Admin Audit Logs': {'bg': 'rgba(6, 182, 212, 0.12)', 'fg': '#06b6d4'}, 'Audit Logs': {'bg': 'rgba(6, 182, 212, 0.12)', 'fg': '#06b6d4'}, 'Admin Roles': {'bg': 'rgba(236, 72, 153, 0.12)', 'fg': '#ec4899'}, 'Roles': {'bg': 'rgba(236, 72, 153, 0.12)', 'fg': '#ec4899'}, 'Admin Users': {'bg': 'rgba(99, 102, 241, 0.12)', 'fg': '#6366f1'}, 'Admin Permissions': {'bg': 'rgba(239, 68, 68, 0.12)', 'fg': '#ef4444'}, 'Permissions': {'bg': 'rgba(239, 68, 68, 0.12)', 'fg': '#ef4444'}, 'Admin Field Permissions': {'bg': 'rgba(234, 179, 8, 0.12)', 'fg': '#eab308'}, 'Refresh Tokens': {'bg': 'rgba(168, 85, 247, 0.12)', 'fg': '#a855f7'}, '2FA Tokens': {'bg': 'rgba(20, 184, 166, 0.12)', 'fg': '#14b8a6'}, 'Login Attempts': {'bg': 'rgba(249, 115, 22, 0.12)', 'fg': '#f97316'} } %} {% if recent_activity_models %} {% for registered in recent_activity_models %} {% set _ac = _action_colors[registered.verbose_name_plural] | default({'bg': 'var(--primary-50)', 'fg': 'var(--primary-600)'}) %}
{{ icon(registered.admin.icon | default('cube'), size="18px") }}
{{ registered.verbose_name_plural }}
Manage {{ registered.verbose_name | lower }}
{{ icon('chevron-right', size="18px", class="action-chevron") }}
{% endfor %} {% else %} {# Fallback: show first 5 admin-tagged models if no activity yet #} {% set ns = namespace(count=0) %} {% for registered in registered_models %} {% if ns.count < 5 and registered.admin.tag | default('') == 'admin' %} {% set ns.count = ns.count + 1 %} {% set _ac = _action_colors[registered.verbose_name_plural] | default({'bg': 'var(--primary-50)', 'fg': 'var(--primary-600)'}) %}
{{ icon(registered.admin.icon | default('cube'), size="18px") }}
{{ registered.verbose_name_plural }}
Manage {{ registered.verbose_name | lower }}
{{ icon('chevron-right', size="18px", class="action-chevron") }}
{% endif %} {% endfor %} {% endif %} {# Extra: System Logs link #}
{{ icon('document-text', size="18px") }}
System Logs
View system audit logs
{{ icon('chevron-right', size="18px", class="action-chevron") }}
{# ─── Charts ─── #} {% if overview_data and show_charts %}

Charts

{{ icon('chart-bar') }}
System Overview
{% for item in overview_data %} {% if item.value > 0 %}
{{ item.label }} {{ item.value }}
{% endif %} {% endfor %}
Total {{ overview_total }}
{% endif %}
{% endblock %}