|
|
@@ -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):
|