From da926e6708b89dcaee865632784781c54ace833b Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Wed, 9 Sep 2015 20:04:26 +0200 Subject: Add many fields to finds - associated migrations, forms and autocomplete view (refs #2784) --- ishtar_common/views.py | 16 ++++++++++++++++ 1 file changed, 16 insertions(+) (limited to 'ishtar_common/views.py') diff --git a/ishtar_common/views.py b/ishtar_common/views.py index 4f7adef39..c9211c219 100644 --- a/ishtar_common/views.py +++ b/ishtar_common/views.py @@ -136,6 +136,22 @@ account_management_wizard = wizards.AccountWizard.as_view( url_name='account_management',) +def get_autocomplete_generic(model, extra={'available': True}): + def func(request): + q = request.GET.get('term') + query = Q(**extra) + for q in q.split(' '): + if not q: + continue + query = query & Q(label__icontains=q) + limit = 20 + objects = model.objects.filter(query)[:limit] + data = json.dumps([{'id': obj.pk, 'value': unicode(obj)} + for obj in objects]) + return HttpResponse(data, mimetype='text/plain') + return func + + def update_current_item(request): if not request.is_ajax() and not request.method == 'POST': raise Http404 -- cgit v1.2.3