switching back to using extensive apis for search

This commit is contained in:
Matthias 2021-07-19 07:54:12 +02:00
parent 4013abe4de
commit 43f1e2b8f9
3 changed files with 19 additions and 16 deletions

View File

@ -83,7 +83,24 @@ function inventreeDocReady() {
// Add autocomplete to the search-bar // Add autocomplete to the search-bar
$("#search-bar" ).autocomplete({ $("#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, minLength: 2,
classes: {'ui-autocomplete': 'dropdown-menu'}, classes: {'ui-autocomplete': 'dropdown-menu'},
select: function( event, ui ) { select: function( event, ui ) {

View File

@ -37,7 +37,7 @@ from django.views.generic.base import RedirectView
from rest_framework.documentation import include_docs_urls from rest_framework.documentation import include_docs_urls
from .views import auth_request 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 SettingsView, EditUserView, SetPasswordView
from .views import CurrencySettingsView, CurrencyRefreshView from .views import CurrencySettingsView, CurrencyRefreshView
from .views import AppearanceSelectView, SettingCategorySelectView from .views import AppearanceSelectView, SettingCategorySelectView
@ -157,7 +157,6 @@ urlpatterns = [
url(r'^index/', IndexView.as_view(), name='index'), url(r'^index/', IndexView.as_view(), name='index'),
url(r'^search/', SearchView.as_view(), name='search'), 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'^stats/', DatabaseStatsView.as_view(), name='stats'),
url(r'^auth/?', auth_request), url(r'^auth/?', auth_request),

View File

@ -765,19 +765,6 @@ class SearchView(TemplateView):
return super(TemplateView, self).render_to_response(context) 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): class DynamicJsView(TemplateView):
""" """
View for returning javacsript files, View for returning javacsript files,