From 95ce232076f032f52084b81b9729927f59e98f8a Mon Sep 17 00:00:00 2001 From: Grokzen Date: Tue, 18 Dec 2018 14:25:21 +0100 Subject: [PATCH] Added buttons and filtering of available IP Addresses and child prefixes in prefix view - Add 2 new buttons, Hide available and Show available to Prefix view. - Add in logic into the prefix view to only include IP Addresses if we want to show available addresses - This changes the default mode to NOT show available IPAddresses in the prefix view. --- netbox/ipam/views.py | 8 +++++--- netbox/templates/ipam/prefix.html | 6 ++++++ 2 files changed, 11 insertions(+), 3 deletions(-) diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 3a4c36173..0ba9903b8 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -504,8 +504,9 @@ class PrefixPrefixesView(View): ).annotate_depth(limit=0) # Annotate available prefixes - if child_prefixes: - child_prefixes = add_available_prefixes(prefix.prefix, child_prefixes) + if request.GET.get('show_available', None): + if child_prefixes: + child_prefixes = add_available_prefixes(prefix.prefix, child_prefixes) prefix_table = tables.PrefixDetailTable(child_prefixes) if request.user.has_perm('ipam.change_prefix') or request.user.has_perm('ipam.delete_prefix'): @@ -544,7 +545,8 @@ class PrefixIPAddressesView(View): ipaddresses = prefix.get_child_ips().select_related( 'vrf', 'interface__device', 'primary_ip4_for', 'primary_ip6_for' ) - ipaddresses = add_available_ipaddresses(prefix.prefix, ipaddresses, prefix.is_pool) + if request.GET.get('show_available', None): + ipaddresses = add_available_ipaddresses(prefix.prefix, ipaddresses, prefix.is_pool) ip_table = tables.IPAddressTable(ipaddresses) if request.user.has_perm('ipam.change_ipaddress') or request.user.has_perm('ipam.delete_ipaddress'): diff --git a/netbox/templates/ipam/prefix.html b/netbox/templates/ipam/prefix.html index 0e3aff6b0..5f8431d89 100644 --- a/netbox/templates/ipam/prefix.html +++ b/netbox/templates/ipam/prefix.html @@ -52,6 +52,12 @@

{% block title %}{{ prefix }}{% endblock %}

{% include 'inc/created_updated.html' with obj=prefix %} +
+ +