|
|
@@ -333,7 +333,14 @@ class AggregateView(PermissionRequiredMixin, View):
|
|
|
).annotate_depth(
|
|
|
limit=0
|
|
|
)
|
|
|
- child_prefixes = add_available_prefixes(aggregate.prefix, child_prefixes)
|
|
|
+
|
|
|
+ # Update the ipam_show_available cookie if request specifies it
|
|
|
+ if request.GET.get('show_available') is not None:
|
|
|
+ request.session['ipam_show_available'] = request.GET.get('show_available') == 'true'
|
|
|
+
|
|
|
+ # Add available prefixes to the table if the cookie requested it
|
|
|
+ if request.session.get('ipam_show_available'):
|
|
|
+ child_prefixes = add_available_prefixes(aggregate.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'):
|
|
|
@@ -356,6 +363,7 @@ class AggregateView(PermissionRequiredMixin, View):
|
|
|
'aggregate': aggregate,
|
|
|
'prefix_table': prefix_table,
|
|
|
'permissions': permissions,
|
|
|
+ 'show_available': request.session.get('ipam_show_available'),
|
|
|
})
|
|
|
|
|
|
|
|
|
@@ -511,8 +519,12 @@ class PrefixPrefixesView(PermissionRequiredMixin, View):
|
|
|
'site', 'vlan', 'role',
|
|
|
).annotate_depth(limit=0)
|
|
|
|
|
|
- # Annotate available prefixes
|
|
|
- if child_prefixes:
|
|
|
+ # Update the ipam_show_available cookie if request specifies it
|
|
|
+ if request.GET.get('show_available') is not None:
|
|
|
+ request.session['ipam_show_available'] = request.GET.get('show_available') == 'true'
|
|
|
+
|
|
|
+ # Add available prefixes to the table if the cookie requested it
|
|
|
+ if child_prefixes and request.session.get('ipam_show_available'):
|
|
|
child_prefixes = add_available_prefixes(prefix.prefix, child_prefixes)
|
|
|
|
|
|
prefix_table = tables.PrefixDetailTable(child_prefixes)
|
|
|
@@ -539,6 +551,7 @@ class PrefixPrefixesView(PermissionRequiredMixin, View):
|
|
|
'permissions': permissions,
|
|
|
'bulk_querystring': 'vrf_id={}&within={}'.format(prefix.vrf.pk if prefix.vrf else '0', prefix.prefix),
|
|
|
'active_tab': 'prefixes',
|
|
|
+ 'show_available': request.session.get('ipam_show_available'),
|
|
|
})
|
|
|
|
|
|
|
|
|
@@ -553,7 +566,14 @@ class PrefixIPAddressesView(PermissionRequiredMixin, View):
|
|
|
ipaddresses = prefix.get_child_ips().prefetch_related(
|
|
|
'vrf', 'interface__device', 'primary_ip4_for', 'primary_ip6_for'
|
|
|
)
|
|
|
- ipaddresses = add_available_ipaddresses(prefix.prefix, ipaddresses, prefix.is_pool)
|
|
|
+
|
|
|
+ # Update the ipam_show_available cookie if request specifies it
|
|
|
+ if request.GET.get('show_available') is not None:
|
|
|
+ request.session['ipam_show_available'] = request.GET.get('show_available') == 'true'
|
|
|
+
|
|
|
+ # Add available IP addresses to the table if the cookie requested it
|
|
|
+ if request.session.get('ipam_show_available'):
|
|
|
+ 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'):
|
|
|
@@ -579,6 +599,7 @@ class PrefixIPAddressesView(PermissionRequiredMixin, View):
|
|
|
'permissions': permissions,
|
|
|
'bulk_querystring': 'vrf_id={}&parent={}'.format(prefix.vrf.pk if prefix.vrf else '0', prefix.prefix),
|
|
|
'active_tab': 'ip-addresses',
|
|
|
+ 'show_available': request.session.get('ipam_show_available'),
|
|
|
})
|
|
|
|
|
|
|