{# SPDX-FileCopyrightText: 2026 Marcin Zieba #} {# SPDX-License-Identifier: Apache-2.0 #} {% extends "netbox_kea/server_workspace.html" %} {% load helpers %} {% block content %} {% include "netbox_kea/inc/sync_nav.html" %}
{# Last sync stats card #}
Last Sync
{% if latest_job %}

{% if latest_job.status == "completed" %} OK {% elif latest_job.status == "failed" %} Error {% elif latest_job.status == "running" %} Running {% else %} {{ latest_job.status }} {% endif %}

{% if latest_job.completed %}

{{ latest_job.completed }}

{% endif %} {% with counts=latest_result.counts %} {% if counts %}
✅ Created: {{ counts.created }} ✏️ Updated: {{ counts.updated }} {% if counts.errors > 0 %} ❌ Errors: {{ counts.errors }} {% else %} ✔ Errors: 0 {% endif %} {% if counts.conflicts %} ⚠ Conflicts: {{ counts.conflicts }} {% endif %}
{% elif latest_result %}
{% include "netbox_kea/inc/sync_run_state.html" with result=latest_result %} {% endif %} {% endwith %} {% else %}

No sync runs recorded yet.

{% endif %}
{# Controls card #}
Controls

IPAM sync is currently {% if object.sync_enabled %} enabled {% else %} disabled {% endif %} for this server.

{% if can_change_server %}
{% csrf_token %}
{% csrf_token %}
{% endif %} {% if sync_cfg %}
{% if not sync_cfg.sync_enabled %} {% endif %}

Global sync types{% if sync_settings_url %} (configure){% endif %}:

{% for badge in type_badges %} {{ badge.label }} {% endfor %}

Server overrides{% if can_change_server %} (configure){% endif %}:

{% for badge in type_badges %} {{ badge.label }} {% endfor %}

Deprecate stale Prefixes and IP Ranges: {% checkmark object.sync_deprecate_prefixes_and_ranges %}

{% endif %}
{# Job history card #}
Recent Runs View manual runs →
{% if recent_jobs %} {% for job in recent_jobs %} {% endfor %}
{{ job.created|date:"Y-m-d H:i" }} {% if job.status == "completed" %} OK {% elif job.status == "failed" %} Error {% else %} {{ job.status }} {% endif %} {% if job.object_id %}manual{% else %}periodic{% endif %}
{% else %}

No history yet.

{% endif %}
{% endblock %}