netbox-plugin-dns 1.4.2__py3-none-any.whl → 1.4.3__py3-none-any.whl

This diff represents the content of publicly available package versions that have been released to one of the supported registries. The information contained in this diff is provided for informational purposes only and reflects changes between package versions as they appear in their respective public registries.

Potentially problematic release.


This version of netbox-plugin-dns might be problematic. Click here for more details.

netbox_dns/__init__.py CHANGED
@@ -4,7 +4,7 @@ from django.core.exceptions import ImproperlyConfigured
4
4
  from netbox.plugins import PluginConfig
5
5
  from netbox.plugins.utils import get_plugin_config
6
6
 
7
- __version__ = "1.4.2"
7
+ __version__ = "1.4.3"
8
8
 
9
9
 
10
10
  def _check_list(setting):
@@ -61,6 +61,7 @@ class ZoneSerializer(NetBoxModelSerializer):
61
61
  "tech_c",
62
62
  "admin_c",
63
63
  "billing_c",
64
+ "comments",
64
65
  "active",
65
66
  "custom_fields",
66
67
  "tenant",
@@ -248,5 +248,6 @@ class ZoneFilterSet(TenancyFilterSet, NetBoxModelFilterSet):
248
248
  | Q(admin_c__name__icontains=value)
249
249
  | Q(tech_c__name__icontains=value)
250
250
  | Q(billing_c__name__icontains=value)
251
+ | Q(comments__icontains=value)
251
252
  )
252
253
  return queryset.filter(qs_filter)
@@ -113,6 +113,14 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
113
113
  ),
114
114
  )
115
115
 
116
+ def __init__(self, *args, **kwargs):
117
+ super().__init__(*args, **kwargs)
118
+
119
+ if not self.initial.get("use_nsec3"):
120
+ self.initial["nsec3_iterations"] = None
121
+ self.initial["nsec3_opt_out"] = None
122
+ self.initial["nsec3_salt_size"] = None
123
+
116
124
  key_templates = DynamicModelMultipleChoiceField(
117
125
  queryset=DNSSECKeyTemplate.objects.all(),
118
126
  required=False,
@@ -180,6 +188,21 @@ class DNSSECPolicyForm(TenancyForm, NetBoxModelForm):
180
188
  label=_("Parent Propagation Delay"),
181
189
  placeholder=DNSSECPolicy.get_fallback_setting("parent_propagation_delay"),
182
190
  )
191
+ nsec3_opt_out = forms.NullBooleanField(
192
+ required=False,
193
+ widget=forms.Select(choices=BOOLEAN_WITH_BLANK_CHOICES),
194
+ label=_("NSEC3 Opt-Out"),
195
+ )
196
+
197
+ def clean(self, *args, **kwargs):
198
+ super().clean(*args, **kwargs)
199
+
200
+ if not self.cleaned_data.get("use_nsec3"):
201
+ self.cleaned_data["nsec3_iterations"] = None
202
+ self.cleaned_data["nsec3_opt_out"] = None
203
+ self.cleaned_data["nsec3_salt_size"] = None
204
+
205
+ return self.cleaned_data
183
206
 
184
207
 
185
208
  class DNSSECPolicyFilterForm(TenancyFilterForm, NetBoxModelFilterSetForm):
netbox_dns/forms/zone.py CHANGED
@@ -20,6 +20,7 @@ from utilities.forms.fields import (
20
20
  CSVModelChoiceField,
21
21
  CSVModelMultipleChoiceField,
22
22
  DynamicModelChoiceField,
23
+ CommentField,
23
24
  )
24
25
  from utilities.forms.widgets import BulkEditNullBooleanSelect, DatePicker, HTMXSelect
25
26
  from utilities.forms.rendering import FieldSet
@@ -194,6 +195,7 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
194
195
  "billing_c",
195
196
  "tenant_group",
196
197
  "tenant",
198
+ "comments",
197
199
  "tags",
198
200
  )
199
201
 
@@ -412,6 +414,8 @@ class ZoneForm(ZoneTemplateUpdateMixin, TenancyForm, NetBoxModelForm):
412
414
  label=_("RFC2317 Prefix"),
413
415
  )
414
416
 
417
+ comments = CommentField()
418
+
415
419
  def clean_default_ttl(self):
416
420
  return (
417
421
  self.cleaned_data["default_ttl"]
@@ -641,6 +645,7 @@ class ZoneImportForm(ZoneTemplateUpdateMixin, NetBoxModelImportForm):
641
645
  "tech_c",
642
646
  "billing_c",
643
647
  "tenant",
648
+ "comments",
644
649
  "tags",
645
650
  )
646
651
 
@@ -891,6 +896,7 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
891
896
  "tech_c",
892
897
  "billing_c",
893
898
  "tenant",
899
+ "comments",
894
900
  )
895
901
 
896
902
  view = DynamicModelChoiceField(
@@ -1035,3 +1041,4 @@ class ZoneBulkEditForm(NetBoxModelBulkEditForm):
1035
1041
  required=False,
1036
1042
  label=_("Tenant"),
1037
1043
  )
1044
+ comments = CommentField()
@@ -141,5 +141,7 @@ class NetBoxDNSZoneFilter(
141
141
  rfc2317_parent_zone_id: ID | None = strawberry_django.filter_field()
142
142
  rfc2317_parent_managed: FilterLookup[bool] | None = strawberry_django.filter_field()
143
143
 
144
+ comments: FilterLookup[str] | None = strawberry_django.filter_field()
145
+
144
146
  arpa_network: FilterLookup[str] | None = strawberry_django.filter_field()
145
147
  active: FilterLookup[bool] | None = strawberry_django.filter_field()
@@ -136,6 +136,9 @@ class NetBoxDNSZoneType(NetBoxObjectType):
136
136
  rfc2317_child_zones: List[
137
137
  Annotated["NetBoxDNSRecordType", strawberry.lazy("netbox_dns.graphql.types")]
138
138
  ]
139
+
140
+ comments: str | None
141
+
139
142
  arpa_network: str | None
140
143
  tenant: Annotated["TenantType", strawberry.lazy("tenancy.graphql.types")] | None
141
144
 
@@ -217,7 +220,7 @@ class NetBoxDNSDNSSECPolicyType(NetBoxObjectType):
217
220
  parent_propagation_delay: BigInt | None
218
221
  use_nsec3: bool
219
222
  nsec3_iterations: BigInt | None
220
- nsec3_opt_out: bool
223
+ nsec3_opt_out: bool | None
221
224
  nsec3_salt_size: BigInt | None
222
225
 
223
226
 
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.2.6 on 2025-10-08 14:04
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0025_remove_zone_inline_signing_and_more"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AlterField(
14
+ model_name="dnssecpolicy",
15
+ name="nsec3_opt_out",
16
+ field=models.BooleanField(blank=True, null=True),
17
+ ),
18
+ ]
@@ -0,0 +1,18 @@
1
+ # Generated by Django 5.2.7 on 2025-10-24 12:10
2
+
3
+ from django.db import migrations, models
4
+
5
+
6
+ class Migration(migrations.Migration):
7
+
8
+ dependencies = [
9
+ ("netbox_dns", "0026_alter_dnssecpolicy_nsec3_opt_out"),
10
+ ]
11
+
12
+ operations = [
13
+ migrations.AddField(
14
+ model_name="zone",
15
+ name="comments",
16
+ field=models.TextField(blank=True),
17
+ ),
18
+ ]
@@ -150,9 +150,8 @@ class DNSSECPolicy(ContactsMixin, NetBoxModel):
150
150
  )
151
151
  nsec3_opt_out = models.BooleanField(
152
152
  verbose_name=_("NSEC3 Opt-Out"),
153
- blank=False,
154
- null=False,
155
- default=False,
153
+ blank=True,
154
+ null=True,
156
155
  )
157
156
  nsec3_salt_size = models.PositiveIntegerField(
158
157
  verbose_name=_("NSEC3 Salt Size"),
netbox_dns/models/zone.py CHANGED
@@ -135,6 +135,7 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
135
135
  "billing_c",
136
136
  "rfc2317_parent_managed",
137
137
  "tenant",
138
+ "comments",
138
139
  }
139
140
 
140
141
  objects = ZoneManager()
@@ -362,6 +363,10 @@ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
362
363
  blank=True,
363
364
  null=True,
364
365
  )
366
+ comments = models.TextField(
367
+ verbose_name=_("Comments"),
368
+ blank=True,
369
+ )
365
370
 
366
371
  @property
367
372
  def fqdn(self):
@@ -7,6 +7,7 @@ from netbox.tables import (
7
7
  TagColumn,
8
8
  ChoiceFieldColumn,
9
9
  ActionsColumn,
10
+ BooleanColumn,
10
11
  )
11
12
  from tenancy.tables import TenancyColumnsMixin
12
13
 
@@ -77,7 +78,7 @@ class DNSSECPolicyTable(TenancyColumnsMixin, NetBoxTable):
77
78
  zone_propagation_delay = tables.Column(
78
79
  verbose_name=_("Zone Propagation Delay"),
79
80
  )
80
- create_cdnskey = tables.BooleanColumn(
81
+ create_cdnskey = BooleanColumn(
81
82
  verbose_name=_("Create CDNSKEY"),
82
83
  )
83
84
  cds_digest_types = tables.Column(
@@ -89,13 +90,13 @@ class DNSSECPolicyTable(TenancyColumnsMixin, NetBoxTable):
89
90
  parent_propagation_delay = tables.Column(
90
91
  verbose_name=_("Parent Propagation Delay"),
91
92
  )
92
- use_nsec3 = tables.BooleanColumn(
93
+ use_nsec3 = BooleanColumn(
93
94
  verbose_name=_("Use NSEC3"),
94
95
  )
95
96
  nsec3_iterations = tables.Column(
96
97
  verbose_name=_("NSEC3 Iterations"),
97
98
  )
98
- nsec3_opt_out = tables.BooleanColumn(
99
+ nsec3_opt_out = BooleanColumn(
99
100
  verbose_name=_("NSEC3 Opt Out"),
100
101
  )
101
102
  nsec3_salt_size = tables.Column(
@@ -126,10 +127,10 @@ class DNSSECPolicyDisplayTable(TenancyColumnsMixin, NetBoxTable):
126
127
  status = ChoiceFieldColumn(
127
128
  verbose_name=_("Status"),
128
129
  )
129
- create_cdnskey = tables.BooleanColumn(
130
+ create_cdnskey = BooleanColumn(
130
131
  verbose_name=_("Create CDNSKEY"),
131
132
  )
132
- use_nsec3 = tables.BooleanColumn(
133
+ use_nsec3 = BooleanColumn(
133
134
  verbose_name=_("Use NSEC3"),
134
135
  )
135
136
  tags = TagColumn(
@@ -8,6 +8,8 @@ from netbox.tables import (
8
8
  ChoiceFieldColumn,
9
9
  TagColumn,
10
10
  ActionsColumn,
11
+ BooleanColumn,
12
+ TemplateColumn,
11
13
  )
12
14
  from tenancy.tables import TenancyColumnsMixin
13
15
 
@@ -44,11 +46,11 @@ class RecordBaseTable(TenancyColumnsMixin, NetBoxTable):
44
46
  verbose_name=_("FQDN"),
45
47
  linkify=True,
46
48
  )
47
- value = tables.TemplateColumn(
49
+ value = TemplateColumn(
48
50
  verbose_name=_("Value"),
49
51
  template_code="{{ value|truncatechars:64 }}",
50
52
  )
51
- unicode_value = tables.TemplateColumn(
53
+ unicode_value = TemplateColumn(
52
54
  verbose_name=_("Unicode Value"),
53
55
  template_code="{{ value|truncatechars:64 }}",
54
56
  accessor="value",
@@ -56,7 +58,7 @@ class RecordBaseTable(TenancyColumnsMixin, NetBoxTable):
56
58
  ttl = tables.Column(
57
59
  verbose_name=_("TTL"),
58
60
  )
59
- active = tables.BooleanColumn(
61
+ active = BooleanColumn(
60
62
  verbose_name=_("Active"),
61
63
  )
62
64
 
@@ -89,7 +91,7 @@ class RecordTable(RecordBaseTable):
89
91
  status = ChoiceFieldColumn(
90
92
  verbose_name=_("Status"),
91
93
  )
92
- disable_ptr = tables.BooleanColumn(
94
+ disable_ptr = BooleanColumn(
93
95
  verbose_name=_("Disable PTR"),
94
96
  )
95
97
  tags = TagColumn(
@@ -1,7 +1,13 @@
1
1
  import django_tables2 as tables
2
2
  from django.utils.translation import gettext_lazy as _
3
3
 
4
- from netbox.tables import NetBoxTable, TagColumn, ActionsColumn
4
+ from netbox.tables import (
5
+ ActionsColumn,
6
+ BooleanColumn,
7
+ NetBoxTable,
8
+ TagColumn,
9
+ TemplateColumn,
10
+ )
5
11
  from tenancy.tables import TenancyColumnsMixin
6
12
 
7
13
  from netbox_dns.models import RecordTemplate
@@ -42,11 +48,11 @@ class RecordTemplateTable(TenancyColumnsMixin, NetBoxTable):
42
48
  type = tables.Column(
43
49
  verbose_name=_("Type"),
44
50
  )
45
- value = tables.TemplateColumn(
51
+ value = TemplateColumn(
46
52
  verbose_name=_("Value"),
47
53
  template_code="{{ value|truncatechars:64 }}",
48
54
  )
49
- unicode_value = tables.TemplateColumn(
55
+ unicode_value = TemplateColumn(
50
56
  verbose_name=_("Unicode Value"),
51
57
  template_code="{{ value|truncatechars:64 }}",
52
58
  accessor="value",
@@ -54,7 +60,7 @@ class RecordTemplateTable(TenancyColumnsMixin, NetBoxTable):
54
60
  ttl = tables.Column(
55
61
  verbose_name=_("TTL"),
56
62
  )
57
- disable_ptr = tables.BooleanColumn(
63
+ disable_ptr = BooleanColumn(
58
64
  verbose_name=_("Disable PTR"),
59
65
  )
60
66
  tags = TagColumn(
netbox_dns/tables/view.py CHANGED
@@ -1,7 +1,7 @@
1
1
  import django_tables2 as tables
2
2
  from django.utils.translation import gettext_lazy as _
3
3
 
4
- from netbox.tables import NetBoxTable, TagColumn, ActionsColumn
4
+ from netbox.tables import ActionsColumn, BooleanColumn, NetBoxTable, TagColumn
5
5
  from tenancy.tables import TenancyColumnsMixin
6
6
 
7
7
  from netbox_dns.models import View
@@ -31,7 +31,7 @@ class ViewTable(TenancyColumnsMixin, NetBoxTable):
31
31
  verbose_name=_("Name"),
32
32
  linkify=True,
33
33
  )
34
- default_view = tables.BooleanColumn(
34
+ default_view = BooleanColumn(
35
35
  verbose_name=_("Default View"),
36
36
  )
37
37
  tags = TagColumn(url_name="plugins:netbox_dns:view_list")
netbox_dns/tables/zone.py CHANGED
@@ -6,6 +6,7 @@ from netbox.tables import (
6
6
  NetBoxTable,
7
7
  TagColumn,
8
8
  ActionsColumn,
9
+ columns,
9
10
  )
10
11
  from tenancy.tables import TenancyColumnsMixin
11
12
 
@@ -30,6 +31,7 @@ class ZoneTable(TenancyColumnsMixin, NetBoxTable):
30
31
  "registry_domain_id",
31
32
  "expiration_date",
32
33
  "domain_status",
34
+ "comments",
33
35
  )
34
36
 
35
37
  default_columns = (
@@ -94,6 +96,7 @@ class ZoneTable(TenancyColumnsMixin, NetBoxTable):
94
96
  verbose_name=_("Billing Contact"),
95
97
  linkify=True,
96
98
  )
99
+ comments = columns.MarkdownColumn()
97
100
 
98
101
  def render_name(self, value, record):
99
102
  return record.display_name
@@ -48,8 +48,18 @@ class RelatedDNSRecords(PluginTemplateExtension):
48
48
  return self.render(
49
49
  "netbox_dns/record/related.html",
50
50
  extra_context={
51
- "related_address_records": address_record_table,
52
- "related_pointer_records": pointer_record_table,
51
+ "address_card_title": (
52
+ _("Synchronized Address Records")
53
+ if len(address_records) > 1
54
+ else _("Synchronized Address Record")
55
+ ),
56
+ "address_record_table": address_record_table,
57
+ "pointer_card_title": (
58
+ _("Synchronized Pointer Records")
59
+ if len(pointer_records) > 1
60
+ else _("Synchronized Pointer Record")
61
+ ),
62
+ "pointer_record_table": pointer_record_table,
53
63
  },
54
64
  )
55
65
 
@@ -99,11 +109,11 @@ class IPRelatedDNSRecords(PluginTemplateExtension):
99
109
  address_records = Record.objects.filter(
100
110
  type__in=(RecordTypeChoices.A, RecordTypeChoices.AAAA),
101
111
  ip_address=ip_address.address.ip,
102
- )
112
+ ).exclude(ipam_ip_address=ip_address)
103
113
  pointer_records = Record.objects.filter(
104
114
  type=RecordTypeChoices.PTR,
105
115
  ip_address=ip_address.address.ip,
106
- )
116
+ ).exclude(address_records__ipam_ip_address__in=[ip_address])
107
117
 
108
118
  if address_records:
109
119
  address_record_table = RelatedRecordTable(
@@ -124,8 +134,18 @@ class IPRelatedDNSRecords(PluginTemplateExtension):
124
134
  return self.render(
125
135
  "netbox_dns/record/related.html",
126
136
  extra_context={
127
- "related_address_records": address_record_table,
128
- "related_pointer_records": pointer_record_table,
137
+ "address_card_title": (
138
+ _("Related Address Records")
139
+ if len(address_records) > 1
140
+ else _("Related Address Record")
141
+ ),
142
+ "address_record_table": address_record_table,
143
+ "pointer_card_title": (
144
+ _("Related Pointer Records")
145
+ if len(pointer_records) > 1
146
+ else _("Related Pointer Record")
147
+ ),
148
+ "pointer_record_table": pointer_record_table,
129
149
  },
130
150
  )
131
151
 
@@ -138,7 +138,11 @@
138
138
  </tr>
139
139
  <tr>
140
140
  <th scope="row">{% trans "NSEC3 Opt Out" %}</th>
141
- <td>{% checkmark object.nsec3_opt_out %}</td>
141
+ {% if object.nsec3_opt_out is None %}
142
+ <td>{{ ''|placeholder }}</td>
143
+ {% else %}
144
+ <td>{% checkmark object.nsec3_opt_out %}</td>
145
+ {% endif %}
142
146
  </tr>
143
147
  <tr>
144
148
  <th scope="row">{% trans "NSEC3 Salt Size" %}</th>
@@ -1,29 +1,20 @@
1
1
  {% load render_table from django_tables2 %}
2
2
  {% load perms %}
3
- {% load i18n %}
4
3
 
5
4
  {% if perms.netbox_dns.view_record %}
6
- {% if related_address_records %}
5
+ {% if address_record_table %}
7
6
  <div class="card">
8
- {% if related_address_records.rows|length == 1 %}
9
- <h2 class="card-header">{% trans "Related DNS Address Record" %}</h2>
10
- {% else %}
11
- <h2 class="card-header">{% trans "Related DNS Address Records" %}</h2>
12
- {% endif %}
7
+ <h2 class="card-header">{{ address_card_title }}</h2>
13
8
  <div class="table-responsive">
14
- {% render_table related_address_records 'inc/table.html' %}
9
+ {% render_table address_record_table 'inc/table.html' %}
15
10
  </div>
16
11
  </div>
17
12
  {% endif %}
18
- {% if related_pointer_records %}
13
+ {% if pointer_record_table %}
19
14
  <div class="card">
20
- {% if related_pointer_records.rows|length == 1 %}
21
- <h2 class="card-header">{% trans "Related DNS Pointer Record" %}</h2>
22
- {% else %}
23
- <h2 class="card-header">{% trans "Related DNS Pointer Records" %}</h2>
24
- {% endif %}
15
+ <h2 class="card-header">{{ pointer_card_title }}</h2>
25
16
  <div class="table-responsive">
26
- {% render_table related_pointer_records 'inc/table.html' %}
17
+ {% render_table pointer_record_table 'inc/table.html' %}
27
18
  </div>
28
19
  </div>
29
20
  {% endif %}
@@ -118,6 +118,7 @@
118
118
  </div>
119
119
  {% endif %}
120
120
 
121
+ {% include 'inc/panels/comments.html' %}
121
122
  {% include 'inc/panels/tags.html' %}
122
123
  {% include 'inc/panels/custom_fields.html' %}
123
124
  </div>
@@ -1,6 +1,6 @@
1
1
  Metadata-Version: 2.4
2
2
  Name: netbox-plugin-dns
3
- Version: 1.4.2
3
+ Version: 1.4.3
4
4
  Summary: NetBox DNS is a NetBox plugin for managing DNS data.
5
5
  Author-email: Peter Eckel <pete@netbox-dns.org>
6
6
  Project-URL: Homepage, https://github.com/peteeckel/netbox-plugin-dns
@@ -1,7 +1,7 @@
1
- netbox_dns/__init__.py,sha256=JGlwM9mhwz2vA25xj2Fcg5MPeReDw-EOU9LCS0MAVt4,4890
1
+ netbox_dns/__init__.py,sha256=FyJUZCg5fyQWrdkfpDH5PwjsSfv20QS0MBnbNWvsIVI,4890
2
2
  netbox_dns/apps.py,sha256=JCW5eS-AQBUubDJve1DjP-IRFKTFGQh1NLGWzJpC5MI,151
3
3
  netbox_dns/navigation.py,sha256=ZF2-bKRfuxXnLArSCvozyRXRd7GME14sVJZdmDEMhBk,7741
4
- netbox_dns/template_content.py,sha256=nwjbWkMc02vpTmcFQdiAA1TdopJiZ0MkRy6qa18_wLI,4848
4
+ netbox_dns/template_content.py,sha256=BCBx7dFZOu429CSyG5jFPnDSF8nJNLzwAsCGpAGF0zI,5787
5
5
  netbox_dns/urls.py,sha256=wrse8l5scD-jz_O7WY0YXRlYPzpkL-0-kyAd-wCPtbQ,2596
6
6
  netbox_dns/api/field_serializers.py,sha256=nVZ6d69DWagONDwbYCP2j3cmL-x9lryitF1wThEJxyI,725
7
7
  netbox_dns/api/nested_serializers.py,sha256=jPFLmZDZawasKBM3OxYecjkV5-ZV67_qmSbStyDah4k,3725
@@ -18,7 +18,7 @@ netbox_dns/api/serializers_/record_template.py,sha256=imRRPkCXQMCpXUUk58kB2KwXC6
18
18
  netbox_dns/api/serializers_/registrar.py,sha256=ul_6SJVqxvTE2ysXBy52U59oTzwmaD781URH1l1OW9o,927
19
19
  netbox_dns/api/serializers_/registration_contact.py,sha256=P_aoG_1rriHn4KkwTx5Dhw37Rn3VY2whg0vAIm55cjk,1108
20
20
  netbox_dns/api/serializers_/view.py,sha256=ipuL4FVTl5MYt5_ThayBAOBMGu61ZUGnCb8Co1tNQGU,1894
21
- netbox_dns/api/serializers_/zone.py,sha256=NrwIGjxvoYakI7mV9tTFSdQakTeHLcFcVrVr7-qex14,6548
21
+ netbox_dns/api/serializers_/zone.py,sha256=_Upe1-xTCXQ-lsiH1bmIjm2zhsGiYYHWBUuzXgjWEVw,6572
22
22
  netbox_dns/api/serializers_/zone_template.py,sha256=sThICHWbQpXRKCFq8I--3PSkad-aPzh7TBdoDm31jzg,4438
23
23
  netbox_dns/choices/__init__.py,sha256=K3JfawICeoUny8O_Dqexr7DOxwyg3QqijZ4DO6j5yP8,106
24
24
  netbox_dns/choices/dnssec_key_template.py,sha256=Xl3y_ScKJmnsqMH1sv6ezLcZI1rruHDGJP5e2IRSC4s,1511
@@ -42,24 +42,24 @@ netbox_dns/filtersets/record_template.py,sha256=Pc4P479MqfgdUMvBK39ic2nsV_gg4GT_
42
42
  netbox_dns/filtersets/registrar.py,sha256=6QrsrWXu19bMa99DzwwXqfNqxpvTG0JwGEpybhOSYps,978
43
43
  netbox_dns/filtersets/registration_contact.py,sha256=42j7NkwkbSEfomCDekkIE9ZWNug_qfvmTO_D1e-fFIw,1140
44
44
  netbox_dns/filtersets/view.py,sha256=g8Qz363F9sieNtf4zA2L87mR86HFtkpvHTCkql6TxGk,1107
45
- netbox_dns/filtersets/zone.py,sha256=TNSmYWS7ubKkXXsJNH4mDOAlNATQE1eGaivpJxkVykY,8246
45
+ netbox_dns/filtersets/zone.py,sha256=pg513mVNwlZ0EPEY3v6b8g7-xLKwyZP35cU_FMyWr4E,8289
46
46
  netbox_dns/filtersets/zone_template.py,sha256=W-s-Gm1OhnHRdQaU0sBie7ZAup4CfBMX3xeZfKGgJXc,5358
47
47
  netbox_dns/forms/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
48
48
  netbox_dns/forms/dnssec_key_template.py,sha256=zWOTdsbfCcjpizOZn6Y8HRewJarFwtlXcW4H0ZyqJVI,6176
49
- netbox_dns/forms/dnssec_policy.py,sha256=U0X6b-zWXBov015CNCxZ2c_2jTaFhxtWpQ4Vw1hhfUI,17736
49
+ netbox_dns/forms/dnssec_policy.py,sha256=aARkERqxU7DugvgvO0cwxpynvGz_YGtlDX6R9My1rHE,18523
50
50
  netbox_dns/forms/nameserver.py,sha256=_iQJXbdFrrtMnRT8yZHnOp1Nj1iwxjHIAH_hrvCkrKU,3848
51
51
  netbox_dns/forms/record.py,sha256=wRl3uRY13VK8cF79u69-DDJmHJnZjwuLR60PsUGJ3p0,8493
52
52
  netbox_dns/forms/record_template.py,sha256=5yuY2ppV2diEOdm_IN3QSLLEdWkOkWZOYRtOh0qPY7A,6796
53
53
  netbox_dns/forms/registrar.py,sha256=oLMcXJOpt0F02a2Aga6A45rja7TvI18nTCZb_Dx_8t0,4038
54
54
  netbox_dns/forms/registration_contact.py,sha256=GtUmHzPmAFNRt81rTgJbmb5TMoEJ-mpmjltkuyppJwc,6157
55
55
  netbox_dns/forms/view.py,sha256=KZ2enzbqAEElt3b5C02kMJwnIDEjdQf_BsgMuMqKP50,10836
56
- netbox_dns/forms/zone.py,sha256=07UZTpnEYv6gK8G7bXRIsOyvLWQCBWNApVNn_MrIifg,30394
56
+ netbox_dns/forms/zone.py,sha256=mS1kCz57I0SXMLFqR_fPYK4TSKbiknf8Aplo2TnchsU,30541
57
57
  netbox_dns/forms/zone_template.py,sha256=SN4E-DkD1RgUcZhvUNzRFg4-FHbkvdFs1l28eShAx4o,12203
58
58
  netbox_dns/graphql/__init__.py,sha256=0xg_5d1PPFTadBOZo752t5sfZeLFrqs2jM51Rbf8ti4,652
59
59
  netbox_dns/graphql/enums.py,sha256=vC-v24AuNbaGoekLTDu1PBVbnR1aYeX6LmvrZkfd2F4,1453
60
60
  netbox_dns/graphql/filter_lookups.py,sha256=P6wW2JrtkzUiIx6mJz_DvwYg5Sov68IKAx0zVQfuvYY,355
61
61
  netbox_dns/graphql/schema.py,sha256=KlbJmlfQEqZhvb6-cYmq94mrMFcQoCh3MldaUD5eVV4,2904
62
- netbox_dns/graphql/types.py,sha256=eAuNlN82tdI9U52OvRr1qvxY5Q_hgdoHFuYhLdWxynQ,10245
62
+ netbox_dns/graphql/types.py,sha256=drw0dQO10QAle8__YBhtK-uZwsGZurfcpXBb3Et35uA,10279
63
63
  netbox_dns/graphql/filters/__init__.py,sha256=bKppz_w3X2xNNHOcxZZiIO7zSkDaNTrZJ__k1U7rKik,275
64
64
  netbox_dns/graphql/filters/dnssec_key_template.py,sha256=hK7KgikQOC-BMp88PR1moHQboWd-DS59GwQ0TJADdLM,2076
65
65
  netbox_dns/graphql/filters/dnssec_policy.py,sha256=MAnnCU48UhtETcXJjwLdiikczpb5fR3k6wrfZCQKJTI,4737
@@ -69,7 +69,7 @@ netbox_dns/graphql/filters/record_template.py,sha256=sCAm-ct3aXjz9XNtAfUhPXaXRRH
69
69
  netbox_dns/graphql/filters/registrar.py,sha256=4tv1nlZU41-sOsNXf3-JyZESpAdktsDj7JTr1hv0aG4,1158
70
70
  netbox_dns/graphql/filters/registration_contact.py,sha256=feCw4zZd2UQ9895Gg0PJ4R-oGm90ss5XB6ve3B9JlVg,1402
71
71
  netbox_dns/graphql/filters/view.py,sha256=ozXGNJ0ELri2FAnQXPHDs3--Hznzx4ZF5mH264nr-DI,934
72
- netbox_dns/graphql/filters/zone.py,sha256=6YuValdVfjYHRGtjmw7uVFdrY_uy7tz0Rd__ODtRvjc,5172
72
+ netbox_dns/graphql/filters/zone.py,sha256=T-f-2P9v9PqJSSUEs5uz1r9l9ULvVBqwiLNkHecE0vk,5247
73
73
  netbox_dns/graphql/filters/zone_template.py,sha256=6ZxBN_VPXvBDGXXwcYlkX6wJXx_IlMAZIEDX5-ARO_4,3100
74
74
  netbox_dns/locale/de/LC_MESSAGES/django.mo,sha256=Q6edOBPHxBTbVYE-7TM9G_o83ED_9TpGgefOazR6TP0,29831
75
75
  netbox_dns/locale/en/LC_MESSAGES/django.mo,sha256=GDnSZkfHs3yjtTsll7dksEEej4B50F8pc9RGytZNubM,393
@@ -110,8 +110,10 @@ netbox_dns/migrations/0024_tenancy.py,sha256=3kc5l5_AyfhOI6g6mbCfReUAbSgb2DAv0MD
110
110
  netbox_dns/migrations/0024_zonetemplate_parental_agents.py,sha256=e1mQ1NwP8eqqfgc74PFSRmnENL5VCLPIFzInePsZd4w,635
111
111
  netbox_dns/migrations/0025_ipam_coupling_cf.py,sha256=7uHujclWrsYw5QMLWft0Po78Ow5Q8MjPuU7moKyQ2qs,620
112
112
  netbox_dns/migrations/0025_remove_zone_inline_signing_and_more.py,sha256=jCubcnlrdTbffK-DpRvmJ5CKcg5drGJg13sUG7OTtdU,522
113
+ netbox_dns/migrations/0026_alter_dnssecpolicy_nsec3_opt_out.py,sha256=bDjqslmVEBOspXmGbhakf8juZdHT9fU_ZY2kSUs7mUI,430
113
114
  netbox_dns/migrations/0026_domain_registration.py,sha256=qUJ1oUGHIGGNWD7QRLnxElbM5eNp7dYNNn_OYIw8Xvo,5796
114
115
  netbox_dns/migrations/0027_alter_registrar_iana_id.py,sha256=QUtRIrqqfkraFmzzeJFZWAEv4PfrOouoHtrV6FRn8Kc,404
116
+ netbox_dns/migrations/0027_zone_comments.py,sha256=brM80qZzY2bsyArrF5Nj6QLStSi3z5r7FhxErVwL5Po,398
115
117
  netbox_dns/migrations/0028_rfc2317_fields.py,sha256=D8r43xxBjYXiL6ycmX8RY5_WG7tRYEDjutOeYM1H56I,1364
116
118
  netbox_dns/migrations/0029_record_fqdn.py,sha256=UAAU38ekKQyiYDOJlcrz6Qbk4bqZfSHZyAHUZFFQrOw,808
117
119
  netbox_dns/migrations/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
@@ -119,42 +121,42 @@ netbox_dns/mixins/__init__.py,sha256=LxTEfpod_RHCyMtnzDljv0_dwqp2z3Q6tqbXW8LTGD8
119
121
  netbox_dns/mixins/object_modification.py,sha256=AR64fU5f7g-scNAj9b54eSoS9dpjyOpqrxXVXPcOhY8,1807
120
122
  netbox_dns/models/__init__.py,sha256=CuwFENIVUv0FNMDlY18Am-mvN5kBGkPOGavCP0cle7c,273
121
123
  netbox_dns/models/dnssec_key_template.py,sha256=AcyD9PLtg1lLZAFlEJ8TugSlglOSIBVihxgmi39zRm4,2738
122
- netbox_dns/models/dnssec_policy.py,sha256=KzdSWLK88ByfdcXhRjMoE2TypT2vSVh_Mh9tcT29PNs,5423
124
+ netbox_dns/models/dnssec_policy.py,sha256=be-ceOgUS48ACsZcZW51VivkWmuqXAszlAJEKt11gf8,5398
123
125
  netbox_dns/models/nameserver.py,sha256=oVfyc_iWRzxVE2tIhfRb1Vuj2gZmlfFFzEtXj9ZEr6s,3848
124
126
  netbox_dns/models/record.py,sha256=7f4h3ngUvPpQ4IQroTJAWO8wD2fqy1u8j-LuA23PWtM,32761
125
127
  netbox_dns/models/record_template.py,sha256=Qr43_YZm1z3Od1cBdDY9wpNlV-UCzvpn2c6_dDzFzN8,5145
126
128
  netbox_dns/models/registrar.py,sha256=-ozazecvd-oryEoDlOUvTWhEQKKQp3my6YVTEzWlUuI,1747
127
129
  netbox_dns/models/registration_contact.py,sha256=9ehnTjg8KUrUYJKRRu2SaJX-NE5dO4wy90FRPlT2ys4,3620
128
130
  netbox_dns/models/view.py,sha256=pwo7i8gtukIRgAC1A4rm58jcEpIbsSW_IUq6vSv-mRo,4618
129
- netbox_dns/models/zone.py,sha256=Ih02tPW6mTHpzIjpIXp69DacpVUYBpOR72DET7uJfbg,36840
131
+ netbox_dns/models/zone.py,sha256=Oa2myD-YFUTkdzNS0hve9zhL9J1LIJNX7vH3hY3VfW8,36955
130
132
  netbox_dns/models/zone_template.py,sha256=jm7XsBADOWhGYOH-_n9a97CTE6w_BCP3gMEUIO-tfTs,5391
131
133
  netbox_dns/signals/__init__.py,sha256=47DEQpj8HBSa-_TImW-5JCeuQeRkm5NMpJWZG3hSuFU,0
132
134
  netbox_dns/signals/dnssec.py,sha256=o4MOEg6ftxoDWFAhDtajkXzb7Nb6KuUHjtx1zNu7C1w,1040
133
135
  netbox_dns/signals/ipam_dnssync.py,sha256=1zhlf4cMcJLlFosX7YzyqVYdFFHV4MFwTz5KCdL8xQc,7730
134
136
  netbox_dns/tables/__init__.py,sha256=tObkTOHw_6kVtEcwdyshN0Ql-8VGhwsgQw7owL_s2lI,273
135
137
  netbox_dns/tables/dnssec_key_template.py,sha256=5Y4S3Q_RtDdUHI4KxY37Trm7uKQCFUcqkC5mrb8Wi_A,1101
136
- netbox_dns/tables/dnssec_policy.py,sha256=zjM57I5sXWSPlVixwwc8aL9Q64LkDSi2CuW_EmdBCmE,3414
138
+ netbox_dns/tables/dnssec_policy.py,sha256=WIzMChFxOsNBydvo2voVYobygpByp7Uw__nBqEw4onU,3398
137
139
  netbox_dns/tables/ipam_dnssync.py,sha256=7IK95XlA2ter6gsHqXjXPd6WubpOxrV-O5-UT6R1CKU,330
138
140
  netbox_dns/tables/nameserver.py,sha256=NFFHwwW174x_XskHF9oBllnI22PGV0J78mklrJF_psw,741
139
- netbox_dns/tables/record.py,sha256=DRe0voUIlqi3Q4CHDp-xgzCqgnSG9ynBhNPO8vnzHQw,4777
140
- netbox_dns/tables/record_template.py,sha256=ueNSya2Zyrm_zU1Z-ZxwhsJIfxBtYXXoi2pSX-l4Bt8,1977
141
+ netbox_dns/tables/record.py,sha256=yaRcdBic9dGmeZGFmGsGWV_ZcmpVKBgxd5CYgI20VWY,4788
142
+ netbox_dns/tables/record_template.py,sha256=Bsjz4yZEQ3Eh-akMMEgPRB1z0ZZ4ysSotb-CwdOFwUI,2012
141
143
  netbox_dns/tables/registrar.py,sha256=yI4n0jq7igYwa-zs6YT6YVV2FxkgpfkSAsA_iPzel7A,776
142
144
  netbox_dns/tables/registration_contact.py,sha256=PeXp5l2WC5qIwctNdk_WP9LRDq_7bnoUlSS3OS6-SDs,980
143
- netbox_dns/tables/view.py,sha256=BFM50EgudRvcB32hqi0I5qA5nLBfXLzHbt_2q4_KeJA,1318
144
- netbox_dns/tables/zone.py,sha256=SSbfM0x1gVxb0Xfa_BxyraLuIM4ThflWYpdaAbBxw5U,2404
145
+ netbox_dns/tables/view.py,sha256=Z3323-796hbpQMCH7CbmcXp3QxaGHEh6_MwJ2UqDpiI,1326
146
+ netbox_dns/tables/zone.py,sha256=Dv8NvUrfepXhba1kMxLrqRUQEy0v4jKq5_5dCAR0iuw,2481
145
147
  netbox_dns/tables/zone_template.py,sha256=90geASGP6jSqKnvx2t-DaSxNZpp7j67lH1t0UzsKZ1Q,1755
146
148
  netbox_dns/templates/netbox_dns/dnsseckeytemplate.html,sha256=dSEyHgUp0k_5JSdR4s4m_7Rom67TqvRIQN0zbQKYfjE,2839
147
- netbox_dns/templates/netbox_dns/dnssecpolicy.html,sha256=0UGFd_c9Nckv8iVo7muaUipuCLUaXPlfCA9hjRJsw-U,7894
149
+ netbox_dns/templates/netbox_dns/dnssecpolicy.html,sha256=e1nfrk-VvSY1AC9Vi9LO5Eukck6l10pdtDwW0zKbRjE,8105
148
150
  netbox_dns/templates/netbox_dns/nameserver.html,sha256=MawPiuAmjFrbv0zRi-7xkm8vr-dT1tlEno8EcoQ9peU,1714
149
151
  netbox_dns/templates/netbox_dns/record.html,sha256=aFvbIEhhfp0AH5tRDNSgc2nQIymGgnVilk5Q8lCpKKw,7055
150
152
  netbox_dns/templates/netbox_dns/recordtemplate.html,sha256=a29PAUl-KI_I1lxWpVdPp2loJtzgis9DG9erOWrOZM0,3708
151
153
  netbox_dns/templates/netbox_dns/registrar.html,sha256=4kJuj3biiDxQrIMQEQUEmF4iGRE4psr6Fh0CBP1evz8,2308
152
154
  netbox_dns/templates/netbox_dns/registrationcontact.html,sha256=sljVp_MrPSJRc2vJCPFXq9MiWOw4wjbr1kI_YStBntw,3094
153
155
  netbox_dns/templates/netbox_dns/view.html,sha256=1MuzOYNQezRrryNjlklgxErjGTFoVnwqcxf4qceuglw,3320
154
- netbox_dns/templates/netbox_dns/zone.html,sha256=a9v3tuWCiR_0Bu-6Mw06miQMz7lLBcsOpI3Ywi3Eqzs,8062
156
+ netbox_dns/templates/netbox_dns/zone.html,sha256=zCw33RbcsGO5FhJ_en7olBXWJBArsxUp9Uv5jNS0vTQ,8111
155
157
  netbox_dns/templates/netbox_dns/zonetemplate.html,sha256=juPdeCtpZGcCqM-nJT4IVTmwgOtTOEvDek2iiAJ6aQw,4801
156
158
  netbox_dns/templates/netbox_dns/record/managed.html,sha256=uwpxQTxyfAXkWqThLT-T2ZssKNUhXTDDMnLWJSVuDNU,119
157
- netbox_dns/templates/netbox_dns/record/related.html,sha256=R59aPhE4CyIZtTH0ncwDyS6_wAe_Y-oZjuN_j4qk8iA,1158
159
+ netbox_dns/templates/netbox_dns/record/related.html,sha256=RUQpZN-pox7oVZ3Excxi0ZbqlO2UD4FN_RmB1nNJf-E,699
158
160
  netbox_dns/templates/netbox_dns/view/button.html,sha256=EMOB5x78XpyfN1qi-pY1CKKKLjyHo9rFUa4Uhq6rFMc,322
159
161
  netbox_dns/templates/netbox_dns/view/prefix.html,sha256=Eaur1fd0YHeGttp2vRucz-ix7itxNu6To3NXwliGZco,1560
160
162
  netbox_dns/templates/netbox_dns/view/related.html,sha256=C5P6IuRmQ_S2hAC44ceFyNJn8JVqRxMwIXkS0dEL500,1239
@@ -189,8 +191,8 @@ netbox_dns/views/registration_contact.py,sha256=5bJWjNBisqCkBo6d2TJyyBJlc95WM7Vc
189
191
  netbox_dns/views/view.py,sha256=xLXt7sKrda3FpNXsBSJk8L8P2XhZ1sVb5OOXovCsKEU,3089
190
192
  netbox_dns/views/zone.py,sha256=do8kB6o911D7wCdUbU72SRTaaNhDUG5pCT8WXGhGnWc,7122
191
193
  netbox_dns/views/zone_template.py,sha256=5P9DT3XBRL-TiM5zFhBTMlMusL4bP2jTu3GHxKz5ojc,2553
192
- netbox_plugin_dns-1.4.2.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
193
- netbox_plugin_dns-1.4.2.dist-info/METADATA,sha256=8qOO-0QaQ8W2CkqmeKRjIC4QZ82ViU58Nd2wB3ZfQ8Q,7825
194
- netbox_plugin_dns-1.4.2.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
195
- netbox_plugin_dns-1.4.2.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
196
- netbox_plugin_dns-1.4.2.dist-info/RECORD,,
194
+ netbox_plugin_dns-1.4.3.dist-info/licenses/LICENSE,sha256=I3tDu11bZfhFm3EkV4zOD5TmWgLjnUNLEFwrdjniZYs,1112
195
+ netbox_plugin_dns-1.4.3.dist-info/METADATA,sha256=peOOcIruP6fm-c6eURHRh44g2yGY5p8SYG8oDE50QW0,7825
196
+ netbox_plugin_dns-1.4.3.dist-info/WHEEL,sha256=_zCd3N1l69ArxyTb8rzEoP9TpbYXkqRFSNOD5OuxnTs,91
197
+ netbox_plugin_dns-1.4.3.dist-info/top_level.txt,sha256=sA1Rwl1mRKvMC6XHe2ylZ1GF-Q1NGd08XedK9Y4xZc4,11
198
+ netbox_plugin_dns-1.4.3.dist-info/RECORD,,