mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-18 13:06:30 -06:00
13764 Add contacts to IP views
This commit is contained in:
parent
233b9029e1
commit
17799df72e
@ -18,6 +18,7 @@ from ipam.querysets import PrefixQuerySet
|
||||
from ipam.validators import DNSValidator
|
||||
from netbox.config import get_config
|
||||
from netbox.models import OrganizationalModel, PrimaryModel
|
||||
from netbox.models.features import ContactsMixin
|
||||
|
||||
__all__ = (
|
||||
'Aggregate',
|
||||
@ -74,7 +75,7 @@ class RIR(OrganizationalModel):
|
||||
return reverse('ipam:rir', args=[self.pk])
|
||||
|
||||
|
||||
class Aggregate(GetAvailablePrefixesMixin, PrimaryModel):
|
||||
class Aggregate(ContactsMixin, GetAvailablePrefixesMixin, PrimaryModel):
|
||||
"""
|
||||
An aggregate exists at the root level of the IP address space hierarchy in NetBox. Aggregates are used to organize
|
||||
the hierarchy and track the overall utilization of available address space. Each Aggregate is assigned to a RIR.
|
||||
@ -206,7 +207,7 @@ class Role(OrganizationalModel):
|
||||
return reverse('ipam:role', args=[self.pk])
|
||||
|
||||
|
||||
class Prefix(GetAvailablePrefixesMixin, PrimaryModel):
|
||||
class Prefix(ContactsMixin, GetAvailablePrefixesMixin, PrimaryModel):
|
||||
"""
|
||||
A Prefix represents an IPv4 or IPv6 network, including mask length. Prefixes can optionally be assigned to Sites and
|
||||
VRFs. A Prefix must be assigned a status and may optionally be assigned a used-define Role. A Prefix can also be
|
||||
@ -486,7 +487,7 @@ class Prefix(GetAvailablePrefixesMixin, PrimaryModel):
|
||||
return min(utilization, 100)
|
||||
|
||||
|
||||
class IPRange(PrimaryModel):
|
||||
class IPRange(ContactsMixin, PrimaryModel):
|
||||
"""
|
||||
A range of IP addresses, defined by start and end addresses.
|
||||
"""
|
||||
@ -695,7 +696,7 @@ class IPRange(PrimaryModel):
|
||||
return min(float(child_count) / self.size * 100, 100)
|
||||
|
||||
|
||||
class IPAddress(PrimaryModel):
|
||||
class IPAddress(ContactsMixin, PrimaryModel):
|
||||
"""
|
||||
An IPAddress represents an individual IPv4 or IPv6 address and its mask. The mask length should match what is
|
||||
configured in the real world. (Typically, only loopback interfaces are configured with /32 or /128 masks.) Like
|
||||
|
@ -9,6 +9,7 @@ from circuits.models import Provider
|
||||
from dcim.filtersets import InterfaceFilterSet
|
||||
from dcim.models import Interface, Site
|
||||
from netbox.views import generic
|
||||
from tenancy.views import ObjectContactsView
|
||||
from utilities.query import count_related
|
||||
from utilities.tables import get_table_ordering
|
||||
from utilities.views import ViewTab, register_model_view
|
||||
@ -405,6 +406,11 @@ class AggregateBulkDeleteView(generic.BulkDeleteView):
|
||||
table = tables.AggregateTable
|
||||
|
||||
|
||||
@register_model_view(Aggregate, 'contacts')
|
||||
class AggregateContactsView(ObjectContactsView):
|
||||
queryset = Aggregate.objects.all()
|
||||
|
||||
|
||||
#
|
||||
# Prefix/VLAN roles
|
||||
#
|
||||
@ -643,6 +649,11 @@ class PrefixBulkDeleteView(generic.BulkDeleteView):
|
||||
table = tables.PrefixTable
|
||||
|
||||
|
||||
@register_model_view(Prefix, 'contacts')
|
||||
class PrefixContactsView(ObjectContactsView):
|
||||
queryset = Prefix.objects.all()
|
||||
|
||||
|
||||
#
|
||||
# IP Ranges
|
||||
#
|
||||
@ -726,6 +737,11 @@ class IPRangeBulkDeleteView(generic.BulkDeleteView):
|
||||
table = tables.IPRangeTable
|
||||
|
||||
|
||||
@register_model_view(IPRange, 'contacts')
|
||||
class IPRangeContactsView(ObjectContactsView):
|
||||
queryset = IPRange.objects.all()
|
||||
|
||||
|
||||
#
|
||||
# IP addresses
|
||||
#
|
||||
@ -893,6 +909,11 @@ class IPAddressRelatedIPsView(generic.ObjectChildrenView):
|
||||
return parent.get_related_ips().restrict(request.user, 'view')
|
||||
|
||||
|
||||
@register_model_view(IPAddress, 'contacts')
|
||||
class IPAddressContactsView(ObjectContactsView):
|
||||
queryset = IPAddress.objects.all()
|
||||
|
||||
|
||||
#
|
||||
# VLAN groups
|
||||
#
|
||||
|
Loading…
Reference in New Issue
Block a user