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
$("#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 ) {

View File

@ -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),

View File

@ -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,