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.
This commit is contained in:
Grokzen 2018-12-18 14:25:21 +01:00
parent d4a9318826
commit 95ce232076
2 changed files with 11 additions and 3 deletions

View File

@ -504,6 +504,7 @@ class PrefixPrefixesView(View):
).annotate_depth(limit=0)
# Annotate available prefixes
if request.GET.get('show_available', None):
if child_prefixes:
child_prefixes = add_available_prefixes(prefix.prefix, child_prefixes)
@ -544,6 +545,7 @@ class PrefixIPAddressesView(View):
ipaddresses = prefix.get_child_ips().select_related(
'vrf', 'interface__device', 'primary_ip4_for', 'primary_ip6_for'
)
if request.GET.get('show_available', None):
ipaddresses = add_available_ipaddresses(prefix.prefix, ipaddresses, prefix.is_pool)
ip_table = tables.IPAddressTable(ipaddresses)

View File

@ -52,6 +52,12 @@
</div>
<h1>{% block title %}{{ prefix }}{% endblock %}</h1>
{% include 'inc/created_updated.html' with obj=prefix %}
<div class="pull-right">
<div class="btn-group" role="group">
<a href="{{ request.path }}{% querystring request show_available=None %}" class="btn btn-default{% if not request.GET.show_available %} active{% endif %}">Hide available</a>
<a href="{{ request.path }}{% querystring request show_available='on' %}" class="btn btn-default{% if request.GET.show_available %} active{% endif %}">Show available</a>
</div>
</div>
<ul class="nav nav-tabs" style="margin-bottom: 20px">
<li role="presentation"{% if not active_tab %} class="active"{% endif %}>
<a href="{% url 'ipam:prefix' pk=prefix.pk %}">Prefix</a>