summaryrefslogtreecommitdiff
path: root/chimere/views.py
diff options
context:
space:
mode:
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
commit3cc6f7df95ec2c82689f227843d4ed0b7177e844 (patch)
treee5e53acfe3c489bea7f2aad38a01f84afb607064 /chimere/views.py
parent6793ee9d4010d5b5399e8c27979d3f7d1d88f8f8 (diff)
downloadChimère-3cc6f7df95ec2c82689f227843d4ed0b7177e844.tar.bz2
Chimère-3cc6f7df95ec2c82689f227843d4ed0b7177e844.zip
Add an autocomplete field
Diffstat (limited to 'chimere/views.py')
-rw-r--r--chimere/views.py22
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') \