mirror of
https://github.com/netbox-community/netbox.git
synced 2025-07-25 01:48:38 -06:00
Table rendering optimizations
This commit is contained in:
parent
c9e7c12463
commit
424c2a59d6
@ -359,12 +359,12 @@ def devicetype(request, pk):
|
|||||||
natsorted(PowerOutletTemplate.objects.filter(device_type=devicetype), key=attrgetter('name'))
|
natsorted(PowerOutletTemplate.objects.filter(device_type=devicetype), key=attrgetter('name'))
|
||||||
)
|
)
|
||||||
mgmt_interface_table = tables.InterfaceTemplateTable(
|
mgmt_interface_table = tables.InterfaceTemplateTable(
|
||||||
InterfaceTemplate.objects.order_naturally(devicetype.interface_ordering).filter(device_type=devicetype,
|
list(InterfaceTemplate.objects.order_naturally(devicetype.interface_ordering).filter(device_type=devicetype,
|
||||||
mgmt_only=True)
|
mgmt_only=True))
|
||||||
)
|
)
|
||||||
interface_table = tables.InterfaceTemplateTable(
|
interface_table = tables.InterfaceTemplateTable(
|
||||||
InterfaceTemplate.objects.order_naturally(devicetype.interface_ordering).filter(device_type=devicetype,
|
list(InterfaceTemplate.objects.order_naturally(devicetype.interface_ordering).filter(device_type=devicetype,
|
||||||
mgmt_only=False)
|
mgmt_only=False))
|
||||||
)
|
)
|
||||||
devicebay_table = tables.DeviceBayTemplateTable(
|
devicebay_table = tables.DeviceBayTemplateTable(
|
||||||
natsorted(DeviceBayTemplate.objects.filter(device_type=devicetype), key=attrgetter('name'))
|
natsorted(DeviceBayTemplate.objects.filter(device_type=devicetype), key=attrgetter('name'))
|
||||||
|
@ -102,8 +102,10 @@ class VRFListView(ObjectListView):
|
|||||||
def vrf(request, pk):
|
def vrf(request, pk):
|
||||||
|
|
||||||
vrf = get_object_or_404(VRF.objects.all(), pk=pk)
|
vrf = get_object_or_404(VRF.objects.all(), pk=pk)
|
||||||
prefixes = Prefix.objects.filter(vrf=vrf)
|
prefix_table = tables.PrefixBriefTable(
|
||||||
prefix_table = tables.PrefixBriefTable(prefixes)
|
list(Prefix.objects.filter(vrf=vrf).select_related('site', 'role'))
|
||||||
|
)
|
||||||
|
prefix_table.exclude = ('vrf',)
|
||||||
|
|
||||||
return render(request, 'ipam/vrf.html', {
|
return render(request, 'ipam/vrf.html', {
|
||||||
'vrf': vrf,
|
'vrf': vrf,
|
||||||
@ -401,7 +403,7 @@ def prefix(request, pk):
|
|||||||
# Duplicate prefixes table
|
# Duplicate prefixes table
|
||||||
duplicate_prefixes = Prefix.objects.filter(vrf=prefix.vrf, prefix=str(prefix.prefix)).exclude(pk=prefix.pk)\
|
duplicate_prefixes = Prefix.objects.filter(vrf=prefix.vrf, prefix=str(prefix.prefix)).exclude(pk=prefix.pk)\
|
||||||
.select_related('site', 'role')
|
.select_related('site', 'role')
|
||||||
duplicate_prefix_table = tables.PrefixBriefTable(duplicate_prefixes)
|
duplicate_prefix_table = tables.PrefixBriefTable(list(duplicate_prefixes))
|
||||||
|
|
||||||
# Child prefixes table
|
# Child prefixes table
|
||||||
if prefix.vrf:
|
if prefix.vrf:
|
||||||
@ -504,18 +506,20 @@ def ipaddress(request, pk):
|
|||||||
ipaddress = get_object_or_404(IPAddress.objects.select_related('interface__device'), pk=pk)
|
ipaddress = get_object_or_404(IPAddress.objects.select_related('interface__device'), pk=pk)
|
||||||
|
|
||||||
# Parent prefixes table
|
# Parent prefixes table
|
||||||
parent_prefixes = Prefix.objects.filter(vrf=ipaddress.vrf, prefix__net_contains=str(ipaddress.address.ip))
|
parent_prefixes = Prefix.objects.filter(vrf=ipaddress.vrf, prefix__net_contains=str(ipaddress.address.ip))\
|
||||||
parent_prefixes_table = tables.PrefixBriefTable(parent_prefixes)
|
.select_related('site', 'role')
|
||||||
|
parent_prefixes_table = tables.PrefixBriefTable(list(parent_prefixes))
|
||||||
|
parent_prefixes_table.exclude = ('vrf',)
|
||||||
|
|
||||||
# Duplicate IPs table
|
# Duplicate IPs table
|
||||||
duplicate_ips = IPAddress.objects.filter(vrf=ipaddress.vrf, address=str(ipaddress.address))\
|
duplicate_ips = IPAddress.objects.filter(vrf=ipaddress.vrf, address=str(ipaddress.address))\
|
||||||
.exclude(pk=ipaddress.pk).select_related('interface__device', 'nat_inside')
|
.exclude(pk=ipaddress.pk).select_related('interface__device', 'nat_inside')
|
||||||
duplicate_ips_table = tables.IPAddressBriefTable(duplicate_ips)
|
duplicate_ips_table = tables.IPAddressBriefTable(list(duplicate_ips))
|
||||||
|
|
||||||
# Related IP table
|
# Related IP table
|
||||||
related_ips = IPAddress.objects.select_related('interface__device').exclude(address=str(ipaddress.address))\
|
related_ips = IPAddress.objects.select_related('interface__device').exclude(address=str(ipaddress.address))\
|
||||||
.filter(vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address))
|
.filter(vrf=ipaddress.vrf, address__net_contained_or_equal=str(ipaddress.address))
|
||||||
related_ips_table = tables.IPAddressBriefTable(related_ips)
|
related_ips_table = tables.IPAddressBriefTable(list(related_ips))
|
||||||
|
|
||||||
return render(request, 'ipam/ipaddress.html', {
|
return render(request, 'ipam/ipaddress.html', {
|
||||||
'ipaddress': ipaddress,
|
'ipaddress': ipaddress,
|
||||||
@ -695,8 +699,8 @@ class VLANListView(ObjectListView):
|
|||||||
def vlan(request, pk):
|
def vlan(request, pk):
|
||||||
|
|
||||||
vlan = get_object_or_404(VLAN.objects.select_related('site', 'role'), pk=pk)
|
vlan = get_object_or_404(VLAN.objects.select_related('site', 'role'), pk=pk)
|
||||||
prefixes = Prefix.objects.filter(vlan=vlan)
|
prefixes = Prefix.objects.filter(vlan=vlan).select_related('vrf', 'site', 'role')
|
||||||
prefix_table = tables.PrefixBriefTable(prefixes)
|
prefix_table = tables.PrefixBriefTable(list(prefixes))
|
||||||
|
|
||||||
return render(request, 'ipam/vlan.html', {
|
return render(request, 'ipam/vlan.html', {
|
||||||
'vlan': vlan,
|
'vlan': vlan,
|
||||||
|
Loading…
Reference in New Issue
Block a user