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 GUI components are entirely AI generated. Plumbing also with AI assist but code verified.
60 lines
1.7 KiB
Python
60 lines
1.7 KiB
Python
from django import forms
|
|
from django.utils.translation import gettext_lazy as _
|
|
|
|
import netbox_dns.models
|
|
from netbox.forms import NetBoxModelFilterSetForm, NetBoxModelForm
|
|
from netbox_dns.choices import ZoneStatusChoices
|
|
from utilities.forms.fields import DynamicModelMultipleChoiceField
|
|
|
|
from .models import CatalogZone
|
|
|
|
|
|
class CatalogZoneForm(NetBoxModelForm):
|
|
soa_serial = forms.IntegerField(label=_("SOA Serial"))
|
|
soa_refresh = forms.IntegerField(label=_("Refresh"))
|
|
soa_retry = forms.IntegerField(label=_("Retry"))
|
|
soa_expire = forms.IntegerField(label=_("Expire"))
|
|
soa_minimum = forms.IntegerField(label=_("Minimum"))
|
|
|
|
view = forms.ModelChoiceField(
|
|
queryset=netbox_dns.models.View.objects.all(),
|
|
disabled=True,
|
|
required=False,
|
|
label=_("View"),
|
|
)
|
|
|
|
class Meta:
|
|
model = CatalogZone
|
|
fields = (
|
|
"view",
|
|
"soa_serial",
|
|
"soa_refresh",
|
|
"soa_retry",
|
|
"soa_expire",
|
|
"soa_minimum",
|
|
)
|
|
|
|
|
|
class CatalogZoneMemberFilterForm(NetBoxModelFilterSetForm):
|
|
model = netbox_dns.models.Zone
|
|
|
|
q = forms.CharField(required=False, label=_("Search"))
|
|
view = DynamicModelMultipleChoiceField(
|
|
queryset=netbox_dns.models.View.objects.all(),
|
|
required=False,
|
|
)
|
|
status = forms.MultipleChoiceField(
|
|
choices=ZoneStatusChoices,
|
|
required=False,
|
|
)
|
|
|
|
|
|
class CatalogZoneFilterForm(NetBoxModelFilterSetForm):
|
|
model = CatalogZone
|
|
|
|
q = forms.CharField(required=False, label=_("Search"))
|
|
view = DynamicModelMultipleChoiceField(
|
|
queryset=netbox_dns.models.View.objects.all(),
|
|
required=False,
|
|
)
|