From 43f1e2b8f9162475395e08785bbcfb28d5f234b6 Mon Sep 17 00:00:00 2001 From: Matthias Date: Mon, 19 Jul 2021 07:54:12 +0200 Subject: [PATCH] switching back to using extensive apis for search --- .../static/script/inventree/inventree.js | 19 ++++++++++++++++++- InvenTree/InvenTree/urls.py | 3 +-- InvenTree/InvenTree/views.py | 13 ------------- 3 files changed, 19 insertions(+), 16 deletions(-) diff --git a/InvenTree/InvenTree/static/script/inventree/inventree.js b/InvenTree/InvenTree/static/script/inventree/inventree.js index 70cb3b292f..c508942f4d 100644 --- a/InvenTree/InvenTree/static/script/inventree/inventree.js +++ b/InvenTree/InvenTree/static/script/inventree/inventree.js @@ -83,7 +83,24 @@ function inventreeDocReady() { // Add autocomplete to the search-bar $("#search-bar" ).autocomplete({ - source: "{% url 'search-api' %}", + source: function (request, response) { + $.ajax({ + url: '/api/part/', + data: { search: request.term }, + success: function (data) { + var transformed = $.map(data, function (el) { + return { + label: el.name, + id: el.pk + }; + }); + response(transformed); + }, + error: function () { + response([]); + } + }); + }, minLength: 2, classes: {'ui-autocomplete': 'dropdown-menu'}, select: function( event, ui ) { diff --git a/InvenTree/InvenTree/urls.py b/InvenTree/InvenTree/urls.py index 2cf087334d..a3af143f92 100644 --- a/InvenTree/InvenTree/urls.py +++ b/InvenTree/InvenTree/urls.py @@ -37,7 +37,7 @@ from django.views.generic.base import RedirectView from rest_framework.documentation import include_docs_urls from .views import auth_request -from .views import IndexView, SearchView, SearchResultView, DatabaseStatsView +from .views import IndexView, SearchView, DatabaseStatsView from .views import SettingsView, EditUserView, SetPasswordView from .views import CurrencySettingsView, CurrencyRefreshView from .views import AppearanceSelectView, SettingCategorySelectView @@ -157,7 +157,6 @@ urlpatterns = [ url(r'^index/', IndexView.as_view(), name='index'), url(r'^search/', SearchView.as_view(), name='search'), - url(r'^searchresult/', SearchResultView.as_view(), name='search-api'), url(r'^stats/', DatabaseStatsView.as_view(), name='stats'), url(r'^auth/?', auth_request), diff --git a/InvenTree/InvenTree/views.py b/InvenTree/InvenTree/views.py index 6fbad4383b..891e4ff7d0 100644 --- a/InvenTree/InvenTree/views.py +++ b/InvenTree/InvenTree/views.py @@ -765,19 +765,6 @@ class SearchView(TemplateView): return super(TemplateView, self).render_to_response(context) -class SearchResultView(TemplateView): - """Endpoint for search auto-complete - """ - - def get(self, request, *args, **kwargs): - query = request.GET.get('term', '') - if len(query) > 2: - objects = Part.objects.filter(Q(name__icontains=query) | Q(description__icontains=query) | Q(IPN__icontains=query) - | Q(keywords__icontains=query) | Q(category__name__icontains=query)).order_by('name') - return JsonResponse([{'id': a.pk, 'value': a.name} for a in objects[0:5]], safe=False) - return JsonResponse({}) - - class DynamicJsView(TemplateView): """ View for returning javacsript files,