Просмотр исходного кода

Closes #11039: List parent prefixes under IP range view

Jeremy Stretch 2 лет назад
Родитель
Сommit
d6c8d1581c
2 измененных файлов с 25 добавлено и 0 удалено
  1. 20 0
      netbox/ipam/views.py
  2. 5 0
      netbox/templates/ipam/iprange.html

+ 20 - 0
netbox/ipam/views.py

@@ -661,6 +661,26 @@ class IPRangeListView(generic.ObjectListView):
 class IPRangeView(generic.ObjectView):
     queryset = IPRange.objects.all()
 
+    def get_extra_context(self, request, instance):
+
+        # Parent prefixes table
+        parent_prefixes = Prefix.objects.restrict(request.user, 'view').filter(
+            Q(prefix__net_contains_or_equals=str(instance.start_address.ip)),
+            Q(prefix__net_contains_or_equals=str(instance.end_address.ip)),
+            vrf=instance.vrf
+        ).prefetch_related(
+            'site', 'role', 'tenant', 'vlan', 'role'
+        )
+        parent_prefixes_table = tables.PrefixTable(
+            list(parent_prefixes),
+            exclude=('vrf', 'utilization'),
+            orderable=False
+        )
+
+        return {
+            'parent_prefixes_table': parent_prefixes_table,
+        }
+
 
 @register_model_view(IPRange, 'ipaddresses', path='ip-addresses')
 class IPRangeIPAddressesView(generic.ObjectChildrenView):

+ 5 - 0
netbox/templates/ipam/iprange.html

@@ -82,6 +82,11 @@
       {% plugin_right_page object %}
     </div>
 </div>
+<div class="row">
+  <div class="col col-md-12">
+    {% include 'inc/panel_table.html' with table=parent_prefixes_table heading='Parent Prefixes' %}
+  </div>
+</div>
 <div class="row">
     <div class="col col-md-12">
         {% plugin_full_width_page object %}