diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 75c582b99..b230783fc 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -395,16 +395,24 @@ def ipaddress(request, pk): ipaddress = get_object_or_404(IPAddress.objects.select_related('interface__device'), pk=pk) + # Parent prefixes table parent_prefixes = Prefix.objects.filter(vrf=ipaddress.vrf, prefix__net_contains=str(ipaddress.address.ip)) - related_ips = IPAddress.objects.select_related('interface__device').exclude(pk=ipaddress.pk)\ - .filter(vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address)) + parent_prefixes_table = tables.PrefixBriefTable(parent_prefixes) + # Duplicate IPs table + duplicate_ips = IPAddress.objects.filter(vrf=ipaddress.vrf, address=str(ipaddress.address))\ + .exclude(pk=ipaddress.pk).select_related('interface__device', 'nat_inside') + duplicate_ips_table = tables.IPAddressBriefTable(duplicate_ips) + + # Related IP table + related_ips = IPAddress.objects.select_related('interface__device').exclude(address=str(ipaddress.address))\ + .filter(vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address)) related_ips_table = tables.IPAddressBriefTable(related_ips) - RequestConfig(request, paginate={'klass': EnhancedPaginator}).configure(related_ips_table) return render(request, 'ipam/ipaddress.html', { 'ipaddress': ipaddress, - 'parent_prefixes': parent_prefixes, + 'parent_prefixes_table': parent_prefixes_table, + 'duplicate_ips_table': duplicate_ips_table, 'related_ips_table': related_ips_table, }) diff --git a/netbox/templates/ipam/ipaddress.html b/netbox/templates/ipam/ipaddress.html index 4c2d11f10..6834ded9e 100644 --- a/netbox/templates/ipam/ipaddress.html +++ b/netbox/templates/ipam/ipaddress.html @@ -119,31 +119,14 @@
- {{ p }} - | -- {% if p.site %} - {{ p.site }} - {% endif %} - | -{{ p.status }} | -{{ p.role }} | -