mirror of
https://github.com/inventree/InvenTree
synced 2024-08-30 18:33:04 +00:00
switching back to using extensive apis for search
This commit is contained in:
parent
4013abe4de
commit
43f1e2b8f9
@ -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 ) {
|
||||||
|
@ -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),
|
||||||
|
@ -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,
|
||||||
|
Loading…
Reference in New Issue
Block a user