{% extends 'generic/_base.html' %} {% load i18n %} {% load render_table from django_tables2 %} {% block title %}{% trans "Object Report" %}{% endblock %} {% block content %}
{# ── Header: last run + manual run ─────────────────────────────── #}
{% trans "NSM Object Report" %}
{% if generated_at %}
{% trans "Last run" %}: {{ generated_at }}
{% blocktrans with d=generated_at|timesince %}{{ d }} ago{% endblocktrans %} {% if run_by %} · {% trans "by" %} {{ run_by }}{% endif %} {% if report.duration_s %} · {{ report.duration_s }}s{% endif %}
{% else %}
{% trans "Never run yet" %}
{% trans "The report runs automatically once per day, or start it manually." %}
{% endif %}
{% csrf_token %} {% if pending_job %} {% trans "Run in progress" %} (#{{ pending_job.pk }}) {% endif %}
{% if not report %}
{% trans "No object report available yet. Start a run to generate one." %}
{% else %} {% if not report.available %}
{{ report.message }}
{% else %} {# ── Summary counters ───────────────────────────────────────── #}
{% trans "Summary" %}
{{ report.totals.addresses }}
{% trans "Address objects" %}
{{ report.totals.ipam_linked }}
{% trans "IPAM-linked" %}
{{ report.totals.groups }}
{% trans "Address groups" %}
{{ report.findings_total }}
{% trans "Total findings" %}
{# ── Checks table (NetBox object-list via django-tables2) ───── #} {% if table %}
{% trans "Checks" %} {% trans "Export TOML" %}
{% render_table table 'netbox_nsm/inc/object_report_check_table.html' %}
{% endif %} {% endif %} {% endif %}
{% endblock %}