Bläddra i källkod

Fixes #8131: Restore annotation of available IPs under prefix IPs view

jeremystretch 4 år sedan
förälder
incheckning
a0db10838b
2 ändrade filer med 11 tillägg och 3 borttagningar
  1. 1 0
      docs/release-notes/version-3.1.md
  2. 10 3
      netbox/ipam/views.py

+ 1 - 0
docs/release-notes/version-3.1.md

@@ -5,6 +5,7 @@
 ### Bug Fixes
 
 * [#7962](https://github.com/netbox-community/netbox/issues/7962) - Fix user menu under report/script result view
+* [#8131](https://github.com/netbox-community/netbox/issues/8131) - Restore annotation of available IPs under prefix IPs view
 
 ---
 

+ 10 - 3
netbox/ipam/views.py

@@ -5,18 +5,18 @@ from django.shortcuts import get_object_or_404, redirect, render
 from django.urls import reverse
 
 from dcim.filtersets import InterfaceFilterSet
-from dcim.models import Device, Interface, Site
+from dcim.models import Interface, Site
 from dcim.tables import SiteTable
 from netbox.views import generic
 from utilities.tables import paginate_table
 from utilities.utils import count_related
 from virtualization.filtersets import VMInterfaceFilterSet
-from virtualization.models import VirtualMachine, VMInterface
+from virtualization.models import VMInterface
 from . import filtersets, forms, tables
 from .constants import *
 from .models import *
 from .models import ASN
-from .utils import add_requested_prefixes, add_available_vlans
+from .utils import add_requested_prefixes, add_available_ipaddresses, add_available_vlans
 
 
 #
@@ -502,6 +502,13 @@ class PrefixIPAddressesView(generic.ObjectChildrenView):
     def get_children(self, request, parent):
         return parent.get_child_ips().restrict(request.user, 'view')
 
+    def prep_table_data(self, request, queryset, parent):
+        show_available = bool(request.GET.get('show_available', 'true') == 'true')
+        if show_available:
+            return add_available_ipaddresses(parent.prefix, queryset, parent.is_pool)
+
+        return queryset
+
     def get_extra_context(self, request, instance):
         return {
             'bulk_querystring': f"vrf_id={instance.vrf.pk if instance.vrf else '0'}&parent={instance.prefix}",