diff --git a/assets/forms.py b/assets/forms.py
index ef2fc9cb..82a00d25 100644
--- a/assets/forms.py
+++ b/assets/forms.py
@@ -25,3 +25,7 @@ class SupplierForm(forms.ModelForm):
class Meta:
model = models.Supplier
fields = '__all__'
+
+
+class SupplierSearchForm(forms.Form):
+ query = forms.CharField(required=False)
diff --git a/assets/templates/asset_list.html b/assets/templates/asset_list.html
index 5383ac41..601a2b4b 100644
--- a/assets/templates/asset_list.html
+++ b/assets/templates/asset_list.html
@@ -1,5 +1,5 @@
{% extends 'base_assets.html' %}
-{% block title %}List{% endblock %}
+{% block title %}Asset List{% endblock %}
{% load paginator from filters %}
{% load widget_tweaks %}
diff --git a/assets/templates/supplier_list.html b/assets/templates/supplier_list.html
index 2affb7f8..71ceb78c 100644
--- a/assets/templates/supplier_list.html
+++ b/assets/templates/supplier_list.html
@@ -1,6 +1,7 @@
{% extends 'base_assets.html' %}
-{% block title %}List{% endblock %}
+{% block title %}Supplier List{% endblock %}
{% load paginator from filters %}
+{% load widget_tweaks %}
{% block content %}
@@ -8,6 +9,15 @@
Supplier List
+
+
diff --git a/assets/urls.py b/assets/urls.py
index fea65f6c..db99ea68 100644
--- a/assets/urls.py
+++ b/assets/urls.py
@@ -22,5 +22,7 @@ urlpatterns = [
path('supplier/create', permission_required_with_403('assets.create_supplier')(views.SupplierCreate.as_view()), name='supplier_create'),
path('supplier//edit', permission_required_with_403('assets.edit_supplier')(views.SupplierUpdate.as_view()), name='supplier_update'),
+ path('supplier/search/', views.SupplierSearch.as_view(), name='supplier_search_json'),
+
path('', include(router.urls)),
]
diff --git a/assets/views.py b/assets/views.py
index 9d8493bb..e8e8353c 100644
--- a/assets/views.py
+++ b/assets/views.py
@@ -140,6 +140,42 @@ class SupplierList(generic.ListView):
paginate_by = 40
ordering = ['name']
+ def get_queryset(self):
+ if self.request.method == 'POST':
+ self.form = forms.SupplierSearchForm(data=self.request.POST)
+ elif self.request.method == 'GET':
+ self.form = forms.SupplierSearchForm(data=self.request.GET)
+ else:
+ self.form = forms.SupplierSearchForm(data={})
+ form = self.form
+ if not form.is_valid():
+ return self.model.objects.none()
+
+ query_string = form.cleaned_data['query'] or ""
+ if len(query_string) == 0:
+ queryset = self.model.objects.all()
+ else:
+ queryset = self.model.objects.filter(Q(name__icontains=query_string))
+
+ return queryset
+
+ def get_context_data(self, **kwargs):
+ context = super(SupplierList, self).get_context_data(**kwargs)
+ context["form"] = self.form
+ return context
+
+
+class SupplierSearch(SupplierList):
+ hide_hidden_status = False
+
+ def render_to_response(self, context, **response_kwargs):
+ result = []
+
+ for supplier in context["object_list"]:
+ result.append({"name": supplier.name})
+
+ return JsonResponse(result, safe=False)
+
class SupplierDetail(generic.DetailView):
model = models.Supplier