mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
Update filterset naming for global search view
This commit is contained in:
@ -42,7 +42,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('provider', {
|
('provider', {
|
||||||
'permission': 'circuits.view_provider',
|
'permission': 'circuits.view_provider',
|
||||||
'queryset': Provider.objects.all(),
|
'queryset': Provider.objects.all(),
|
||||||
'filter': ProviderFilterSet,
|
'filterset': ProviderFilterSet,
|
||||||
'table': ProviderTable,
|
'table': ProviderTable,
|
||||||
'url': 'circuits:provider_list',
|
'url': 'circuits:provider_list',
|
||||||
}),
|
}),
|
||||||
@ -59,7 +59,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='Z').values('site__name')[:1]
|
CircuitTermination.objects.filter(circuit=OuterRef('pk')).filter(term_side='Z').values('site__name')[:1]
|
||||||
),
|
),
|
||||||
),
|
),
|
||||||
'filter': CircuitFilterSet,
|
'filterset': CircuitFilterSet,
|
||||||
'table': CircuitTable,
|
'table': CircuitTable,
|
||||||
'url': 'circuits:circuit_list',
|
'url': 'circuits:circuit_list',
|
||||||
}),
|
}),
|
||||||
@ -67,28 +67,28 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('site', {
|
('site', {
|
||||||
'permission': 'dcim.view_site',
|
'permission': 'dcim.view_site',
|
||||||
'queryset': Site.objects.prefetch_related('region', 'tenant'),
|
'queryset': Site.objects.prefetch_related('region', 'tenant'),
|
||||||
'filter': SiteFilterSet,
|
'filterset': SiteFilterSet,
|
||||||
'table': SiteTable,
|
'table': SiteTable,
|
||||||
'url': 'dcim:site_list',
|
'url': 'dcim:site_list',
|
||||||
}),
|
}),
|
||||||
('rack', {
|
('rack', {
|
||||||
'permission': 'dcim.view_rack',
|
'permission': 'dcim.view_rack',
|
||||||
'queryset': Rack.objects.prefetch_related('site', 'group', 'tenant', 'role'),
|
'queryset': Rack.objects.prefetch_related('site', 'group', 'tenant', 'role'),
|
||||||
'filter': RackFilterSet,
|
'filterset': RackFilterSet,
|
||||||
'table': RackTable,
|
'table': RackTable,
|
||||||
'url': 'dcim:rack_list',
|
'url': 'dcim:rack_list',
|
||||||
}),
|
}),
|
||||||
('rackgroup', {
|
('rackgroup', {
|
||||||
'permission': 'dcim.view_rackgroup',
|
'permission': 'dcim.view_rackgroup',
|
||||||
'queryset': RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')),
|
'queryset': RackGroup.objects.prefetch_related('site').annotate(rack_count=Count('racks')),
|
||||||
'filter': RackGroupFilterSet,
|
'filterset': RackGroupFilterSet,
|
||||||
'table': RackGroupTable,
|
'table': RackGroupTable,
|
||||||
'url': 'dcim:rackgroup_list',
|
'url': 'dcim:rackgroup_list',
|
||||||
}),
|
}),
|
||||||
('devicetype', {
|
('devicetype', {
|
||||||
'permission': 'dcim.view_devicetype',
|
'permission': 'dcim.view_devicetype',
|
||||||
'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')),
|
'queryset': DeviceType.objects.prefetch_related('manufacturer').annotate(instance_count=Count('instances')),
|
||||||
'filter': DeviceTypeFilterSet,
|
'filterset': DeviceTypeFilterSet,
|
||||||
'table': DeviceTypeTable,
|
'table': DeviceTypeTable,
|
||||||
'url': 'dcim:devicetype_list',
|
'url': 'dcim:devicetype_list',
|
||||||
}),
|
}),
|
||||||
@ -97,28 +97,28 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
'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', 'site', 'rack', 'primary_ip4', 'primary_ip6',
|
||||||
),
|
),
|
||||||
'filter': DeviceFilterSet,
|
'filterset': DeviceFilterSet,
|
||||||
'table': DeviceDetailTable,
|
'table': DeviceDetailTable,
|
||||||
'url': 'dcim:device_list',
|
'url': 'dcim:device_list',
|
||||||
}),
|
}),
|
||||||
('virtualchassis', {
|
('virtualchassis', {
|
||||||
'permission': 'dcim.view_virtualchassis',
|
'permission': 'dcim.view_virtualchassis',
|
||||||
'queryset': VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')),
|
'queryset': VirtualChassis.objects.prefetch_related('master').annotate(member_count=Count('members')),
|
||||||
'filter': VirtualChassisFilterSet,
|
'filterset': VirtualChassisFilterSet,
|
||||||
'table': VirtualChassisTable,
|
'table': VirtualChassisTable,
|
||||||
'url': 'dcim:virtualchassis_list',
|
'url': 'dcim:virtualchassis_list',
|
||||||
}),
|
}),
|
||||||
('cable', {
|
('cable', {
|
||||||
'permission': 'dcim.view_cable',
|
'permission': 'dcim.view_cable',
|
||||||
'queryset': Cable.objects.all(),
|
'queryset': Cable.objects.all(),
|
||||||
'filter': CableFilterSet,
|
'filterset': CableFilterSet,
|
||||||
'table': CableTable,
|
'table': CableTable,
|
||||||
'url': 'dcim:cable_list',
|
'url': 'dcim:cable_list',
|
||||||
}),
|
}),
|
||||||
('powerfeed', {
|
('powerfeed', {
|
||||||
'permission': 'dcim.view_powerfeed',
|
'permission': 'dcim.view_powerfeed',
|
||||||
'queryset': PowerFeed.objects.all(),
|
'queryset': PowerFeed.objects.all(),
|
||||||
'filter': PowerFeedFilterSet,
|
'filterset': PowerFeedFilterSet,
|
||||||
'table': PowerFeedTable,
|
'table': PowerFeedTable,
|
||||||
'url': 'dcim:powerfeed_list',
|
'url': 'dcim:powerfeed_list',
|
||||||
}),
|
}),
|
||||||
@ -126,7 +126,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('cluster', {
|
('cluster', {
|
||||||
'permission': 'virtualization.view_cluster',
|
'permission': 'virtualization.view_cluster',
|
||||||
'queryset': Cluster.objects.prefetch_related('type', 'group'),
|
'queryset': Cluster.objects.prefetch_related('type', 'group'),
|
||||||
'filter': ClusterFilterSet,
|
'filterset': ClusterFilterSet,
|
||||||
'table': ClusterTable,
|
'table': ClusterTable,
|
||||||
'url': 'virtualization:cluster_list',
|
'url': 'virtualization:cluster_list',
|
||||||
}),
|
}),
|
||||||
@ -135,7 +135,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
'queryset': VirtualMachine.objects.prefetch_related(
|
'queryset': VirtualMachine.objects.prefetch_related(
|
||||||
'cluster', 'tenant', 'platform', 'primary_ip4', 'primary_ip6',
|
'cluster', 'tenant', 'platform', 'primary_ip4', 'primary_ip6',
|
||||||
),
|
),
|
||||||
'filter': VirtualMachineFilterSet,
|
'filterset': VirtualMachineFilterSet,
|
||||||
'table': VirtualMachineDetailTable,
|
'table': VirtualMachineDetailTable,
|
||||||
'url': 'virtualization:virtualmachine_list',
|
'url': 'virtualization:virtualmachine_list',
|
||||||
}),
|
}),
|
||||||
@ -143,35 +143,35 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('vrf', {
|
('vrf', {
|
||||||
'permission': 'ipam.view_vrf',
|
'permission': 'ipam.view_vrf',
|
||||||
'queryset': VRF.objects.prefetch_related('tenant'),
|
'queryset': VRF.objects.prefetch_related('tenant'),
|
||||||
'filter': VRFFilterSet,
|
'filterset': VRFFilterSet,
|
||||||
'table': VRFTable,
|
'table': VRFTable,
|
||||||
'url': 'ipam:vrf_list',
|
'url': 'ipam:vrf_list',
|
||||||
}),
|
}),
|
||||||
('aggregate', {
|
('aggregate', {
|
||||||
'permission': 'ipam.view_aggregate',
|
'permission': 'ipam.view_aggregate',
|
||||||
'queryset': Aggregate.objects.prefetch_related('rir'),
|
'queryset': Aggregate.objects.prefetch_related('rir'),
|
||||||
'filter': AggregateFilterSet,
|
'filterset': AggregateFilterSet,
|
||||||
'table': AggregateTable,
|
'table': AggregateTable,
|
||||||
'url': 'ipam:aggregate_list',
|
'url': 'ipam:aggregate_list',
|
||||||
}),
|
}),
|
||||||
('prefix', {
|
('prefix', {
|
||||||
'permission': 'ipam.view_prefix',
|
'permission': 'ipam.view_prefix',
|
||||||
'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'),
|
'queryset': Prefix.objects.prefetch_related('site', 'vrf__tenant', 'tenant', 'vlan', 'role'),
|
||||||
'filter': PrefixFilterSet,
|
'filterset': PrefixFilterSet,
|
||||||
'table': PrefixTable,
|
'table': PrefixTable,
|
||||||
'url': 'ipam:prefix_list',
|
'url': 'ipam:prefix_list',
|
||||||
}),
|
}),
|
||||||
('ipaddress', {
|
('ipaddress', {
|
||||||
'permission': 'ipam.view_ipaddress',
|
'permission': 'ipam.view_ipaddress',
|
||||||
'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'),
|
'queryset': IPAddress.objects.prefetch_related('vrf__tenant', 'tenant'),
|
||||||
'filter': IPAddressFilterSet,
|
'filterset': IPAddressFilterSet,
|
||||||
'table': IPAddressTable,
|
'table': IPAddressTable,
|
||||||
'url': 'ipam:ipaddress_list',
|
'url': 'ipam:ipaddress_list',
|
||||||
}),
|
}),
|
||||||
('vlan', {
|
('vlan', {
|
||||||
'permission': 'ipam.view_vlan',
|
'permission': 'ipam.view_vlan',
|
||||||
'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'),
|
'queryset': VLAN.objects.prefetch_related('site', 'group', 'tenant', 'role'),
|
||||||
'filter': VLANFilterSet,
|
'filterset': VLANFilterSet,
|
||||||
'table': VLANTable,
|
'table': VLANTable,
|
||||||
'url': 'ipam:vlan_list',
|
'url': 'ipam:vlan_list',
|
||||||
}),
|
}),
|
||||||
@ -179,7 +179,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('secret', {
|
('secret', {
|
||||||
'permission': 'secrets.view_secret',
|
'permission': 'secrets.view_secret',
|
||||||
'queryset': Secret.objects.prefetch_related('role', 'device'),
|
'queryset': Secret.objects.prefetch_related('role', 'device'),
|
||||||
'filter': SecretFilterSet,
|
'filterset': SecretFilterSet,
|
||||||
'table': SecretTable,
|
'table': SecretTable,
|
||||||
'url': 'secrets:secret_list',
|
'url': 'secrets:secret_list',
|
||||||
}),
|
}),
|
||||||
@ -187,7 +187,7 @@ SEARCH_TYPES = OrderedDict((
|
|||||||
('tenant', {
|
('tenant', {
|
||||||
'permission': 'tenancy.view_tenant',
|
'permission': 'tenancy.view_tenant',
|
||||||
'queryset': Tenant.objects.prefetch_related('group'),
|
'queryset': Tenant.objects.prefetch_related('group'),
|
||||||
'filter': TenantFilterSet,
|
'filterset': TenantFilterSet,
|
||||||
'table': TenantTable,
|
'table': TenantTable,
|
||||||
'url': 'tenancy:tenant_list',
|
'url': 'tenancy:tenant_list',
|
||||||
}),
|
}),
|
||||||
@ -286,12 +286,12 @@ class SearchView(View):
|
|||||||
for obj_type in obj_types:
|
for obj_type in obj_types:
|
||||||
|
|
||||||
queryset = SEARCH_TYPES[obj_type]['queryset']
|
queryset = SEARCH_TYPES[obj_type]['queryset']
|
||||||
filter_cls = SEARCH_TYPES[obj_type]['filter']
|
filterset = SEARCH_TYPES[obj_type]['filterset']
|
||||||
table = SEARCH_TYPES[obj_type]['table']
|
table = SEARCH_TYPES[obj_type]['table']
|
||||||
url = SEARCH_TYPES[obj_type]['url']
|
url = SEARCH_TYPES[obj_type]['url']
|
||||||
|
|
||||||
# Construct the results table for this object type
|
# Construct the results table for this object type
|
||||||
filtered_queryset = filter_cls({'q': form.cleaned_data['q']}, queryset=queryset).qs
|
filtered_queryset = filterset({'q': form.cleaned_data['q']}, queryset=queryset).qs
|
||||||
table = table(filtered_queryset, orderable=False)
|
table = table(filtered_queryset, orderable=False)
|
||||||
table.paginate(per_page=SEARCH_MAX_RESULTS)
|
table.paginate(per_page=SEARCH_MAX_RESULTS)
|
||||||
|
|
||||||
|
Reference in New Issue
Block a user