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>
35 lines
1.1 KiB
Python
35 lines
1.1 KiB
Python
import circuits.filtersets
|
|
import circuits.tables
|
|
from circuits.models import Circuit, Provider, ProviderNetwork
|
|
from netbox.search import SearchIndex, register_search
|
|
from utilities.utils import count_related
|
|
|
|
|
|
@register_search()
|
|
class ProviderIndex(SearchIndex):
|
|
model = Provider
|
|
queryset = Provider.objects.annotate(count_circuits=count_related(Circuit, 'provider'))
|
|
filterset = circuits.filtersets.ProviderFilterSet
|
|
table = circuits.tables.ProviderTable
|
|
url = 'circuits:provider_list'
|
|
|
|
|
|
@register_search()
|
|
class CircuitIndex(SearchIndex):
|
|
model = Circuit
|
|
queryset = Circuit.objects.prefetch_related(
|
|
'type', 'provider', 'tenant', 'tenant__group', 'terminations__site'
|
|
)
|
|
filterset = circuits.filtersets.CircuitFilterSet
|
|
table = circuits.tables.CircuitTable
|
|
url = 'circuits:circuit_list'
|
|
|
|
|
|
@register_search()
|
|
class ProviderNetworkIndex(SearchIndex):
|
|
model = ProviderNetwork
|
|
queryset = ProviderNetwork.objects.prefetch_related('provider')
|
|
filterset = circuits.filtersets.ProviderNetworkFilterSet
|
|
table = circuits.tables.ProviderNetworkTable
|
|
url = 'circuits:providernetwork_list'
|