{% extends 'base/layout.html' %} {% block title %}UniFi Sync Settings{% endblock %} {% block content %}
{% csrf_token %} {# ══════════════════════════════════════════════════════════════════════════ #} {# 1 · GENERAL #} {# ══════════════════════════════════════════════════════════════════════════ #}
General
{# enabled #}
{{ form.enabled }} {% if form.enabled.help_text %}
{{ form.enabled.help_text }}
{% endif %} {% for e in form.enabled.errors %}
{{ e }}
{% endfor %}
{# tenant_name #}
{{ form.tenant_name }} {% if form.tenant_name.help_text %}
{{ form.tenant_name.help_text }}
{% endif %} {% for e in form.tenant_name.errors %}
{{ e }}
{% endfor %}
{# default_site #}
{{ form.default_site }} {% if form.default_site.help_text %}
{{ form.default_site.help_text }}
{% endif %} {% for e in form.default_site.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 2 · DEVICE IDENTIFICATION #} {# ══════════════════════════════════════════════════════════════════════════ #}
Device Identification
{# serial_mode #}
{{ form.serial_mode }} {% if form.serial_mode.help_text %}
{{ form.serial_mode.help_text }}
{% endif %} {% for e in form.serial_mode.errors %}
{{ e }}
{% endfor %}
{# netbox_device_status #}
{{ form.netbox_device_status }} {% if form.netbox_device_status.help_text %}
{{ form.netbox_device_status.help_text }}
{% endif %} {% for e in form.netbox_device_status.errors %}
{{ e }}
{% endfor %}
{# netbox_roles_text #}
{{ form.netbox_roles_text }} {% if form.netbox_roles_text.help_text %}
{{ form.netbox_roles_text.help_text }}
{% endif %} {% for e in form.netbox_roles_text.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 3 · TAGS & ASSET TAGS #} {# ══════════════════════════════════════════════════════════════════════════ #}
Tags & Asset Tags
{# tag_strategy #}
{{ form.tag_strategy }} {% if form.tag_strategy.help_text %}
{{ form.tag_strategy.help_text }}
{% endif %} {% for e in form.tag_strategy.errors %}
{{ e }}
{% endfor %}
{# default_tags_text #}
{{ form.default_tags_text }} {% if form.default_tags_text.help_text %}
{{ form.default_tags_text.help_text }}
{% endif %} {% for e in form.default_tags_text.errors %}
{{ e }}
{% endfor %}
{# asset_tag_enabled #}
{{ form.asset_tag_enabled }} {% for e in form.asset_tag_enabled.errors %}
{{ e }}
{% endfor %}
{# asset_tag_patterns_text #}
{{ form.asset_tag_patterns_text }} {% if form.asset_tag_patterns_text.help_text %}
{{ form.asset_tag_patterns_text.help_text }}
{% endif %} {% for e in form.asset_tag_patterns_text.errors %}
{{ e }}
{% endfor %}
{# asset_tag_uppercase #}
{{ form.asset_tag_uppercase }} {% if form.asset_tag_uppercase.help_text %}
{{ form.asset_tag_uppercase.help_text }}
{% endif %} {% for e in form.asset_tag_uppercase.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 4 · SYNC TOGGLES #} {# ══════════════════════════════════════════════════════════════════════════ #}
Sync Toggles

Choose which UniFi data types are synchronised to NetBox.

{{ form.sync_interfaces }} {% for e in form.sync_interfaces.errors %}
{{ e }}
{% endfor %}
{{ form.sync_vlans }} {% for e in form.sync_vlans.errors %}
{{ e }}
{% endfor %}
{{ form.sync_wlans }} {% for e in form.sync_wlans.errors %}
{{ e }}
{% endfor %}
{{ form.sync_cables }} {% for e in form.sync_cables.errors %}
{{ e }}
{% endfor %}
{{ form.sync_stale_cleanup }} {% if form.sync_stale_cleanup.help_text %}
{{ form.sync_stale_cleanup.help_text }}
{% endif %} {% for e in form.sync_stale_cleanup.errors %}
{{ e }}
{% endfor %}
{{ form.sync_prefixes }} {% if form.sync_prefixes.help_text %}
{{ form.sync_prefixes.help_text }}
{% endif %} {% for e in form.sync_prefixes.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 5 · VRF / IP ROUTING #} {# ══════════════════════════════════════════════════════════════════════════ #}
VRF / IP Routing
{{ form.vrf_mode }} {% if form.vrf_mode.help_text %}
{{ form.vrf_mode.help_text }}
{% endif %} {% for e in form.vrf_mode.errors %}
{{ e }}
{% endfor %}
{{ form.default_vrf_name }} {% if form.default_vrf_name.help_text %}
{{ form.default_vrf_name.help_text }}
{% endif %} {% for e in form.default_vrf_name.errors %}
{{ e }}
{% endfor %}
{{ form.default_gateway }} {% if form.default_gateway.help_text %}
{{ form.default_gateway.help_text }}
{% endif %} {% for e in form.default_gateway.errors %}
{{ e }}
{% endfor %}
{{ form.default_dns }} {% if form.default_dns.help_text %}
{{ form.default_dns.help_text }}
{% endif %} {% for e in form.default_dns.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 6 · DHCP / IPAM #} {# ══════════════════════════════════════════════════════════════════════════ #}
DHCP / IPAM
{{ form.dhcp_auto_discover }} {% if form.dhcp_auto_discover.help_text %}
{{ form.dhcp_auto_discover.help_text }}
{% endif %} {% for e in form.dhcp_auto_discover.errors %}
{{ e }}
{% endfor %}
{{ form.sync_dhcp_ranges }} {% if form.sync_dhcp_ranges.help_text %}
{{ form.sync_dhcp_ranges.help_text }}
{% endif %} {% for e in form.sync_dhcp_ranges.errors %}
{{ e }}
{% endfor %}
{{ form.dhcp_writeback_enabled }} {% if form.dhcp_writeback_enabled.help_text %}
{{ form.dhcp_writeback_enabled.help_text }}
{% endif %} {% for e in form.dhcp_writeback_enabled.errors %}
{{ e }}
{% endfor %}
{# dhcp_ranges textarea #}
{{ form.dhcp_ranges }} {% if form.dhcp_ranges.help_text %}
{{ form.dhcp_ranges.help_text }}
{% endif %} {% for e in form.dhcp_ranges.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 7 · CLEANUP #} {# ══════════════════════════════════════════════════════════════════════════ #}
Cleanup
{{ form.cleanup_enabled }} {% if form.cleanup_enabled.help_text %}
{{ form.cleanup_enabled.help_text }}
{% endif %} {% for e in form.cleanup_enabled.errors %}
{{ e }}
{% endfor %}
{{ form.cleanup_grace_days }} {% if form.cleanup_grace_days.help_text %}
{{ form.cleanup_grace_days.help_text }}
{% endif %} {% for e in form.cleanup_grace_days.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 8 · SCHEDULING #} {# ══════════════════════════════════════════════════════════════════════════ #}
Scheduling
{{ form.schedule_enabled }} {% if form.schedule_enabled.help_text %}
{{ form.schedule_enabled.help_text }}
{% endif %} {% for e in form.schedule_enabled.errors %}
{{ e }}
{% endfor %}
{{ form.sync_interval_minutes }} {% if form.sync_interval_minutes.help_text %}
{{ form.sync_interval_minutes.help_text }}
{% endif %} {% for e in form.sync_interval_minutes.errors %}
{{ e }}
{% endfor %}
{{ form.dry_run_default }} {% if form.dry_run_default.help_text %}
{{ form.dry_run_default.help_text }}
{% endif %} {% for e in form.dry_run_default.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 9 · HTTP & SSL (collapsed by default) #} {# ══════════════════════════════════════════════════════════════════════════ #}
HTTP & SSL
{{ form.verify_ssl_default }} {% if form.verify_ssl_default.help_text %}
{{ form.verify_ssl_default.help_text }}
{% endif %} {% for e in form.verify_ssl_default.errors %}
{{ e }}
{% endfor %}
{{ form.request_timeout }} {% if form.request_timeout.help_text %}
{{ form.request_timeout.help_text }}
{% endif %} {% for e in form.request_timeout.errors %}
{{ e }}
{% endfor %}
{{ form.http_retries }} {% if form.http_retries.help_text %}
{{ form.http_retries.help_text }}
{% endif %} {% for e in form.http_retries.errors %}
{{ e }}
{% endfor %}
{{ form.retry_backoff_base }} {% if form.retry_backoff_base.help_text %}
{{ form.retry_backoff_base.help_text }}
{% endif %} {% for e in form.retry_backoff_base.errors %}
{{ e }}
{% endfor %}
{{ form.retry_backoff_max }} {% if form.retry_backoff_max.help_text %}
{{ form.retry_backoff_max.help_text }}
{% endif %} {% for e in form.retry_backoff_max.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 10 · CONCURRENCY (collapsed by default) #} {# ══════════════════════════════════════════════════════════════════════════ #}
Concurrency
{{ form.max_controller_threads }} {% if form.max_controller_threads.help_text %}
{{ form.max_controller_threads.help_text }}
{% endif %} {% for e in form.max_controller_threads.errors %}
{{ e }}
{% endfor %}
{{ form.max_site_threads }} {% if form.max_site_threads.help_text %}
{{ form.max_site_threads.help_text }}
{% endif %} {% for e in form.max_site_threads.errors %}
{{ e }}
{% endfor %}
{{ form.max_device_threads }} {% if form.max_device_threads.help_text %}
{{ form.max_device_threads.help_text }}
{% endif %} {% for e in form.max_device_threads.errors %}
{{ e }}
{% endfor %}
{{ form.rate_limit_per_second }} {% if form.rate_limit_per_second.help_text %}
{{ form.rate_limit_per_second.help_text }}
{% endif %} {% for e in form.rate_limit_per_second.errors %}
{{ e }}
{% endfor %}
{# ══════════════════════════════════════════════════════════════════════════ #} {# 11 · DEVICE SPECS CACHE (collapsed by default) #} {# ══════════════════════════════════════════════════════════════════════════ #}
Device Specs Cache
{{ form.specs_auto_refresh }} {% if form.specs_auto_refresh.help_text %}
{{ form.specs_auto_refresh.help_text }}
{% endif %} {% for e in form.specs_auto_refresh.errors %}
{{ e }}
{% endfor %}
{{ form.specs_include_store }} {% if form.specs_include_store.help_text %}
{{ form.specs_include_store.help_text }}
{% endif %} {% for e in form.specs_include_store.errors %}
{{ e }}
{% endfor %}
{{ form.specs_write_cache }} {% if form.specs_write_cache.help_text %}
{{ form.specs_write_cache.help_text }}
{% endif %} {% for e in form.specs_write_cache.errors %}
{{ e }}
{% endfor %}
{{ form.specs_refresh_timeout }} {% if form.specs_refresh_timeout.help_text %}
{{ form.specs_refresh_timeout.help_text }}
{% endif %} {% for e in form.specs_refresh_timeout.errors %}
{{ e }}
{% endfor %}
{{ form.specs_store_timeout }} {% if form.specs_store_timeout.help_text %}
{{ form.specs_store_timeout.help_text }}
{% endif %} {% for e in form.specs_store_timeout.errors %}
{{ e }}
{% endfor %}
{{ form.specs_store_max_workers }} {% if form.specs_store_max_workers.help_text %}
{{ form.specs_store_max_workers.help_text }}
{% endif %} {% for e in form.specs_store_max_workers.errors %}
{{ e }}
{% endfor %}
{# ── non-field errors ───────────────────────────────────────────────────── #} {% if form.non_field_errors %}
{% for e in form.non_field_errors %}
{{ e }}
{% endfor %}
{% endif %} {# ── save button ────────────────────────────────────────────────────────── #}
{% endblock %}