mirror of
https://github.com/netbox-community/netbox.git
synced 2025-08-24 08:25:17 -06:00
8927 use backend search function
This commit is contained in:
parent
639a7bd51b
commit
57825bf5b7
@ -160,24 +160,7 @@ class SearchView(View):
|
||||
url = reverse(search_registry[object_type].url)
|
||||
return redirect(f"{url}?q={form.cleaned_data['q']}")
|
||||
|
||||
for obj_type in search_registry.keys():
|
||||
|
||||
queryset = search_registry[obj_type].queryset.restrict(request.user, 'view')
|
||||
filterset = search_registry[obj_type].filterset
|
||||
table = search_registry[obj_type].table
|
||||
url = search_registry[obj_type].url
|
||||
|
||||
# Construct the results table for this object type
|
||||
filtered_queryset = filterset({'q': form.cleaned_data['q']}, 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={form.cleaned_data.get('q')}"
|
||||
})
|
||||
results = default_search_engine.search(request, form.cleaned_data['q'])
|
||||
|
||||
return render(request, 'search.html', {
|
||||
'form': form,
|
||||
|
@ -5,6 +5,8 @@ from django.conf import settings
|
||||
from django.core.exceptions import ImproperlyConfigured
|
||||
from django.db import models
|
||||
from django.db.models.signals import post_save, pre_delete
|
||||
from django.urls import reverse
|
||||
from netbox.constants import SEARCH_MAX_RESULTS
|
||||
|
||||
# The cache for the initialized backend.
|
||||
_backends_cache = {}
|
||||
@ -114,15 +116,16 @@ class PostgresIcontainsSearchBackend(SearchBackend):
|
||||
def _use_hooks(self):
|
||||
return False
|
||||
|
||||
def search(self, search_text):
|
||||
def search(self, request, search_text):
|
||||
results = []
|
||||
|
||||
for obj_type in SEARCH_TYPES.keys():
|
||||
search_registry = self.get_registry()
|
||||
for obj_type in search_registry.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
|
||||
queryset = search_registry[obj_type].queryset.restrict(request.user, 'view')
|
||||
filterset = search_registry[obj_type].filterset
|
||||
table = search_registry[obj_type].table
|
||||
url = search_registry[obj_type].url
|
||||
|
||||
# Construct the results table for this object type
|
||||
filtered_queryset = filterset({'q': search_text}, queryset=queryset).qs
|
||||
|
Loading…
Reference in New Issue
Block a user