Skip to content

Commit

Permalink
Added the contacts feature to Zone, Record, View and NameServer
Browse files Browse the repository at this point in the history
Co-authored-by: Thomas A Davis <12158973+ThomasADavis@users.noreply.github.com>
  • Loading branch information
peteeckel and ThomasADavis committed Aug 28, 2024
1 parent 2d4fcd0 commit a142d6e
Show file tree
Hide file tree
Showing 12 changed files with 54 additions and 4 deletions.
3 changes: 2 additions & 1 deletion netbox_dns/models/nameserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -7,6 +7,7 @@

from netbox.models import NetBoxModel
from netbox.search import SearchIndex, register_search
from netbox.models.features import ContactsMixin

from netbox_dns.utilities import (
name_to_unicode,
Expand All @@ -26,7 +27,7 @@
)


class NameServer(ObjectModificationMixin, NetBoxModel):
class NameServer(ObjectModificationMixin, ContactsMixin, NetBoxModel):
name = models.CharField(
unique=True,
max_length=255,
Expand Down
3 changes: 2 additions & 1 deletion netbox_dns/models/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -9,6 +9,7 @@
from django.urls import reverse

from netbox.models import NetBoxModel
from netbox.models.features import ContactsMixin
from netbox.search import SearchIndex, register_search
from netbox.plugins.utils import get_plugin_config
from utilities.querysets import RestrictedQuerySet
Expand Down Expand Up @@ -62,7 +63,7 @@ def get_queryset(self):
)


class Record(ObjectModificationMixin, NetBoxModel):
class Record(ObjectModificationMixin, ContactsMixin, NetBoxModel):
ACTIVE_STATUS_LIST = (RecordStatusChoices.STATUS_ACTIVE,)

unique_ptr_qs = Q(
Expand Down
3 changes: 2 additions & 1 deletion netbox_dns/models/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -3,6 +3,7 @@
from django.core.exceptions import ValidationError

from netbox.models import NetBoxModel
from netbox.models.features import ContactsMixin
from netbox.search import SearchIndex, register_search
from netbox.context import current_request
from utilities.exceptions import AbortRequest
Expand All @@ -16,7 +17,7 @@
)


class View(ObjectModificationMixin, NetBoxModel):
class View(ObjectModificationMixin, ContactsMixin, NetBoxModel):
name = models.CharField(
unique=True,
max_length=255,
Expand Down
3 changes: 2 additions & 1 deletion netbox_dns/models/zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -19,6 +19,7 @@
from django.conf import settings

from netbox.models import NetBoxModel
from netbox.models.features import ContactsMixin
from netbox.search import SearchIndex, register_search
from netbox.plugins.utils import get_plugin_config
from utilities.querysets import RestrictedQuerySet
Expand Down Expand Up @@ -67,7 +68,7 @@ def get_queryset(self):
)


class Zone(ObjectModificationMixin, NetBoxModel):
class Zone(ObjectModificationMixin, ContactsMixin, NetBoxModel):
ACTIVE_STATUS_LIST = (ZoneStatusChoices.STATUS_ACTIVE,)

def __init__(self, *args, **kwargs):
Expand Down
6 changes: 6 additions & 0 deletions netbox_dns/urls/nameserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,7 @@
NameServerBulkDeleteView,
NameServerZoneListView,
NameServerSOAZoneListView,
NameServerContactsView,
)

nameserver_urlpatterns = [
Expand Down Expand Up @@ -44,6 +45,11 @@
NameServerDeleteView.as_view(),
name="nameserver_delete",
),
path(
"nameservers/<int:pk>/contacts/",
NameServerContactsView.as_view(),
name="nameserver_contacts",
),
path(
"nameservers/<int:pk>/journal/",
ObjectJournalView.as_view(),
Expand Down
6 changes: 6 additions & 0 deletions netbox_dns/urls/record.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
RecordBulkImportView,
RecordBulkEditView,
RecordBulkDeleteView,
RecordContactsView,
ManagedRecordListView,
)

Expand All @@ -23,6 +24,11 @@
path("records/<int:pk>/", RecordView.as_view(), name="record"),
path("records/<int:pk>/edit/", RecordEditView.as_view(), name="record_edit"),
path("records/<int:pk>/delete/", RecordDeleteView.as_view(), name="record_delete"),
path(
"records/<int:pk>/contacts/",
RecordContactsView.as_view(),
name="record_contacts",
),
path(
"records/<int:pk>/journal/",
ObjectJournalView.as_view(),
Expand Down
2 changes: 2 additions & 0 deletions netbox_dns/urls/view.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
ViewBulkImportView,
ViewBulkEditView,
ViewBulkDeleteView,
ViewContactsView,
ViewZoneListView,
)

Expand All @@ -23,6 +24,7 @@
path("views/<int:pk>/", ViewView.as_view(), name="view"),
path("views/<int:pk>/edit/", ViewEditView.as_view(), name="view_edit"),
path("views/<int:pk>/delete/", ViewDeleteView.as_view(), name="view_delete"),
path("views/<int:pk>/contacts/", ViewContactsView.as_view(), name="view_contacts"),
path("views/<int:pk>/zones/", ViewZoneListView.as_view(), name="view_zones"),
path(
"views/<int:pk>/journal/",
Expand Down
2 changes: 2 additions & 0 deletions netbox_dns/urls/zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -11,6 +11,7 @@
ZoneBulkImportView,
ZoneBulkEditView,
ZoneBulkDeleteView,
ZoneContactsView,
ZoneRecordListView,
ZoneManagedRecordListView,
ZoneRegistrationView,
Expand All @@ -27,6 +28,7 @@
path("zones/<int:pk>/", ZoneView.as_view(), name="zone"),
path("zones/<int:pk>/delete/", ZoneDeleteView.as_view(), name="zone_delete"),
path("zones/<int:pk>/edit/", ZoneEditView.as_view(), name="zone_edit"),
path("zones/<int:pk>/contacts/", ZoneContactsView.as_view(), name="zone_contacts"),
path("zones/<int:pk>/records/", ZoneRecordListView.as_view(), name="zone_records"),
path(
"zones/<int:pk>/managedrecords/",
Expand Down
7 changes: 7 additions & 0 deletions netbox_dns/views/nameserver.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from netbox.views import generic
from utilities.views import ViewTab, register_model_view
from tenancy.views import ObjectContactsView

from netbox_dns.filtersets import NameServerFilterSet, ZoneFilterSet
from netbox_dns.forms import (
Expand All @@ -24,6 +25,7 @@
"NameServerBulkDeleteView",
"NameServerZoneListView",
"NameServerSOAZoneListView",
"NameServerContactsView",
)


Expand Down Expand Up @@ -77,6 +79,11 @@ class NameServerBulkDeleteView(generic.BulkDeleteView):
table = NameServerTable


@register_model_view(NameServer, "contacts")
class NameServerContactsView(ObjectContactsView):
queryset = NameServer.objects.all()


@register_model_view(NameServer, "zones")
class NameServerZoneListView(generic.ObjectChildrenView):
queryset = NameServer.objects.all().prefetch_related("zones")
Expand Down
8 changes: 8 additions & 0 deletions netbox_dns/views/record.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from dns import name as dns_name

from netbox.views import generic
from utilities.views import register_model_view
from tenancy.views import ObjectContactsView

from netbox_dns.filtersets import RecordFilterSet
from netbox_dns.forms import (
Expand All @@ -24,6 +26,7 @@
"RecordBulkImportView",
"RecordBulkEditView",
"RecordBulkDeleteView",
"RecordContactsView",
)


Expand Down Expand Up @@ -155,3 +158,8 @@ class RecordBulkEditView(generic.BulkEditView):
class RecordBulkDeleteView(generic.BulkDeleteView):
queryset = Record.objects.filter(managed=False)
table = RecordTable


@register_model_view(Record, "contacts")
class RecordContactsView(ObjectContactsView):
queryset = Record.objects.all()
8 changes: 8 additions & 0 deletions netbox_dns/views/view.py
Original file line number Diff line number Diff line change
@@ -1,6 +1,8 @@
from utilities.views import ViewTab, register_model_view

from netbox.views import generic
from utilities.views import register_model_view
from tenancy.views import ObjectContactsView

from netbox_dns.models import View, Zone
from netbox_dns.filtersets import ViewFilterSet, ZoneFilterSet
Expand All @@ -16,6 +18,7 @@
"ViewBulkImportView",
"ViewBulkEditView",
"ViewBulkDeleteView",
"ViewContactsView",
"ViewZoneListView",
)

Expand Down Expand Up @@ -79,3 +82,8 @@ class ViewZoneListView(generic.ObjectChildrenView):

def get_children(self, request, parent):
return parent.zone_set


@register_model_view(View, "contacts")
class ViewContactsView(ObjectContactsView):
queryset = View.objects.all()
7 changes: 7 additions & 0 deletions netbox_dns/views/zone.py
Original file line number Diff line number Diff line change
Expand Up @@ -2,6 +2,7 @@

from netbox.views import generic
from utilities.views import ViewTab, register_model_view
from tenancy.views import ObjectContactsView

from netbox_dns.filtersets import ZoneFilterSet, RecordFilterSet
from netbox_dns.forms import (
Expand All @@ -26,6 +27,7 @@
"ZoneBulkImportView",
"ZoneBulkEditView",
"ZoneBulkDeleteView",
"ZoneContactsView",
"ZoneRegistrationView",
"ZoneRecordListView",
"ZoneManagedRecordListView",
Expand Down Expand Up @@ -201,3 +203,8 @@ class ZoneChildZoneListView(generic.ObjectChildrenView):

def get_children(self, request, parent):
return parent.child_zones


@register_model_view(Zone, "contacts")
class ZoneContactsView(ObjectContactsView):
queryset = Zone.objects.all()

0 comments on commit a142d6e

Please sign in to comment.