mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Prefetch Tenant Group in global search
Configure the prefetch to also include the Tenant Group, avoids additional database queries when the Tenant Group column is to be rendered. NOTE: If no personalisation of the global search tables should be done, this commit can be reverted.
This commit is contained in:
@ -34,7 +34,7 @@ CIRCUIT_TYPES = OrderedDict(
|
|||||||
}),
|
}),
|
||||||
('circuit', {
|
('circuit', {
|
||||||
'queryset': Circuit.objects.prefetch_related(
|
'queryset': Circuit.objects.prefetch_related(
|
||||||
'type', 'provider', 'tenant', 'terminations__site'
|
'type', 'provider', 'tenant', 'tenant__group', 'terminations__site'
|
||||||
),
|
),
|
||||||
'filterset': circuits.filtersets.CircuitFilterSet,
|
'filterset': circuits.filtersets.CircuitFilterSet,
|
||||||
'table': circuits.tables.CircuitTable,
|
'table': circuits.tables.CircuitTable,
|
||||||
@ -53,13 +53,13 @@ CIRCUIT_TYPES = OrderedDict(
|
|||||||
DCIM_TYPES = OrderedDict(
|
DCIM_TYPES = OrderedDict(
|
||||||
(
|
(
|
||||||
('site', {
|
('site', {
|
||||||
'queryset': Site.objects.prefetch_related('region', 'tenant'),
|
'queryset': Site.objects.prefetch_related('region', 'tenant', 'tenant__group'),
|
||||||
'filterset': dcim.filtersets.SiteFilterSet,
|
'filterset': dcim.filtersets.SiteFilterSet,
|
||||||
'table': dcim.tables.SiteTable,
|
'table': dcim.tables.SiteTable,
|
||||||
'url': 'dcim:site_list',
|
'url': 'dcim:site_list',
|
||||||
}),
|
}),
|
||||||
('rack', {
|
('rack', {
|
||||||
'queryset': Rack.objects.prefetch_related('site', 'location', 'tenant', 'role').annotate(
|
'queryset': Rack.objects.prefetch_related('site', 'location', 'tenant', 'tenant__group', 'role').annotate(
|
||||||
device_count=count_related(Device, 'rack')
|
device_count=count_related(Device, 'rack')
|
||||||
),
|
),
|
||||||
'filterset': dcim.filtersets.RackFilterSet,
|
'filterset': dcim.filtersets.RackFilterSet,
|
||||||
@ -100,7 +100,7 @@ DCIM_TYPES = OrderedDict(
|
|||||||
}),
|
}),
|
||||||
('device', {
|
('device', {
|
||||||
'queryset': Device.objects.prefetch_related(
|
'queryset': Device.objects.prefetch_related(
|
||||||
'device_type__manufacturer', 'device_role', 'tenant', 'site', 'rack', 'primary_ip4', 'primary_ip6',
|
'device_type__manufacturer', 'device_role', 'tenant', 'tenant__group', 'site', 'rack', 'primary_ip4', 'primary_ip6',
|
||||||
),
|
),
|
||||||
'filterset': dcim.filtersets.DeviceFilterSet,
|
'filterset': dcim.filtersets.DeviceFilterSet,
|
||||||
'table': dcim.tables.DeviceTable,
|
'table': dcim.tables.DeviceTable,
|
||||||
@ -148,7 +148,7 @@ DCIM_TYPES = OrderedDict(
|
|||||||
IPAM_TYPES = OrderedDict(
|
IPAM_TYPES = OrderedDict(
|
||||||
(
|
(
|
||||||
('vrf', {
|
('vrf', {
|
||||||
'queryset': VRF.objects.prefetch_related('tenant'),
|
'queryset': VRF.objects.prefetch_related('tenant', 'tenant__group'),
|
||||||
'filterset': ipam.filtersets.VRFFilterSet,
|
'filterset': ipam.filtersets.VRFFilterSet,
|
||||||
'table': ipam.tables.VRFTable,
|
'table': ipam.tables.VRFTable,
|
||||||
'url': 'ipam:vrf_list',
|
'url': 'ipam:vrf_list',
|
||||||
@ -160,25 +160,25 @@ IPAM_TYPES = OrderedDict(
|
|||||||
'url': 'ipam:aggregate_list',
|
'url': 'ipam:aggregate_list',
|
||||||
}),
|
}),
|
||||||
('prefix', {
|
('prefix', {
|
||||||
'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'),
|
'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'tenant__group', 'vlan', 'role'),
|
||||||
'filterset': ipam.filtersets.PrefixFilterSet,
|
'filterset': ipam.filtersets.PrefixFilterSet,
|
||||||
'table': ipam.tables.PrefixTable,
|
'table': ipam.tables.PrefixTable,
|
||||||
'url': 'ipam:prefix_list',
|
'url': 'ipam:prefix_list',
|
||||||
}),
|
}),
|
||||||
('ipaddress', {
|
('ipaddress', {
|
||||||
'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'),
|
'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant', 'tenant__group'),
|
||||||
'filterset': ipam.filtersets.IPAddressFilterSet,
|
'filterset': ipam.filtersets.IPAddressFilterSet,
|
||||||
'table': ipam.tables.IPAddressTable,
|
'table': ipam.tables.IPAddressTable,
|
||||||
'url': 'ipam:ipaddress_list',
|
'url': 'ipam:ipaddress_list',
|
||||||
}),
|
}),
|
||||||
('vlan', {
|
('vlan', {
|
||||||
'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'),
|
'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'tenant__group', 'role'),
|
||||||
'filterset': ipam.filtersets.VLANFilterSet,
|
'filterset': ipam.filtersets.VLANFilterSet,
|
||||||
'table': ipam.tables.VLANTable,
|
'table': ipam.tables.VLANTable,
|
||||||
'url': 'ipam:vlan_list',
|
'url': 'ipam:vlan_list',
|
||||||
}),
|
}),
|
||||||
('asn', {
|
('asn', {
|
||||||
'queryset': ASN.objects.prefetch_related('rir', 'tenant'),
|
'queryset': ASN.objects.prefetch_related('rir', 'tenant', 'tenant__group'),
|
||||||
'filterset': ipam.filtersets.ASNFilterSet,
|
'filterset': ipam.filtersets.ASNFilterSet,
|
||||||
'table': ipam.tables.ASNTable,
|
'table': ipam.tables.ASNTable,
|
||||||
'url': 'ipam:asn_list',
|
'url': 'ipam:asn_list',
|
||||||
@ -223,7 +223,7 @@ VIRTUALIZATION_TYPES = OrderedDict(
|
|||||||
}),
|
}),
|
||||||
('virtualmachine', {
|
('virtualmachine', {
|
||||||
'queryset': VirtualMachine.objects.prefetch_related(
|
'queryset': VirtualMachine.objects.prefetch_related(
|
||||||
'cluster', 'tenant', 'platform', 'primary_ip4', 'primary_ip6',
|
'cluster', 'tenant', 'tenant__group', 'platform', 'primary_ip4', 'primary_ip6',
|
||||||
),
|
),
|
||||||
'filterset': virtualization.filtersets.VirtualMachineFilterSet,
|
'filterset': virtualization.filtersets.VirtualMachineFilterSet,
|
||||||
'table': virtualization.tables.VirtualMachineTable,
|
'table': virtualization.tables.VirtualMachineTable,
|
||||||
|
Reference in New Issue
Block a user