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
netbox_dns/urls/record.py CHANGED
@@ -1,11 +1,10 @@
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 Record
6
5
  from netbox_dns.views import (
7
- RecordListView,
8
6
  RecordView,
7
+ RecordListView,
9
8
  RecordEditView,
10
9
  RecordDeleteView,
11
10
  RecordBulkImportView,
@@ -15,26 +14,15 @@ from netbox_dns.views import (
15
14
  )
16
15
 
17
16
  record_urlpatterns = [
17
+ path("records/<int:pk>/", RecordView.as_view(), name="record"),
18
18
  path("records/", RecordListView.as_view(), name="record_list"),
19
19
  path("records/add/", RecordEditView.as_view(), name="record_add"),
20
+ path("records/<int:pk>/edit/", RecordEditView.as_view(), name="record_edit"),
21
+ path("records/<int:pk>/delete/", RecordDeleteView.as_view(), name="record_delete"),
20
22
  path("records/import/", RecordBulkImportView.as_view(), name="record_import"),
21
23
  path("records/edit/", RecordBulkEditView.as_view(), name="record_bulk_edit"),
22
24
  path("records/delete/", RecordBulkDeleteView.as_view(), name="record_bulk_delete"),
23
- path("records/<int:pk>/", RecordView.as_view(), name="record"),
24
- path("records/<int:pk>/edit/", RecordEditView.as_view(), name="record_edit"),
25
- path("records/<int:pk>/delete/", RecordDeleteView.as_view(), name="record_delete"),
26
- path(
27
- "records/<int:pk>/journal/",
28
- ObjectJournalView.as_view(),
29
- name="record_journal",
30
- kwargs={"model": Record},
31
- ),
32
- path(
33
- "records/<int:pk>/changelog/",
34
- ObjectChangeLogView.as_view(),
35
- name="record_changelog",
36
- kwargs={"model": Record},
37
- ),
25
+ path("records/<int:pk>/", include(get_model_urls("netbox_dns", "record"))),
38
26
  path(
39
27
  "managedrecords/", ManagedRecordListView.as_view(), name="managed_record_list"
40
28
  ),
@@ -1,11 +1,10 @@
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 RecordTemplate
6
5
  from netbox_dns.views import (
7
- RecordTemplateListView,
8
6
  RecordTemplateView,
7
+ RecordTemplateListView,
9
8
  RecordTemplateEditView,
10
9
  RecordTemplateDeleteView,
11
10
  RecordTemplateBulkImportView,
@@ -14,6 +13,9 @@ from netbox_dns.views import (
14
13
  )
15
14
 
16
15
  recordtemplate_urlpatterns = [
16
+ path(
17
+ "recordtemplates/<int:pk>/", RecordTemplateView.as_view(), name="recordtemplate"
18
+ ),
17
19
  path(
18
20
  "recordtemplates/", RecordTemplateListView.as_view(), name="recordtemplate_list"
19
21
  ),
@@ -22,6 +24,16 @@ recordtemplate_urlpatterns = [
22
24
  RecordTemplateEditView.as_view(),
23
25
  name="recordtemplate_add",
24
26
  ),
27
+ path(
28
+ "recordtemplates/<int:pk>/edit/",
29
+ RecordTemplateEditView.as_view(),
30
+ name="recordtemplate_edit",
31
+ ),
32
+ path(
33
+ "recordtemplates/<int:pk>/delete/",
34
+ RecordTemplateDeleteView.as_view(),
35
+ name="recordtemplate_delete",
36
+ ),
25
37
  path(
26
38
  "recordtemplates/import/",
27
39
  RecordTemplateBulkImportView.as_view(),
@@ -38,28 +50,7 @@ recordtemplate_urlpatterns = [
38
50
  name="recordtemplate_bulk_delete",
39
51
  ),
40
52
  path(
41
- "recordtemplates/<int:pk>/", RecordTemplateView.as_view(), name="recordtemplate"
42
- ),
43
- path(
44
- "recordtemplates/<int:pk>/edit/",
45
- RecordTemplateEditView.as_view(),
46
- name="recordtemplate_edit",
47
- ),
48
- path(
49
- "recordtemplates/<int:pk>/delete/",
50
- RecordTemplateDeleteView.as_view(),
51
- name="recordtemplate_delete",
52
- ),
53
- path(
54
- "recordtemplates/<int:pk>/journal/",
55
- ObjectJournalView.as_view(),
56
- name="recordtemplate_journal",
57
- kwargs={"model": RecordTemplate},
58
- ),
59
- path(
60
- "recordtemplates/<int:pk>/changelog/",
61
- ObjectChangeLogView.as_view(),
62
- name="recordtemplate_changelog",
63
- kwargs={"model": RecordTemplate},
53
+ "recordtemplates/<int:pk>/",
54
+ include(get_model_urls("netbox_dns", "recordtemplate")),
64
55
  ),
65
56
  ]
@@ -1,63 +1,39 @@
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 Registrar
6
5
  from netbox_dns.views import (
7
- RegistrarListView,
8
6
  RegistrarView,
9
- RegistrarDeleteView,
7
+ RegistrarListView,
10
8
  RegistrarEditView,
9
+ RegistrarDeleteView,
11
10
  RegistrarBulkImportView,
12
11
  RegistrarBulkEditView,
13
12
  RegistrarBulkDeleteView,
14
- RegistrarZoneListView,
15
13
  )
16
14
 
17
15
  registrar_urlpatterns = [
16
+ path("registrars/<int:pk>/", RegistrarView.as_view(), name="registrar"),
18
17
  path("registrars/", RegistrarListView.as_view(), name="registrar_list"),
19
18
  path("registrars/add/", RegistrarEditView.as_view(), name="registrar_add"),
20
19
  path(
21
- "registrars/import/",
22
- RegistrarBulkImportView.as_view(),
23
- name="registrar_import",
24
- ),
25
- path(
26
- "registrars/edit/",
27
- RegistrarBulkEditView.as_view(),
28
- name="registrar_bulk_edit",
20
+ "registrars/<int:pk>/edit/", RegistrarEditView.as_view(), name="registrar_edit"
29
21
  ),
30
22
  path(
31
23
  "registrars/delete/",
32
24
  RegistrarBulkDeleteView.as_view(),
33
25
  name="registrar_bulk_delete",
34
26
  ),
35
- path("registrars/<int:pk>/", RegistrarView.as_view(), name="registrar"),
36
27
  path(
37
- "registrars/<int:pk>/edit/",
38
- RegistrarEditView.as_view(),
39
- name="registrar_edit",
28
+ "registrars/import/", RegistrarBulkImportView.as_view(), name="registrar_import"
29
+ ),
30
+ path(
31
+ "registrars/edit/", RegistrarBulkEditView.as_view(), name="registrar_bulk_edit"
40
32
  ),
41
33
  path(
42
34
  "registrars/<int:pk>/delete/",
43
35
  RegistrarDeleteView.as_view(),
44
36
  name="registrar_delete",
45
37
  ),
46
- path(
47
- "registrars/<int:pk>/zones/",
48
- RegistrarZoneListView.as_view(),
49
- name="registrar_zones",
50
- ),
51
- path(
52
- "registrars/<int:pk>/journal/",
53
- ObjectJournalView.as_view(),
54
- name="registrar_journal",
55
- kwargs={"model": Registrar},
56
- ),
57
- path(
58
- "registrars/<int:pk>/changelog/",
59
- ObjectChangeLogView.as_view(),
60
- name="registrar_changelog",
61
- kwargs={"model": Registrar},
62
- ),
38
+ path("registrars/<int:pk>/", include(get_model_urls("netbox_dns", "registrar"))),
63
39
  ]
@@ -0,0 +1,60 @@
1
+ from django.urls import include, path
2
+
3
+ from utilities.urls import get_model_urls
4
+
5
+ from netbox_dns.views import (
6
+ RegistrationContactView,
7
+ RegistrationContactListView,
8
+ RegistrationContactEditView,
9
+ RegistrationContactDeleteView,
10
+ RegistrationContactBulkImportView,
11
+ RegistrationContactBulkEditView,
12
+ RegistrationContactBulkDeleteView,
13
+ )
14
+
15
+ registrationcontact_urlpatterns = [
16
+ path(
17
+ "registrationcontacts/<int:pk>/",
18
+ RegistrationContactView.as_view(),
19
+ name="registrationcontact",
20
+ ),
21
+ path(
22
+ "registrationcontacts/",
23
+ RegistrationContactListView.as_view(),
24
+ name="registrationcontact_list",
25
+ ),
26
+ path(
27
+ "registrationcontacts/add/",
28
+ RegistrationContactEditView.as_view(),
29
+ name="registrationcontact_add",
30
+ ),
31
+ path(
32
+ "registrationcontacts/<int:pk>/edit/",
33
+ RegistrationContactEditView.as_view(),
34
+ name="registrationcontact_edit",
35
+ ),
36
+ path(
37
+ "registrationcontacts/<int:pk>/delete/",
38
+ RegistrationContactDeleteView.as_view(),
39
+ name="registrationcontact_delete",
40
+ ),
41
+ path(
42
+ "registrationcontacts/import/",
43
+ RegistrationContactBulkImportView.as_view(),
44
+ name="registrationcontact_import",
45
+ ),
46
+ path(
47
+ "registrationcontacts/edit/",
48
+ RegistrationContactBulkEditView.as_view(),
49
+ name="registrationcontact_bulk_edit",
50
+ ),
51
+ path(
52
+ "registrationcontacts/delete/",
53
+ RegistrationContactBulkDeleteView.as_view(),
54
+ name="registrationcontact_bulk_delete",
55
+ ),
56
+ path(
57
+ "registrationcontacts/<int:pk>/",
58
+ include(get_model_urls("netbox_dns", "registrationcontact")),
59
+ ),
60
+ ]
netbox_dns/urls/view.py CHANGED
@@ -1,42 +1,28 @@
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 View
6
5
  from netbox_dns.views import (
7
- ViewListView,
8
6
  ViewView,
9
- ViewDeleteView,
7
+ ViewListView,
10
8
  ViewEditView,
9
+ ViewDeleteView,
11
10
  ViewBulkImportView,
12
11
  ViewBulkEditView,
13
12
  ViewBulkDeleteView,
14
- ViewZoneListView,
15
13
  ViewPrefixEditView,
16
14
  )
17
15
 
18
16
  view_urlpatterns = [
17
+ path("views/<int:pk>/", ViewView.as_view(), name="view"),
19
18
  path("views/", ViewListView.as_view(), name="view_list"),
20
19
  path("views/add/", ViewEditView.as_view(), name="view_add"),
20
+ path("views/<int:pk>/edit/", ViewEditView.as_view(), name="view_edit"),
21
+ path("views/<int:pk>/delete/", ViewDeleteView.as_view(), name="view_delete"),
21
22
  path("views/import/", ViewBulkImportView.as_view(), name="view_import"),
22
23
  path("views/edit/", ViewBulkEditView.as_view(), name="view_bulk_edit"),
23
24
  path("views/delete/", ViewBulkDeleteView.as_view(), name="view_bulk_delete"),
24
- path("views/<int:pk>/", ViewView.as_view(), name="view"),
25
- path("views/<int:pk>/edit/", ViewEditView.as_view(), name="view_edit"),
26
- path("views/<int:pk>/delete/", ViewDeleteView.as_view(), name="view_delete"),
27
- path("views/<int:pk>/zones/", ViewZoneListView.as_view(), name="view_zones"),
28
- path(
29
- "views/<int:pk>/journal/",
30
- ObjectJournalView.as_view(),
31
- name="view_journal",
32
- kwargs={"model": View},
33
- ),
34
- path(
35
- "views/<int:pk>/changelog/",
36
- ObjectChangeLogView.as_view(),
37
- name="view_changelog",
38
- kwargs={"model": View},
39
- ),
25
+ path("views/<int:pk>/", include(get_model_urls("netbox_dns", "view"))),
40
26
  path(
41
27
  "prefixes/<int:pk>/assign-views/",
42
28
  ViewPrefixEditView.as_view(),
netbox_dns/urls/zone.py CHANGED
@@ -1,63 +1,25 @@
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 Zone
6
5
  from netbox_dns.views import (
7
- ZoneListView,
8
6
  ZoneView,
9
- ZoneDeleteView,
7
+ ZoneListView,
10
8
  ZoneEditView,
9
+ ZoneDeleteView,
11
10
  ZoneBulkImportView,
12
11
  ZoneBulkEditView,
13
12
  ZoneBulkDeleteView,
14
- ZoneRecordListView,
15
- ZoneManagedRecordListView,
16
- ZoneRegistrationView,
17
- ZoneRFC2317ChildZoneListView,
18
- ZoneChildZoneListView,
19
13
  )
20
14
 
21
15
  zone_urlpatterns = [
16
+ path("zones/<int:pk>/", ZoneView.as_view(), name="zone"),
22
17
  path("zones/", ZoneListView.as_view(), name="zone_list"),
23
18
  path("zones/add/", ZoneEditView.as_view(), name="zone_add"),
19
+ path("zones/<int:pk>/edit/", ZoneEditView.as_view(), name="zone_edit"),
20
+ path("zones/<int:pk>/delete/", ZoneDeleteView.as_view(), name="zone_delete"),
24
21
  path("zones/import/", ZoneBulkImportView.as_view(), name="zone_import"),
25
22
  path("zones/edit/", ZoneBulkEditView.as_view(), name="zone_bulk_edit"),
26
23
  path("zones/delete/", ZoneBulkDeleteView.as_view(), name="zone_bulk_delete"),
27
- path("zones/<int:pk>/", ZoneView.as_view(), name="zone"),
28
- path("zones/<int:pk>/delete/", ZoneDeleteView.as_view(), name="zone_delete"),
29
- path("zones/<int:pk>/edit/", ZoneEditView.as_view(), name="zone_edit"),
30
- path("zones/<int:pk>/records/", ZoneRecordListView.as_view(), name="zone_records"),
31
- path(
32
- "zones/<int:pk>/managedrecords/",
33
- ZoneManagedRecordListView.as_view(),
34
- name="zone_managed_records",
35
- ),
36
- path(
37
- "zones/<int:pk>/rfc2317childzones/",
38
- ZoneRFC2317ChildZoneListView.as_view(),
39
- name="zone_rfc2317_child_zones",
40
- ),
41
- path(
42
- "zones/<int:pk>/childzones/",
43
- ZoneChildZoneListView.as_view(),
44
- name="zone_child_zones",
45
- ),
46
- path(
47
- "zones/<int:pk>/registration/",
48
- ZoneRegistrationView.as_view(),
49
- name="zone_registration",
50
- ),
51
- path(
52
- "zones/<int:pk>/journal/",
53
- ObjectJournalView.as_view(),
54
- name="zone_journal",
55
- kwargs={"model": Zone},
56
- ),
57
- path(
58
- "zones/<int:pk>/changelog/",
59
- ObjectChangeLogView.as_view(),
60
- name="zone_changelog",
61
- kwargs={"model": Zone},
62
- ),
24
+ path("zones/<int:pk>/", include(get_model_urls("netbox_dns", "zone"))),
63
25
  ]
@@ -1,21 +1,31 @@
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 ZoneTemplate
6
5
  from netbox_dns.views import (
7
- ZoneTemplateListView,
8
6
  ZoneTemplateView,
9
- ZoneTemplateDeleteView,
7
+ ZoneTemplateListView,
10
8
  ZoneTemplateEditView,
9
+ ZoneTemplateDeleteView,
11
10
  ZoneTemplateBulkImportView,
12
11
  ZoneTemplateBulkEditView,
13
12
  ZoneTemplateBulkDeleteView,
14
13
  )
15
14
 
16
15
  zonetemplate_urlpatterns = [
16
+ path("zonetemplates/<int:pk>/", ZoneTemplateView.as_view(), name="zonetemplate"),
17
17
  path("zonetemplates/", ZoneTemplateListView.as_view(), name="zonetemplate_list"),
18
18
  path("zonetemplates/add/", ZoneTemplateEditView.as_view(), name="zonetemplate_add"),
19
+ path(
20
+ "zonetemplates/<int:pk>/edit/",
21
+ ZoneTemplateEditView.as_view(),
22
+ name="zonetemplate_edit",
23
+ ),
24
+ path(
25
+ "zonetemplates/<int:pk>/delete/",
26
+ ZoneTemplateDeleteView.as_view(),
27
+ name="zonetemplate_delete",
28
+ ),
19
29
  path(
20
30
  "zonetemplates/import/",
21
31
  ZoneTemplateBulkImportView.as_view(),
@@ -31,27 +41,7 @@ zonetemplate_urlpatterns = [
31
41
  ZoneTemplateBulkDeleteView.as_view(),
32
42
  name="zonetemplate_bulk_delete",
33
43
  ),
34
- path("zonetemplates/<int:pk>/", ZoneTemplateView.as_view(), name="zonetemplate"),
35
- path(
36
- "zonetemplates/<int:pk>/delete/",
37
- ZoneTemplateDeleteView.as_view(),
38
- name="zonetemplate_delete",
39
- ),
40
- path(
41
- "zonetemplates/<int:pk>/edit/",
42
- ZoneTemplateEditView.as_view(),
43
- name="zonetemplate_edit",
44
- ),
45
- path(
46
- "zonetemplates/<int:pk>/journal/",
47
- ObjectJournalView.as_view(),
48
- name="zonetemplate_journal",
49
- kwargs={"model": ZoneTemplate},
50
- ),
51
44
  path(
52
- "zonetemplates/<int:pk>/changelog/",
53
- ObjectChangeLogView.as_view(),
54
- name="zonetemplate_changelog",
55
- kwargs={"model": ZoneTemplate},
45
+ "zonetemplates/<int:pk>/", include(get_model_urls("netbox_dns", "zonetemplate"))
56
46
  ),
57
47
  ]
@@ -88,7 +88,7 @@ def get_zones(ip_address, view=None, old_zone=None):
88
88
  fqdn = dns_name.from_text(ip_address.dns_name)
89
89
  zone_name_candidates = [
90
90
  fqdn.split(i)[1].to_text().rstrip(".")
91
- for i in range(min_labels + 1, len(fqdn.labels))
91
+ for i in range(min_labels + 1, len(fqdn.labels) + 1)
92
92
  ]
93
93
 
94
94
  zones = _zone.Zone.objects.filter(
@@ -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 *
@@ -2,6 +2,7 @@ from dns import name as dns_name
2
2
 
3
3
  from netbox.views import generic
4
4
  from utilities.views import ViewTab, register_model_view
5
+ from tenancy.views import ObjectContactsView
5
6
 
6
7
  from netbox_dns.filtersets import NameServerFilterSet, ZoneFilterSet
7
8
  from netbox_dns.forms import (
@@ -15,15 +16,13 @@ from netbox_dns.tables import NameServerTable, ZoneTable
15
16
 
16
17
 
17
18
  __all__ = (
18
- "NameServerListView",
19
19
  "NameServerView",
20
+ "NameServerListView",
20
21
  "NameServerEditView",
21
22
  "NameServerDeleteView",
22
23
  "NameServerBulkEditView",
23
24
  "NameServerBulkImportView",
24
25
  "NameServerBulkDeleteView",
25
- "NameServerZoneListView",
26
- "NameServerSOAZoneListView",
27
26
  )
28
27
 
29
28
 
@@ -77,6 +76,11 @@ class NameServerBulkDeleteView(generic.BulkDeleteView):
77
76
  table = NameServerTable
78
77
 
79
78
 
79
+ @register_model_view(NameServer, "contacts")
80
+ class NameServerContactsView(ObjectContactsView):
81
+ queryset = NameServer.objects.all()
82
+
83
+
80
84
  @register_model_view(NameServer, "zones")
81
85
  class NameServerZoneListView(generic.ObjectChildrenView):
82
86
  queryset = NameServer.objects.all().prefetch_related("zones")
@@ -1,6 +1,8 @@
1
1
  from dns import name as dns_name
2
2
 
3
3
  from netbox.views import generic
4
+ from utilities.views import register_model_view
5
+ from tenancy.views import ObjectContactsView
4
6
 
5
7
  from netbox_dns.filtersets import RecordFilterSet
6
8
  from netbox_dns.forms import (
@@ -16,14 +18,14 @@ from netbox_dns.utilities import value_to_unicode
16
18
 
17
19
 
18
20
  __all__ = (
19
- "RecordListView",
20
- "ManagedRecordListView",
21
21
  "RecordView",
22
+ "RecordListView",
22
23
  "RecordEditView",
23
24
  "RecordDeleteView",
24
25
  "RecordBulkImportView",
25
26
  "RecordBulkEditView",
26
27
  "RecordBulkDeleteView",
28
+ "ManagedRecordListView",
27
29
  )
28
30
 
29
31
 
@@ -37,7 +39,9 @@ class RecordListView(generic.ObjectListView):
37
39
 
38
40
 
39
41
  class ManagedRecordListView(generic.ObjectListView):
40
- queryset = Record.objects.prefetch_related("ipam_ip_address", "address_record")
42
+ queryset = Record.objects.filter(managed=True).prefetch_related(
43
+ "ipam_ip_address", "address_record"
44
+ )
41
45
  filterset = RecordFilterSet
42
46
  filterset_form = RecordFilterForm
43
47
  table = ManagedRecordTable
@@ -153,3 +157,8 @@ class RecordBulkEditView(generic.BulkEditView):
153
157
  class RecordBulkDeleteView(generic.BulkDeleteView):
154
158
  queryset = Record.objects.filter(managed=False)
155
159
  table = RecordTable
160
+
161
+
162
+ @register_model_view(Record, "contacts")
163
+ class RecordContactsView(ObjectContactsView):
164
+ queryset = Record.objects.all()
@@ -15,8 +15,8 @@ from netbox_dns.utilities import value_to_unicode
15
15
 
16
16
 
17
17
  __all__ = (
18
- "RecordTemplateListView",
19
18
  "RecordTemplateView",
19
+ "RecordTemplateListView",
20
20
  "RecordTemplateEditView",
21
21
  "RecordTemplateDeleteView",
22
22
  "RecordTemplateBulkImportView",
@@ -21,7 +21,6 @@ __all__ = (
21
21
  "RegistrarBulkImportView",
22
22
  "RegistrarBulkEditView",
23
23
  "RegistrarBulkDeleteView",
24
- "RegistrarZoneListView",
25
24
  )
26
25
 
27
26
 
@@ -0,0 +1,94 @@
1
+ from django.db.models import Q
2
+
3
+ from netbox.views import generic
4
+
5
+ from utilities.views import ViewTab, register_model_view
6
+
7
+ from netbox_dns.models import RegistrationContact, Zone
8
+ from netbox_dns.filtersets import RegistrationContactFilterSet, ZoneFilterSet
9
+ from netbox_dns.forms import (
10
+ RegistrationContactForm,
11
+ RegistrationContactFilterForm,
12
+ RegistrationContactImportForm,
13
+ RegistrationContactBulkEditForm,
14
+ )
15
+ from netbox_dns.tables import RegistrationContactTable, ZoneTable
16
+
17
+
18
+ __all__ = (
19
+ "RegistrationContactView",
20
+ "RegistrationContactEditView",
21
+ "RegistrationContactListView",
22
+ "RegistrationContactDeleteView",
23
+ "RegistrationContactBulkImportView",
24
+ "RegistrationContactBulkEditView",
25
+ "RegistrationContactBulkDeleteView",
26
+ )
27
+
28
+
29
+ class RegistrationContactView(generic.ObjectView):
30
+ queryset = RegistrationContact.objects.all()
31
+
32
+
33
+ class RegistrationContactListView(generic.ObjectListView):
34
+ queryset = RegistrationContact.objects.all()
35
+ table = RegistrationContactTable
36
+ filterset = RegistrationContactFilterSet
37
+ filterset_form = RegistrationContactFilterForm
38
+
39
+
40
+ class RegistrationContactEditView(generic.ObjectEditView):
41
+ queryset = RegistrationContact.objects.all()
42
+ form = RegistrationContactForm
43
+ default_return_url = "plugins:netbox_dns:registrationcontact_list"
44
+
45
+
46
+ class RegistrationContactDeleteView(generic.ObjectDeleteView):
47
+ queryset = RegistrationContact.objects.all()
48
+ default_return_url = "plugins:netbox_dns:registrationcontact_list"
49
+
50
+
51
+ class RegistrationContactBulkImportView(generic.BulkImportView):
52
+ queryset = RegistrationContact.objects.all()
53
+ model_form = RegistrationContactImportForm
54
+ table = RegistrationContactTable
55
+ default_return_url = "plugins:netbox_dns:registrationcontact_list"
56
+
57
+
58
+ class RegistrationContactBulkEditView(generic.BulkEditView):
59
+ queryset = RegistrationContact.objects.all()
60
+ filterset = RegistrationContactFilterSet
61
+ table = RegistrationContactTable
62
+ form = RegistrationContactBulkEditForm
63
+
64
+
65
+ class RegistrationContactBulkDeleteView(generic.BulkDeleteView):
66
+ queryset = RegistrationContact.objects.all()
67
+ table = RegistrationContactTable
68
+
69
+
70
+ @register_model_view(RegistrationContact, "zones")
71
+ class RegistrationContactZoneListView(generic.ObjectChildrenView):
72
+ queryset = RegistrationContact.objects.all().prefetch_related(
73
+ "zone_set", "admin_c_zones", "tech_c_zones", "billing_c_zones"
74
+ )
75
+ child_model = Zone
76
+ table = ZoneTable
77
+ filterset = ZoneFilterSet
78
+ template_name = "netbox_dns/zone/child.html"
79
+ hide_if_empty = True
80
+
81
+ tab = ViewTab(
82
+ label="Zones",
83
+ permission="netbox_dns.view_zone",
84
+ badge=lambda obj: len(obj.zones),
85
+ hide_if_empty=True,
86
+ )
87
+
88
+ def get_children(self, request, parent):
89
+ return Zone.objects.filter(
90
+ Q(registrant=parent)
91
+ | Q(admin_c=parent)
92
+ | Q(tech_c=parent)
93
+ | Q(billing_c=parent)
94
+ )