{# Copyright 2026 Ronny Trommer #} {# SPDX-License-Identifier: MIT #} {# Last-sync panel (Story 4.2). Expects `sync_status` in context: a dict with `foreign_source`, `requisition`, `governed`, `excluded`, `conflicts` (list of requisition names when the object is matched by ≥2 filters), `job`, `outcome` (label, color) — or None. Shown on the Device/VM detail page. #} {% load helpers %}

OpenNMS Sync Status

{% if sync_status.warning_no_management_ip %} {% endif %} {% if sync_status.job %} {% if perms.core.view_job %} {% if sync_status.job.error %} {% endif %} {% endif %} {% else %} {% endif %}
Foreign Source {% if sync_status.foreign_source %} {{ sync_status.foreign_source }} {% else %}{{ ''|placeholder }}{% endif %}
Monitored {% if sync_status.conflicts %} Conflicted between {{ sync_status.conflicts|join:", " }} — resolve the filter overlap before this object can be synced. {% elif sync_status.excluded %} Excluded by override {% elif sync_status.governed %} {% checkmark True %} via {{ sync_status.requisition|linkify }} {% else %} No requisition {% endif %}
Warning No management IP — will be provisioned as a node with no IP interface (not actively monitored).
Last sync {{ sync_status.outcome.0 }} Reflects the whole Foreign Source, not just this object.
When {{ sync_status.job.completed|default:sync_status.job.created }}
Error
{{ sync_status.job.error }}
Job #{{ sync_status.job.pk }}
Last sync Never synced