mirror of
https://github.com/netbox-community/netbox.git
synced 2024-05-10 07:54:54 +00:00
8927 plugin search (#10489)
* #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>
This commit is contained in:
@@ -3,3 +3,6 @@ from django.apps import AppConfig
|
||||
|
||||
class TenancyConfig(AppConfig):
|
||||
name = 'tenancy'
|
||||
|
||||
def ready(self):
|
||||
from . import search
|
||||
|
25
netbox/tenancy/search.py
Normal file
25
netbox/tenancy/search.py
Normal file
@@ -0,0 +1,25 @@
|
||||
import tenancy.filtersets
|
||||
import tenancy.tables
|
||||
from netbox.search import SearchIndex, register_search
|
||||
from tenancy.models import Contact, ContactAssignment, Tenant
|
||||
from utilities.utils import count_related
|
||||
|
||||
|
||||
@register_search()
|
||||
class TenantIndex(SearchIndex):
|
||||
model = Tenant
|
||||
queryset = Tenant.objects.prefetch_related('group')
|
||||
filterset = tenancy.filtersets.TenantFilterSet
|
||||
table = tenancy.tables.TenantTable
|
||||
url = 'tenancy:tenant_list'
|
||||
|
||||
|
||||
@register_search()
|
||||
class ContactIndex(SearchIndex):
|
||||
model = Contact
|
||||
queryset = Contact.objects.prefetch_related('group', 'assignments').annotate(
|
||||
assignment_count=count_related(ContactAssignment, 'contact')
|
||||
)
|
||||
filterset = tenancy.filtersets.ContactFilterSet
|
||||
table = tenancy.tables.ContactTable
|
||||
url = 'tenancy:contact_list'
|
Reference in New Issue
Block a user