netbox-plugin-dns 1.1.0b7__py3-none-any.whl → 1.1.1__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.

Files changed (76) hide show
  1. netbox_dns/__init__.py +1 -1
  2. netbox_dns/api/nested_serializers.py +17 -16
  3. netbox_dns/api/serializers.py +1 -1
  4. netbox_dns/api/serializers_/record.py +1 -0
  5. netbox_dns/api/serializers_/{contact.py → registration_contact.py} +5 -5
  6. netbox_dns/api/serializers_/zone.py +5 -5
  7. netbox_dns/api/serializers_/zone_template.py +5 -5
  8. netbox_dns/api/urls.py +2 -2
  9. netbox_dns/api/views.py +7 -35
  10. netbox_dns/filtersets/__init__.py +1 -1
  11. netbox_dns/filtersets/nameserver.py +0 -0
  12. netbox_dns/filtersets/record.py +0 -0
  13. netbox_dns/filtersets/record_template.py +0 -0
  14. netbox_dns/filtersets/{contact.py → registration_contact.py} +4 -4
  15. netbox_dns/filtersets/zone.py +15 -15
  16. netbox_dns/filtersets/zone_template.py +15 -15
  17. netbox_dns/forms/__init__.py +1 -1
  18. netbox_dns/forms/nameserver.py +0 -0
  19. netbox_dns/forms/record.py +0 -0
  20. netbox_dns/forms/record_template.py +0 -0
  21. netbox_dns/forms/{contact.py → registration_contact.py} +16 -16
  22. netbox_dns/forms/zone.py +13 -13
  23. netbox_dns/forms/zone_template.py +13 -13
  24. netbox_dns/graphql/__init__.py +2 -2
  25. netbox_dns/graphql/filters.py +5 -5
  26. netbox_dns/graphql/schema.py +24 -44
  27. netbox_dns/graphql/types.py +38 -12
  28. netbox_dns/migrations/0007_alter_ordering_options.py +25 -0
  29. netbox_dns/migrations/{0007_view_prefixes.py → 0008_view_prefixes.py} +1 -1
  30. netbox_dns/migrations/0009_rename_contact_registrationcontact.py +36 -0
  31. netbox_dns/models/__init__.py +1 -1
  32. netbox_dns/models/nameserver.py +8 -3
  33. netbox_dns/models/record.py +15 -4
  34. netbox_dns/models/record_template.py +4 -1
  35. netbox_dns/models/registrar.py +7 -1
  36. netbox_dns/models/{contact.py → registration_contact.py} +15 -9
  37. netbox_dns/models/view.py +9 -2
  38. netbox_dns/models/zone.py +13 -12
  39. netbox_dns/models/zone_template.py +12 -9
  40. netbox_dns/navigation.py +7 -7
  41. netbox_dns/tables/__init__.py +1 -1
  42. netbox_dns/tables/nameserver.py +1 -7
  43. netbox_dns/tables/record.py +10 -35
  44. netbox_dns/tables/record_template.py +0 -17
  45. netbox_dns/tables/registrar.py +0 -2
  46. netbox_dns/tables/{contact.py → registration_contact.py} +5 -6
  47. netbox_dns/tables/view.py +1 -8
  48. netbox_dns/tables/zone.py +0 -15
  49. netbox_dns/tables/zone_template.py +2 -16
  50. netbox_dns/templates/netbox_dns/{contact.html → registrationcontact.html} +1 -1
  51. netbox_dns/urls/__init__.py +2 -2
  52. netbox_dns/urls/nameserver.py +14 -38
  53. netbox_dns/urls/record.py +7 -19
  54. netbox_dns/urls/record_template.py +18 -27
  55. netbox_dns/urls/registrar.py +11 -35
  56. netbox_dns/urls/registration_contact.py +60 -0
  57. netbox_dns/urls/view.py +8 -22
  58. netbox_dns/urls/zone.py +8 -46
  59. netbox_dns/urls/zone_template.py +16 -26
  60. netbox_dns/utilities/ipam_dnssync.py +1 -1
  61. netbox_dns/views/__init__.py +1 -1
  62. netbox_dns/views/nameserver.py +7 -3
  63. netbox_dns/views/record.py +12 -3
  64. netbox_dns/views/record_template.py +1 -1
  65. netbox_dns/views/registrar.py +0 -1
  66. netbox_dns/views/registration_contact.py +94 -0
  67. netbox_dns/views/view.py +6 -1
  68. netbox_dns/views/zone.py +7 -6
  69. netbox_dns/views/zone_template.py +2 -2
  70. {netbox_plugin_dns-1.1.0b7.dist-info → netbox_plugin_dns-1.1.1.dist-info}/METADATA +14 -14
  71. {netbox_plugin_dns-1.1.0b7.dist-info → netbox_plugin_dns-1.1.1.dist-info}/RECORD +75 -72
  72. {netbox_plugin_dns-1.1.0b7.dist-info → netbox_plugin_dns-1.1.1.dist-info}/WHEEL +2 -1
  73. netbox_plugin_dns-1.1.1.dist-info/top_level.txt +1 -0
  74. netbox_dns/urls/contact.py +0 -51
  75. netbox_dns/views/contact.py +0 -95
  76. {netbox_plugin_dns-1.1.0b7.dist-info → netbox_plugin_dns-1.1.1.dist-info}/LICENSE +0 -0
@@ -8,12 +8,12 @@ from taggit.managers import TaggableManager
8
8
 
9
9
 
10
10
  __all__ = (
11
- "Contact",
12
- "ContactIndex",
11
+ "RegistrationContact",
12
+ "RegistrationContactIndex",
13
13
  )
14
14
 
15
15
 
16
- class Contact(NetBoxModel):
16
+ class RegistrationContact(NetBoxModel):
17
17
  # +
18
18
  # Data fields according to https://www.icann.org/resources/pages/rdds-labeling-policy-2017-02-01-en
19
19
  # -
@@ -87,7 +87,7 @@ class Contact(NetBoxModel):
87
87
  related_name="netbox_dns_contact_set",
88
88
  )
89
89
 
90
- clone_fields = [
90
+ clone_fields = (
91
91
  "name",
92
92
  "description",
93
93
  "organization",
@@ -102,10 +102,10 @@ class Contact(NetBoxModel):
102
102
  "fax_ext",
103
103
  "email",
104
104
  "tags",
105
- ]
105
+ )
106
106
 
107
107
  def get_absolute_url(self):
108
- return reverse("plugins:netbox_dns:contact", kwargs={"pk": self.pk})
108
+ return reverse("plugins:netbox_dns:registrationcontact", kwargs={"pk": self.pk})
109
109
 
110
110
  def __str__(self):
111
111
  if self.name is not None:
@@ -114,7 +114,13 @@ class Contact(NetBoxModel):
114
114
  return self.contact_id
115
115
 
116
116
  class Meta:
117
- ordering = ("name", "contact_id")
117
+ verbose_name = "Registration Contact"
118
+ verbose_name_plural = "Registration Contacts"
119
+
120
+ ordering = (
121
+ "name",
122
+ "contact_id",
123
+ )
118
124
 
119
125
  @property
120
126
  def zones(self):
@@ -127,8 +133,8 @@ class Contact(NetBoxModel):
127
133
 
128
134
 
129
135
  @register_search
130
- class ContactIndex(SearchIndex):
131
- model = Contact
136
+ class RegistrationContactIndex(SearchIndex):
137
+ model = RegistrationContact
132
138
  fields = (
133
139
  ("name", 100),
134
140
  ("contact_id", 100),
netbox_dns/models/view.py CHANGED
@@ -3,6 +3,7 @@ from django.urls import reverse
3
3
  from django.core.exceptions import ValidationError
4
4
 
5
5
  from netbox.models import NetBoxModel
6
+ from netbox.models.features import ContactsMixin
6
7
  from netbox.search import SearchIndex, register_search
7
8
  from netbox.context import current_request
8
9
  from utilities.exceptions import AbortRequest
@@ -16,7 +17,7 @@ __all__ = (
16
17
  )
17
18
 
18
19
 
19
- class View(ObjectModificationMixin, NetBoxModel):
20
+ class View(ObjectModificationMixin, ContactsMixin, NetBoxModel):
20
21
  name = models.CharField(
21
22
  unique=True,
22
23
  max_length=255,
@@ -41,7 +42,10 @@ class View(ObjectModificationMixin, NetBoxModel):
41
42
  null=True,
42
43
  )
43
44
 
44
- clone_fields = ["name", "description"]
45
+ clone_fields = (
46
+ "name",
47
+ "description",
48
+ )
45
49
 
46
50
  @classmethod
47
51
  def get_default_view(cls):
@@ -54,6 +58,9 @@ class View(ObjectModificationMixin, NetBoxModel):
54
58
  return str(self.name)
55
59
 
56
60
  class Meta:
61
+ verbose_name = "View"
62
+ verbose_name_plural = "Views"
63
+
57
64
  ordering = ("name",)
58
65
 
59
66
  def delete(self, *args, **kwargs):
netbox_dns/models/zone.py CHANGED
@@ -5,8 +5,6 @@ from datetime import datetime
5
5
  from dns import name as dns_name
6
6
  from dns.exception import DNSException
7
7
  from dns.rdtypes.ANY import SOA
8
- from dns.exception import DNSException
9
-
10
8
  from django.core.validators import (
11
9
  MinValueValidator,
12
10
  MaxValueValidator,
@@ -20,6 +18,7 @@ from django.dispatch import receiver
20
18
  from django.conf import settings
21
19
 
22
20
  from netbox.models import NetBoxModel
21
+ from netbox.models.features import ContactsMixin
23
22
  from netbox.search import SearchIndex, register_search
24
23
  from netbox.plugins.utils import get_plugin_config
25
24
  from utilities.querysets import RestrictedQuerySet
@@ -37,7 +36,6 @@ from netbox_dns.utilities import (
37
36
  NameFormatError,
38
37
  )
39
38
  from netbox_dns.validators import (
40
- validate_fqdn,
41
39
  validate_rname,
42
40
  validate_domain_name,
43
41
  )
@@ -71,7 +69,7 @@ class ZoneManager(models.Manager.from_queryset(RestrictedQuerySet)):
71
69
  )
72
70
 
73
71
 
74
- class Zone(ObjectModificationMixin, NetBoxModel):
72
+ class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
75
73
  ACTIVE_STATUS_LIST = (ZoneStatusChoices.STATUS_ACTIVE,)
76
74
 
77
75
  def __init__(self, *args, **kwargs):
@@ -194,7 +192,7 @@ class Zone(ObjectModificationMixin, NetBoxModel):
194
192
  null=True,
195
193
  )
196
194
  registrant = models.ForeignKey(
197
- to="Contact",
195
+ to="RegistrationContact",
198
196
  on_delete=models.SET_NULL,
199
197
  verbose_name="Registrant",
200
198
  help_text="The owner of the domain",
@@ -202,7 +200,7 @@ class Zone(ObjectModificationMixin, NetBoxModel):
202
200
  null=True,
203
201
  )
204
202
  admin_c = models.ForeignKey(
205
- to="Contact",
203
+ to="RegistrationContact",
206
204
  on_delete=models.SET_NULL,
207
205
  verbose_name="Admin Contact",
208
206
  related_name="admin_c_zones",
@@ -211,16 +209,16 @@ class Zone(ObjectModificationMixin, NetBoxModel):
211
209
  null=True,
212
210
  )
213
211
  tech_c = models.ForeignKey(
214
- to="Contact",
212
+ to="RegistrationContact",
215
213
  on_delete=models.SET_NULL,
216
- verbose_name="Tech Contact",
214
+ verbose_name="Technical Contact",
217
215
  related_name="tech_c_zones",
218
216
  help_text="The technical contact for the domain",
219
217
  blank=True,
220
218
  null=True,
221
219
  )
222
220
  billing_c = models.ForeignKey(
223
- to="Contact",
221
+ to="RegistrationContact",
224
222
  on_delete=models.SET_NULL,
225
223
  verbose_name="Billing Contact",
226
224
  related_name="billing_c_zones",
@@ -251,7 +249,7 @@ class Zone(ObjectModificationMixin, NetBoxModel):
251
249
 
252
250
  objects = ZoneManager()
253
251
 
254
- clone_fields = [
252
+ clone_fields = (
255
253
  "view",
256
254
  "name",
257
255
  "status",
@@ -265,9 +263,12 @@ class Zone(ObjectModificationMixin, NetBoxModel):
265
263
  "soa_expire",
266
264
  "soa_minimum",
267
265
  "description",
268
- ]
266
+ )
269
267
 
270
268
  class Meta:
269
+ verbose_name = "Zone"
270
+ verbose_name_plural = "Zones"
271
+
271
272
  ordering = (
272
273
  "view",
273
274
  "name",
@@ -652,7 +653,7 @@ class Zone(ObjectModificationMixin, NetBoxModel):
652
653
  old_zone = Zone.objects.get(pk=self.pk)
653
654
  if not self.soa_serial_auto:
654
655
  self.check_soa_serial_increment(old_zone.soa_serial, self.soa_serial)
655
- else:
656
+ elif not old_zone.soa_serial_auto:
656
657
  try:
657
658
  self.check_soa_serial_increment(
658
659
  old_zone.soa_serial, self.get_auto_serial()
@@ -47,7 +47,7 @@ class ZoneTemplate(NetBoxModel):
47
47
  null=True,
48
48
  )
49
49
  registrant = models.ForeignKey(
50
- to="Contact",
50
+ to="RegistrationContact",
51
51
  on_delete=models.SET_NULL,
52
52
  related_name="+",
53
53
  help_text="The owner of the domain",
@@ -55,7 +55,7 @@ class ZoneTemplate(NetBoxModel):
55
55
  null=True,
56
56
  )
57
57
  admin_c = models.ForeignKey(
58
- to="Contact",
58
+ to="RegistrationContact",
59
59
  on_delete=models.SET_NULL,
60
60
  verbose_name="Admin contact",
61
61
  related_name="+",
@@ -64,7 +64,7 @@ class ZoneTemplate(NetBoxModel):
64
64
  null=True,
65
65
  )
66
66
  tech_c = models.ForeignKey(
67
- to="Contact",
67
+ to="RegistrationContact",
68
68
  on_delete=models.SET_NULL,
69
69
  verbose_name="Tech contact",
70
70
  related_name="+",
@@ -73,7 +73,7 @@ class ZoneTemplate(NetBoxModel):
73
73
  null=True,
74
74
  )
75
75
  billing_c = models.ForeignKey(
76
- to="Contact",
76
+ to="RegistrationContact",
77
77
  on_delete=models.SET_NULL,
78
78
  verbose_name="Billing contact",
79
79
  related_name="+",
@@ -82,7 +82,7 @@ class ZoneTemplate(NetBoxModel):
82
82
  null=True,
83
83
  )
84
84
 
85
- clone_fields = [
85
+ clone_fields = (
86
86
  "description",
87
87
  "nameservers",
88
88
  "record_templates",
@@ -92,19 +92,22 @@ class ZoneTemplate(NetBoxModel):
92
92
  "admin_c",
93
93
  "tech_c",
94
94
  "billing_c",
95
- ]
95
+ )
96
96
 
97
- template_fields = [
97
+ template_fields = (
98
98
  "tenant",
99
99
  "registrar",
100
100
  "registrant",
101
101
  "admin_c",
102
102
  "tech_c",
103
103
  "billing_c",
104
- ]
104
+ )
105
105
 
106
106
  class Meta:
107
- ordering = ["name"]
107
+ verbose_name = "Zone Template"
108
+ verbose_name_plural = "Zone Templates"
109
+
110
+ ordering = ("name",)
108
111
 
109
112
  def __str__(self):
110
113
  return str(self.name)
netbox_dns/navigation.py CHANGED
@@ -151,21 +151,21 @@ registrar_menu_item = PluginMenuItem(
151
151
  )
152
152
 
153
153
  contact_menu_item = PluginMenuItem(
154
- link="plugins:netbox_dns:contact_list",
155
- link_text="Contacts",
156
- permissions=["netbox_dns.view_contact"],
154
+ link="plugins:netbox_dns:registrationcontact_list",
155
+ link_text="Registration Contacts",
156
+ permissions=["netbox_dns.view_registrationcontact"],
157
157
  buttons=(
158
158
  PluginMenuButton(
159
- "plugins:netbox_dns:contact_add",
159
+ "plugins:netbox_dns:registrationcontact_add",
160
160
  "Add",
161
161
  "mdi mdi-plus-thick",
162
- permissions=["netbox_dns.add_contact"],
162
+ permissions=["netbox_dns.add_registrationcontact"],
163
163
  ),
164
164
  PluginMenuButton(
165
- "plugins:netbox_dns:contact_import",
165
+ "plugins:netbox_dns:registrationcontact_import",
166
166
  "Import",
167
167
  "mdi mdi-upload",
168
- permissions=["netbox_dns.add_contact"],
168
+ permissions=["netbox_dns.add_registrationcontact"],
169
169
  ),
170
170
  ),
171
171
  )
@@ -2,7 +2,7 @@ from .view import *
2
2
  from .zone import *
3
3
  from .nameserver import *
4
4
  from .record import *
5
- from .contact import *
5
+ from .registration_contact import *
6
6
  from .registrar import *
7
7
  from .zone_template import *
8
8
  from .record_template import *
@@ -22,13 +22,7 @@ class NameServerTable(TenancyColumnsMixin, NetBoxTable):
22
22
 
23
23
  class Meta(NetBoxTable.Meta):
24
24
  model = NameServer
25
- fields = (
26
- "name",
27
- "description",
28
- "tags",
29
- "tenant",
30
- "tenant_group",
31
- )
25
+ fields = ("description",)
32
26
  default_columns = (
33
27
  "name",
34
28
  "tags",
@@ -13,10 +13,6 @@ from tenancy.tables import TenancyColumnsMixin
13
13
  from netbox_dns.models import Record
14
14
  from netbox_dns.utilities import value_to_unicode
15
15
 
16
- import logging
17
-
18
- logger = logging.getLogger("netbox_dns")
19
-
20
16
 
21
17
  __all__ = (
22
18
  "RecordTable",
@@ -29,10 +25,18 @@ class RecordBaseTable(TenancyColumnsMixin, NetBoxTable):
29
25
  zone = tables.Column(
30
26
  linkify=True,
31
27
  )
28
+ view = tables.Column(
29
+ accessor="zone__view",
30
+ linkify=True,
31
+ )
32
32
  type = tables.Column()
33
33
  name = tables.Column(
34
34
  linkify=True,
35
35
  )
36
+ fqdn = tables.Column(
37
+ verbose_name="FQDN",
38
+ linkify=True,
39
+ )
36
40
  value = tables.TemplateColumn(
37
41
  template_code="{{ value|truncatechars:64 }}",
38
42
  )
@@ -71,20 +75,8 @@ class RecordTable(RecordBaseTable):
71
75
  class Meta(NetBoxTable.Meta):
72
76
  model = Record
73
77
  fields = (
74
- "name",
75
- "zone",
76
- "ttl",
77
- "type",
78
- "value",
79
- "unicode_value",
80
78
  "status",
81
- "disable_ptr",
82
- "ptr_record",
83
- "tags",
84
- "active",
85
79
  "description",
86
- "tenant",
87
- "tenant_group",
88
80
  )
89
81
  default_columns = (
90
82
  "name",
@@ -115,18 +107,7 @@ class ManagedRecordTable(RecordBaseTable):
115
107
 
116
108
  class Meta(NetBoxTable.Meta):
117
109
  model = Record
118
- fields = (
119
- "name",
120
- "zone",
121
- "ttl",
122
- "type",
123
- "value",
124
- "unicode_value",
125
- "address_record",
126
- "ipam_ip_address",
127
- "related_ip_address",
128
- "active",
129
- )
110
+ fields = ()
130
111
  default_columns = (
131
112
  "name",
132
113
  "zone",
@@ -164,13 +145,7 @@ class RelatedRecordTable(RecordBaseTable):
164
145
 
165
146
  class Meta(NetBoxTable.Meta):
166
147
  model = Record
167
- fields = (
168
- "name",
169
- "zone",
170
- "type",
171
- "value",
172
- "unicode_value",
173
- )
148
+ fields = ()
174
149
  default_columns = (
175
150
  "name",
176
151
  "zone",
@@ -43,18 +43,8 @@ class RecordTemplateTable(TenancyColumnsMixin, NetBoxTable):
43
43
  class Meta(NetBoxTable.Meta):
44
44
  model = RecordTemplate
45
45
  fields = (
46
- "name",
47
- "record_name",
48
- "ttl",
49
- "type",
50
- "value",
51
- "unicode_value",
52
46
  "status",
53
- "disable_ptr",
54
- "tags",
55
47
  "description",
56
- "tenant",
57
- "tenant_group",
58
48
  )
59
49
  default_columns = (
60
50
  "name",
@@ -72,14 +62,7 @@ class RecordTemplateDisplayTable(RecordTemplateTable):
72
62
  class Meta(NetBoxTable.Meta):
73
63
  model = RecordTemplate
74
64
  fields = (
75
- "name",
76
- "record_name",
77
- "ttl",
78
- "type",
79
- "value",
80
- "unicode_value",
81
65
  "status",
82
- "disable_ptr",
83
66
  "description",
84
67
  )
85
68
  default_columns = (
@@ -19,13 +19,11 @@ class RegistrarTable(NetBoxTable):
19
19
  class Meta(NetBoxTable.Meta):
20
20
  model = Registrar
21
21
  fields = (
22
- "name",
23
22
  "description",
24
23
  "iana_id",
25
24
  "referral_url",
26
25
  "whois_server",
27
26
  "abuse_email",
28
27
  "abuse_phone",
29
- "tags",
30
28
  )
31
29
  default_columns = ("name", "iana_id", "referral_url")
@@ -2,24 +2,23 @@ import django_tables2 as tables
2
2
 
3
3
  from netbox.tables import NetBoxTable, TagColumn
4
4
 
5
- from netbox_dns.models import Contact
5
+ from netbox_dns.models import RegistrationContact
6
6
 
7
7
 
8
- __all__ = ("ContactTable",)
8
+ __all__ = ("RegistrationContactTable",)
9
9
 
10
10
 
11
- class ContactTable(NetBoxTable):
11
+ class RegistrationContactTable(NetBoxTable):
12
12
  contact_id = tables.Column(
13
13
  linkify=True,
14
14
  )
15
15
  tags = TagColumn(
16
- url_name="plugins:netbox_dns:contact_list",
16
+ url_name="plugins:netbox_dns:registrationcontact_list",
17
17
  )
18
18
 
19
19
  class Meta(NetBoxTable.Meta):
20
- model = Contact
20
+ model = RegistrationContact
21
21
  fields = (
22
- "contact_id",
23
22
  "name",
24
23
  "description",
25
24
  "organization",
netbox_dns/tables/view.py CHANGED
@@ -23,14 +23,7 @@ class ViewTable(TenancyColumnsMixin, NetBoxTable):
23
23
 
24
24
  class Meta(NetBoxTable.Meta):
25
25
  model = View
26
- fields = (
27
- "name",
28
- "default_view",
29
- "description",
30
- "tenant",
31
- "tenant_group",
32
- "tags",
33
- )
26
+ fields = ("description",)
34
27
  default_columns = ("name", "default_view")
35
28
 
36
29
 
netbox_dns/tables/zone.py CHANGED
@@ -58,26 +58,11 @@ class ZoneTable(TenancyColumnsMixin, NetBoxTable):
58
58
  class Meta(NetBoxTable.Meta):
59
59
  model = Zone
60
60
  fields = (
61
- "name",
62
- "view",
63
- "status",
64
61
  "description",
65
- "tags",
66
- "default_ttl",
67
- "soa_mname",
68
62
  "soa_rname",
69
63
  "soa_serial",
70
- "rfc2317_prefix",
71
64
  "rfc2317_parent_managed",
72
- "rfc2317_parent_zone",
73
- "registrar",
74
65
  "registry_domain_id",
75
- "registrant",
76
- "admin_c",
77
- "tech_c",
78
- "billing_c",
79
- "tenant",
80
- "tenant_group",
81
66
  )
82
67
  default_columns = (
83
68
  "name",
@@ -37,18 +37,7 @@ class ZoneTemplateTable(TenancyColumnsMixin, NetBoxTable):
37
37
 
38
38
  class Meta(NetBoxTable.Meta):
39
39
  model = ZoneTemplate
40
- fields = (
41
- "name",
42
- "description",
43
- "tags",
44
- "registrar",
45
- "registrant",
46
- "admin_c",
47
- "tech_c",
48
- "billing_c",
49
- "tenant",
50
- "tenant_group",
51
- )
40
+ fields = ("description",)
52
41
  default_columns = (
53
42
  "name",
54
43
  "tags",
@@ -60,10 +49,7 @@ class ZoneTemplateDisplayTable(ZoneTemplateTable):
60
49
 
61
50
  class Meta(NetBoxTable.Meta):
62
51
  model = ZoneTemplate
63
- fields = (
64
- "name",
65
- "description",
66
- )
52
+ fields = ("description",)
67
53
  default_columns = (
68
54
  "name",
69
55
  "description",
@@ -4,7 +4,7 @@
4
4
  <div class="row">
5
5
  <div class="col col-md-6">
6
6
  <div class="card">
7
- <h5 class="card-header">Contact</h5>
7
+ <h5 class="card-header">Registration Contact</h5>
8
8
  <table class="table table-hover attr-table">
9
9
  <tr>
10
10
  <th scope="row">Name</th>
@@ -1,4 +1,4 @@
1
- from .contact import contact_urlpatterns
1
+ from .registration_contact import registrationcontact_urlpatterns
2
2
  from .nameserver import nameserver_urlpatterns
3
3
  from .record import record_urlpatterns
4
4
  from .record_template import recordtemplate_urlpatterns
@@ -10,7 +10,7 @@ from .zone_template import zonetemplate_urlpatterns
10
10
  app_name = "netbox_dns"
11
11
 
12
12
  urlpatterns = (
13
- contact_urlpatterns
13
+ registrationcontact_urlpatterns
14
14
  + nameserver_urlpatterns
15
15
  + record_urlpatterns
16
16
  + recordtemplate_urlpatterns
@@ -1,39 +1,21 @@
1
- from django.urls import path
1
+ from django.urls import include, path
2
2
 
3
- from netbox.views.generic import ObjectChangeLogView, ObjectJournalView
3
+ from utilities.urls import get_model_urls
4
4
 
5
- from netbox_dns.models import NameServer
6
5
  from netbox_dns.views import (
7
- NameServerListView,
8
6
  NameServerView,
7
+ NameServerListView,
9
8
  NameServerEditView,
10
9
  NameServerDeleteView,
11
10
  NameServerBulkImportView,
12
11
  NameServerBulkEditView,
13
12
  NameServerBulkDeleteView,
14
- NameServerZoneListView,
15
- NameServerSOAZoneListView,
16
13
  )
17
14
 
18
15
  nameserver_urlpatterns = [
16
+ path("nameservers/<int:pk>/", NameServerView.as_view(), name="nameserver"),
19
17
  path("nameservers/", NameServerListView.as_view(), name="nameserver_list"),
20
18
  path("nameservers/add/", NameServerEditView.as_view(), name="nameserver_add"),
21
- path(
22
- "nameservers/import/",
23
- NameServerBulkImportView.as_view(),
24
- name="nameserver_import",
25
- ),
26
- path(
27
- "nameservers/edit/",
28
- NameServerBulkEditView.as_view(),
29
- name="nameserver_bulk_edit",
30
- ),
31
- path(
32
- "nameservers/delete/",
33
- NameServerBulkDeleteView.as_view(),
34
- name="nameserver_bulk_delete",
35
- ),
36
- path("nameservers/<int:pk>/", NameServerView.as_view(), name="nameserver"),
37
19
  path(
38
20
  "nameservers/<int:pk>/edit",
39
21
  NameServerEditView.as_view(),
@@ -45,25 +27,19 @@ nameserver_urlpatterns = [
45
27
  name="nameserver_delete",
46
28
  ),
47
29
  path(
48
- "nameservers/<int:pk>/journal/",
49
- ObjectJournalView.as_view(),
50
- name="nameserver_journal",
51
- kwargs={"model": NameServer},
52
- ),
53
- path(
54
- "nameservers/<int:pk>/changelog/",
55
- ObjectChangeLogView.as_view(),
56
- name="nameserver_changelog",
57
- kwargs={"model": NameServer},
30
+ "nameservers/import/",
31
+ NameServerBulkImportView.as_view(),
32
+ name="nameserver_import",
58
33
  ),
59
34
  path(
60
- "nameservers/<int:pk>/zones/",
61
- NameServerZoneListView.as_view(),
62
- name="nameserver_zones",
35
+ "nameservers/edit/",
36
+ NameServerBulkEditView.as_view(),
37
+ name="nameserver_bulk_edit",
63
38
  ),
64
39
  path(
65
- "nameservers/<int:pk>/soazones/",
66
- NameServerSOAZoneListView.as_view(),
67
- name="nameserver_soa_zones",
40
+ "nameservers/delete/",
41
+ NameServerBulkDeleteView.as_view(),
42
+ name="nameserver_bulk_delete",
68
43
  ),
44
+ path("nameservers/<int:pk>/", include(get_model_urls("netbox_dns", "nameserver"))),
69
45
  ]