diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-27 20:31:19 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-06-27 20:31:19 +0200 |
commit | 3cc6f7df95ec2c82689f227843d4ed0b7177e844 (patch) | |
tree | e5e53acfe3c489bea7f2aad38a01f84afb607064 /chimere/views.py | |
parent | 6793ee9d4010d5b5399e8c27979d3f7d1d88f8f8 (diff) | |
download | Chimère-3cc6f7df95ec2c82689f227843d4ed0b7177e844.tar.bz2 Chimère-3cc6f7df95ec2c82689f227843d4ed0b7177e844.zip |
Add an autocomplete field
Diffstat (limited to 'chimere/views.py')
-rw-r--r-- | chimere/views.py | 22 |
1 files changed, 21 insertions, 1 deletions
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') \ |