Move from hard-coded CatalogZone SOA values (refresh, retry, expire and minimum)

to DB driven to permit user modification:

modified:   netbox_dns_bridge/models.py
  Add 4 cols for values.

modified:   netbox_dns_bridge/migrations/0003_catalogzone_and_per_zone_identifier.py
  Adjust migration. This expects that the last migration the user has is 0002 (<=v1.5.8)

modified:   netbox_dns_bridge/jobs/notify.py
modified:   netbox_dns_bridge/management/commands/dns_transfer_endpoint/catalog_zone_manager.py
  Update to use new db values for SOA creation.

Change UI to permit editing for SOA values and disable member identifier editing.
modified:   netbox_dns_bridge/forms.py
modified:   netbox_dns_bridge/navigation.py
new file:   netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_edit.html
new file:   netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_list.html
new file:   netbox_dns_bridge/templates/netbox_dns_bridge/catalog_zone_members.html
deleted:    netbox_dns_bridge/templates/netbox_dns_bridge/catz_overview.html
modified:   netbox_dns_bridge/tables.py
modified:   netbox_dns_bridge/urls.py
modified:   netbox_dns_bridge/views.py
modified:   netbox_dns_bridge/filtersets.py
  AI created/modified: Left the UI update to the LLM.

modified:   netbox_dns_bridge/tests/test_catalog_zone_manager.py
modified:   netbox_dns_bridge/tests/test_models.py
modified:   netbox_dns_bridge/tests/test_notify.py
modified:   netbox_dns_bridge/tests/test_views.py
  AI created/modified: Updating tests
This commit is contained in:
sven committed 2026-08-17 13:20:17 +02:00
1 parent 73d04b956d
commit 14805ed32b
18 files changed
+349 -77

No files matched your search

+33 -15
View File
@@ -4,34 +4,52 @@ from django.utils.decorators import method_decorator
from django.views import View
import netbox_dns.models
from netbox.views.generic import ObjectListView
from netbox.views.generic import ObjectEditView, ObjectListView
from .filtersets import ZoneFilterSet
from .forms import CatalogZoneFilterForm
from .filtersets import CatalogZoneFilterSet, ZoneFilterSet
from .forms import (
CatalogZoneFilterForm,
CatalogZoneForm,
CatalogZoneMemberFilterForm,
)
from .models import CatalogZone, SeenTransferClients
from .tables import CatalogZoneTable
from .tables import CatalogZoneMemberTable, CatalogZoneTable
@method_decorator(
user_passes_test(lambda u: u.is_superuser), name="dispatch"
)
class CatzOverviewView(ObjectListView):
class CatalogZoneListView(ObjectListView):
queryset = CatalogZone.objects.select_related("view").order_by("view__name")
table = CatalogZoneTable
filterset = CatalogZoneFilterSet
filterset_form = CatalogZoneFilterForm
template_name = "netbox_dns_bridge/catalog_zone_list.html"
actions = ("edit", "export")
@method_decorator(
user_passes_test(lambda u: u.is_superuser), name="dispatch"
)
class CatalogZoneEditView(ObjectEditView):
queryset = CatalogZone.objects.select_related("view")
form = CatalogZoneForm
template_name = "netbox_dns_bridge/catalog_zone_edit.html"
@method_decorator(
user_passes_test(lambda u: u.is_superuser), name="dispatch"
)
class CatalogZoneMembersView(ObjectListView):
queryset = netbox_dns.models.Zone.objects.select_related(
"view", "catz_identifier"
).order_by("view__name", "name")
table = CatalogZoneTable
table = CatalogZoneMemberTable
filterset = ZoneFilterSet
filterset_form = CatalogZoneFilterForm
template_name = "netbox_dns_bridge/catz_overview.html"
filterset_form = CatalogZoneMemberFilterForm
template_name = "netbox_dns_bridge/catalog_zone_members.html"
actions = ()
def get_extra_context(self, request):
context = super().get_extra_context(request)
context["catalog_zones"] = CatalogZone.objects.select_related(
"view"
).order_by("view__name")
return context
@method_decorator(
user_passes_test(lambda u: u.is_superuser), name="dispatch"