From afc866eee4d5fca5ff29e5c95f25b7384174da6c Mon Sep 17 00:00:00 2001 From: jeremystretch Date: Mon, 13 Dec 2021 12:15:43 -0500 Subject: [PATCH] #7665: Refactored add_requested_prefixes(); removed button icons --- netbox/ipam/utils.py | 16 ++++++++++------ netbox/ipam/views.py | 16 ++++++++++------ netbox/templates/ipam/inc/toggle_available.html | 12 ++++++------ 3 files changed, 26 insertions(+), 18 deletions(-) diff --git a/netbox/ipam/utils.py b/netbox/ipam/utils.py index 3ec910ede..97da9e4fe 100644 --- a/netbox/ipam/utils.py +++ b/netbox/ipam/utils.py @@ -4,16 +4,20 @@ from .constants import * from .models import Prefix, VLAN -def add_requested_prefixes(parent, prefix_list, request): - """ - Return a list of requested prefixes using show_available, show_assigned filters. - If avalible prefixes are requested, create fake Prefix objects for all unallocated space within a prefix +def add_requested_prefixes(parent, prefix_list, show_available=True, show_assigned=True): """ + Return a list of requested prefixes using show_available, show_assigned filters. If available prefixes are + requested, create fake Prefix objects for all unallocated space within a prefix. + :param parent: Parent Prefix instance + :param prefix_list: Child prefixes list + :param show_available: Include available prefixes. + :param show_assigned: Show assigned prefixes. + """ child_prefixes = [] # Add available prefixes to the table if requested - if prefix_list and request.GET.get('show_available', 'true') == 'true': + if prefix_list and show_available: # Find all unallocated space, add fake Prefix objects to child_prefixes. available_prefixes = netaddr.IPSet(parent) ^ netaddr.IPSet([p.prefix for p in prefix_list]) @@ -21,7 +25,7 @@ def add_requested_prefixes(parent, prefix_list, request): child_prefixes = child_prefixes + available_prefixes # Add assigned prefixes to the table if requested - if prefix_list and request.GET.get('show_assigned', 'true') == 'true': + if prefix_list and show_assigned: child_prefixes = child_prefixes + list(prefix_list) # Sort child prefixes after additions diff --git a/netbox/ipam/views.py b/netbox/ipam/views.py index 8f0610cc1..e2a6be7fe 100644 --- a/netbox/ipam/views.py +++ b/netbox/ipam/views.py @@ -285,7 +285,9 @@ class AggregateView(generic.ObjectView): ) # Return List of requested Prefixes - child_prefixes = add_requested_prefixes(instance.prefix, prefix_list, request) + show_available = bool(request.GET.get('show_available', 'true') == 'true') + show_assigned = bool(request.GET.get('show_assigned', 'true') == 'true') + child_prefixes = add_requested_prefixes(instance.prefix, prefix_list, show_available, show_assigned) prefix_table = tables.PrefixTable(child_prefixes, exclude=('utilization',)) if request.user.has_perm('ipam.change_prefix') or request.user.has_perm('ipam.delete_prefix'): @@ -303,8 +305,8 @@ class AggregateView(generic.ObjectView): 'prefix_table': prefix_table, 'permissions': permissions, 'bulk_querystring': f'within={instance.prefix}', - 'show_available': request.GET.get('show_available', 'true') == 'true', - 'show_assigned': request.GET.get('show_assigned', 'true') == 'true', + 'show_available': show_available, + 'show_assigned': show_assigned, } @@ -462,7 +464,9 @@ class PrefixPrefixesView(generic.ObjectView): ) # Return List of requested Prefixes - child_prefixes = add_requested_prefixes(instance.prefix, prefix_list, request) + show_available = bool(request.GET.get('show_available', 'true') == 'true') + show_assigned = bool(request.GET.get('show_assigned', 'true') == 'true') + child_prefixes = add_requested_prefixes(instance.prefix, prefix_list, show_available, show_assigned) table = tables.PrefixTable(child_prefixes, user=request.user, exclude=('utilization',)) if request.user.has_perm('ipam.change_prefix') or request.user.has_perm('ipam.delete_prefix'): @@ -483,8 +487,8 @@ class PrefixPrefixesView(generic.ObjectView): 'bulk_querystring': bulk_querystring, 'active_tab': 'prefixes', 'first_available_prefix': instance.get_first_available_prefix(), - 'show_available': request.GET.get('show_available', 'true') == 'true', - 'show_assigned': request.GET.get('show_assigned', 'true') == 'true', + 'show_available': show_available, + 'show_assigned': show_assigned, } diff --git a/netbox/templates/ipam/inc/toggle_available.html b/netbox/templates/ipam/inc/toggle_available.html index 6c5b3319e..ccdc45668 100644 --- a/netbox/templates/ipam/inc/toggle_available.html +++ b/netbox/templates/ipam/inc/toggle_available.html @@ -2,14 +2,14 @@ {% if show_assigned or show_available is not None %}
- - Show Assigned + + Show Assigned - - Show Available + + Show Available - - Show All + + Show All
{% endif %}