mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 00:15:17 -06:00
7016 add search indexes
This commit is contained in:
parent
12d6ec67d5
commit
b6347602b9
@ -107,6 +107,30 @@ class PostgresIcontainsSearchBackend(SearchBackend):
|
||||
def _use_hooks(self):
|
||||
return False
|
||||
|
||||
def search(self, search_text):
|
||||
results = []
|
||||
|
||||
for obj_type in SEARCH_TYPES.keys():
|
||||
|
||||
queryset = SEARCH_TYPES[obj_type].queryset.restrict(request.user, 'view')
|
||||
filterset = SEARCH_TYPES[obj_type].filterset
|
||||
table = SEARCH_TYPES[obj_type].table
|
||||
url = SEARCH_TYPES[obj_type].url
|
||||
|
||||
# Construct the results table for this object type
|
||||
filtered_queryset = filterset({'q': search_text}, queryset=queryset).qs
|
||||
table = table(filtered_queryset, orderable=False)
|
||||
table.paginate(per_page=SEARCH_MAX_RESULTS)
|
||||
|
||||
if table.page:
|
||||
results.append({
|
||||
'name': queryset.model._meta.verbose_name_plural,
|
||||
'table': table,
|
||||
'url': f"{reverse(url)}?q={search_text}"
|
||||
})
|
||||
|
||||
return results
|
||||
|
||||
|
||||
# The main search methods.
|
||||
default_search_engine = SearchBackend("default")
|
||||
|
Loading…
Reference in New Issue
Block a user