From 3cc6f7df95ec2c82689f227843d4ed0b7177e844 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Mon, 27 Jun 2016 20:31:19 +0200 Subject: Add an autocomplete field --- chimere/views.py | 22 +++++++++++++++++++++- 1 file changed, 21 insertions(+), 1 deletion(-) (limited to 'chimere/views.py') diff --git a/chimere/views.py b/chimere/views.py index 7274bf0..40db95a 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -47,7 +47,7 @@ from django.views.generic import TemplateView, ListView from chimere.actions import actions from chimere.models import Category, SubCategory, PropertyModel, Page,\ Marker, Route, Polygon, SimpleArea, Area, Color, TinyUrl, RouteFile,\ - AggregatedRoute, AggregatedPolygon + AggregatedRoute, AggregatedPolygon, PropertyModelChoice from chimere.widgets import PointChooserWidget, RouteChooserWidget, AreaWidget,\ PolygonChooserWidget @@ -1264,6 +1264,26 @@ def rss(request, area_name=''): # from django.core.paginator import Paginator, InvalidPage + +def property_choice_list(request, area_name='', property_slug=''): + data = {} + try: + pm = PropertyModel.objects.get(slug=property_slug, available=True) + except PropertyModel.DoesNotExist: + return HttpResponse(json.dumps(data), + content_type="application/json") + if not request.GET or not request.GET.get('term') or \ + pm.areas.count() and not pm.areas.filter(urn=area_name).count(): + return HttpResponse(json.dumps(data), + content_type="application/json") + fltr = {'propertymodel': pm, 'available': True, + 'value__icontains': request.GET.get('term')} + q = PropertyModelChoice.objects.filter(**fltr).order_by('value') + data = [{"id": p.pk, "value": p.value} for p in q.all()] + return HttpResponse(json.dumps(data), + content_type="application/json") + + SearchView = None autocomplete = None if hasattr(settings, 'CHIMERE_SEARCH_ENGINE') \ -- cgit v1.2.3