{% extends "base.html" %} {% load helpers %} {% load intent_extras %} {% block title %}Intent Engine Dashboard{% endblock title %} {% block content %} {# ══════════════════════════════════════════════════════════════════════════ #} {# KPI STAT CARDS #} {# ══════════════════════════════════════════════════════════════════════════ #}

{{ total_intents }}

Total Intents

{{ deployed_count }}

Deployed

{{ failed_count }}

Failed

{{ pending_approvals }}

Pending Approval

{{ deploying_count }}

Deploying

{{ verification_pass_pct }}%

Verification Pass

{# ══════════════════════════════════════════════════════════════════════════ #} {# QUICK ACTIONS #} {# ══════════════════════════════════════════════════════════════════════════ #}
{# ════════════════════════════════════════════════════════════════════════ #} {# LEFT COLUMN #} {# ════════════════════════════════════════════════════════════════════════ #}
{# ── Status Breakdown ──────────────────────────────────────────────── #}
Intent Status Breakdown View all →
{% if status_counts %}
{% for item in status_counts %}
{{ item.count }} {{ item.status__name|default:"Unknown" }}
{% endfor %}
{% else %}

No intents recorded.

{% endif %}
{# ── Recent Intents ────────────────────────────────────────────────── #}
Recent Intents View all →
{% for intent in recent_intents %} {% empty %} {% endfor %}
Intent ID Type Tenant Status Updated
{{ intent.intent_id }} {{ intent.get_intent_type_display }} {{ intent.tenant|default:"—" }} {{ intent.status }} {{ intent.last_updated|timesince }} ago
No intents yet.
{# ── NUTS Verification Results (last 15) ─────────────────── #}
Recent NUTS Verifications View all →
{% for v in recent_nuts_results %} {# ── Expandable check details row ── #} {% empty %} {% endfor %}
Intent Engine Checks Escalation When
{% if v.passed %}✅{% else %}❌{% endif %} {{ v.intent.intent_id }} {{ v.verification_engine|title }} {% with total=v.checks|length %} {% if total %} {% for c in v.checks %}{% if c.passed %}{% endif %}{% endfor %} {% with pass_count=v.passed_check_count fail_count=v.failed_check_count %} {% if pass_count %}{{ pass_count }} passed{% endif %} {% if pass_count and fail_count %} · {% endif %} {% if fail_count %}{{ fail_count }} failed{% endif %} {% if not pass_count and not fail_count %}{{ total }} check{{ total|pluralize }}{% endif %} {% endwith %} {% else %} {% endif %} {% endwith %} {% if v.escalation_reason %} {{ v.escalation_reason|truncatewords:6 }} {% else %} {% endif %} {{ v.verified_at|timesince }} ago
No NUTS verifications yet. Set an intent's verification level to "NUTS" to start.
{% if recent_nuts_results %} {% endif %}
{# ── Intent Type Distribution ──────────────────────────────────────── #}
Top Intent Types
{% for item in intent_type_breakdown %}
{{ item.intent_type }} {{ item.count }}
{% empty %}

No intent type data.

{% endfor %}
{# ════════════════════════════════════════════════════════════════════════ #} {# RIGHT COLUMN #} {# ════════════════════════════════════════════════════════════════════════ #}
{# ── Verification Health ───────────────────────────────────────────── #}
Verification Health View all →
{% if total_verifications %}
{{ verification_pass_pct }}%

{{ passed_verifications }} passed · {{ failed_verifications }} failed
of {{ total_verifications }} total checks

{% else %}

No verifications run yet.

{% endif %}
{# ── IPAM Resources (Nautobot native) ────────────────────────────────── #}
IPAM Resources
{{ vrf_count }} VRFs
{{ rt_count }} Route Targets
{{ namespace_count }} Namespaces
{% if namespaces %}
{% for ns in namespaces %}
{{ ns.name }} {% if ns.location %} — {{ ns.location }}{% endif %} {{ ns.vrfs.count }} VRFs
{% endfor %}
{% endif %}
{# ── Resource Pool Utilisation ─────────────────────────────────────── #}
Resource Pool Utilisation
{% for pool in vni_pools %}
VNI: {{ pool.name }} {{ pool.utilisation_pct }}%
{% endfor %} {% for pool in tunnel_pools %}
Tunnel: {{ pool.name }} {{ pool.utilisation_pct }}%
{% endfor %} {% for pool in loopback_pools %}
Loopback: {{ pool.name }} {{ pool.utilisation_pct }}%
{% endfor %} {% for pool in wireless_pools %}
WLAN: {{ pool.name }} {{ pool.utilisation_pct }}%
{% endfor %} {% if not vni_pools and not tunnel_pools and not loopback_pools and not wireless_pools %}

No resource pools configured.

{% endif %}
{# ── Recent Audit Activity ─────────────────────────────────────────── #}
Recent Activity View all →
{% for entry in recent_audit %}
{{ entry.action|title }} {% if entry.intent %} — {{ entry.intent.intent_id }} {% endif %}
{% if entry.user %}{{ entry.user }} · {% endif %}{{ entry.timestamp|timesince }} ago
{% empty %}
No audit entries yet.
{% endfor %}
{# ── Recent Verifications ──────────────────────────────────────────── #}
Latest Verifications
{% for v in recent_verifications %}
{% if v.passed %}✅{% else %}❌{% endif %} {{ v.intent.intent_id }} {{ v.verified_at|timesince }} ago
{% empty %}
No verifications yet.
{% endfor %}
{% endblock content %}