mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
* #7016 base search classes * 7016 add search indexes * 7016 add search indexes * 7016 add search indexes * 7016 add search indexes * 7016 add search indexes * 7016 add search indexes * 8927 refactor search * 8927 refactor search * 8927 refactor search * 8927 refactor search * 8927 get search choices working * 8927 cleanup - optimize * 8927 use backend search function * 8927 fix for plugin search * 8927 add docs * Move search app to a module under netbox/ * Utilize global registry to register model search classes * Build search form options from registry * Determine search categories from model app by default * Enable dynamic search registration for plugins * Update docs & improve plugin support * Clean up search backend class * Docs for #8927 Co-authored-by: jeremystretch <jstretch@ns1.com>
34 lines
1.1 KiB
Python
34 lines
1.1 KiB
Python
import virtualization.filtersets
|
|
import virtualization.tables
|
|
from dcim.models import Device
|
|
from netbox.search import SearchIndex, register_search
|
|
from utilities.utils import count_related
|
|
from virtualization.models import Cluster, VirtualMachine
|
|
|
|
|
|
@register_search()
|
|
class ClusterIndex(SearchIndex):
|
|
model = Cluster
|
|
queryset = Cluster.objects.prefetch_related('type', 'group').annotate(
|
|
device_count=count_related(Device, 'cluster'), vm_count=count_related(VirtualMachine, 'cluster')
|
|
)
|
|
filterset = virtualization.filtersets.ClusterFilterSet
|
|
table = virtualization.tables.ClusterTable
|
|
url = 'virtualization:cluster_list'
|
|
|
|
|
|
@register_search()
|
|
class VirtualMachineIndex(SearchIndex):
|
|
model = VirtualMachine
|
|
queryset = VirtualMachine.objects.prefetch_related(
|
|
'cluster',
|
|
'tenant',
|
|
'tenant__group',
|
|
'platform',
|
|
'primary_ip4',
|
|
'primary_ip6',
|
|
)
|
|
filterset = virtualization.filtersets.VirtualMachineFilterSet
|
|
table = virtualization.tables.VirtualMachineTable
|
|
url = 'virtualization:virtualmachine_list'
|