Moves related ips to a tab (#12502)
* moves related ips to a tab #12233 * Refactor IP address templates to use a base template --------- Co-authored-by: jeremystretch <jstretch@netboxlabs.com>
This commit is contained in:

committed by
GitHub

parent
57156f0e94
commit
6b19f15a7b
@@ -755,19 +755,9 @@ class IPAddressView(generic.ObjectView):
|
||||
# Limit to a maximum of 10 duplicates displayed here
|
||||
duplicate_ips_table = tables.IPAddressTable(duplicate_ips[:10], orderable=False)
|
||||
|
||||
# Related IP table
|
||||
related_ips = IPAddress.objects.restrict(request.user, 'view').exclude(
|
||||
address=str(instance.address)
|
||||
).filter(
|
||||
vrf=instance.vrf, address__net_contained_or_equal=str(instance.address)
|
||||
)
|
||||
related_ips_table = tables.IPAddressTable(related_ips, orderable=False)
|
||||
related_ips_table.configure(request)
|
||||
|
||||
return {
|
||||
'parent_prefixes_table': parent_prefixes_table,
|
||||
'duplicate_ips_table': duplicate_ips_table,
|
||||
'related_ips_table': related_ips_table,
|
||||
}
|
||||
|
||||
|
||||
@@ -872,6 +862,24 @@ class IPAddressBulkDeleteView(generic.BulkDeleteView):
|
||||
table = tables.IPAddressTable
|
||||
|
||||
|
||||
@register_model_view(IPAddress, 'related_ips', path='related-ip-addresses')
|
||||
class IPAddressRelatedIPsView(generic.ObjectChildrenView):
|
||||
queryset = IPAddress.objects.prefetch_related('vrf__tenant', 'tenant')
|
||||
child_model = IPAddress
|
||||
table = tables.IPAddressTable
|
||||
filterset = filtersets.IPAddressFilterSet
|
||||
template_name = 'ipam/ipaddress/ip_addresses.html'
|
||||
tab = ViewTab(
|
||||
label=_('Related IPs'),
|
||||
badge=lambda x: x.get_related_ips().count(),
|
||||
weight=500,
|
||||
hide_if_empty=True,
|
||||
)
|
||||
|
||||
def get_children(self, request, parent):
|
||||
return parent.get_related_ips().restrict(request.user, 'view')
|
||||
|
||||
|
||||
#
|
||||
# VLAN groups
|
||||
#
|
||||
|
Reference in New Issue
Block a user