From de01b12eed986b2dedffcc8a9a306be8e7aa71c9 Mon Sep 17 00:00:00 2001 From: Sanj Date: Sun, 19 Feb 2012 18:52:34 +0530 Subject: [PATCH] return geojson from stops --- chaloBEST/mumbai/apiurls.py | 3 +++ chaloBEST/mumbai/apiviews.py | 29 +++++++++++++++++++++++++++++ 2 files changed, 32 insertions(+) diff --git a/chaloBEST/mumbai/apiurls.py b/chaloBEST/mumbai/apiurls.py index 19781c2..ba5c793 100644 --- a/chaloBEST/mumbai/apiurls.py +++ b/chaloBEST/mumbai/apiurls.py @@ -4,4 +4,7 @@ import apiviews urlpatterns = patterns('', (r'^route/(?P.*)$', apiviews.route), #FIXME: better regexp for route alias? (r'^stop/(?P.*)$', apiviews.stop), + (r'^routes/$', apiviews.routes), + (r'^areas/$', apiviews.areas), + (r'^stops/$', apiviews.stops), ) diff --git a/chaloBEST/mumbai/apiviews.py b/chaloBEST/mumbai/apiviews.py index f02a1ba..36609ab 100644 --- a/chaloBEST/mumbai/apiviews.py +++ b/chaloBEST/mumbai/apiviews.py @@ -15,6 +15,35 @@ def route(request, slug): }) +def routes(request): + qset = Route.objects.all() + if request.GET.has_key('q'): + q = request.GET.get('q', '') + qset = qset.filter(alias__icontains=q) #FIXME: make a better Q object + routes = [route.alias for route in qset] + return render_to_json_response(routes) + + +def areas(request): + qset = Area.objects.all() + if request.GET.has_key('q'): + q = request.GET.get('q', '') + qset = qset.filter(display_name__icontains=q) + areas = [area.slug for area in qset] + return render_to_json_response(areas) + +def stops(request): + qset = Stop.objects.all() + if request.GET.has_key('q'): + q = request.GET.get('q', '') + qset = qset.filter(display_name__icontains=q) #FIXME: This definitely needs to be a Q object with OR lookups for area name, road name, etc. + return render_to_json_response({ + 'type': 'FeatureCollection', + 'features': [stop.get_geojson() for stop in qset] + }) + + + def stop(request, slug): if request.POST: if not slug: