diff options
author | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2009-09-27 23:41:37 +0000 |
---|---|---|
committer | etienne <etienne@9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864> | 2009-09-27 23:41:37 +0000 |
commit | 84b73ebbb205a096c9ab912cb6fca39eb866940b (patch) | |
tree | ac630b6ac96676fa3474b211bffa708d8163b926 /main/views.py | |
parent | b15c2ecaf75c0fc29e6bcb39e4bc8563b7ec6fcd (diff) | |
download | Chimère-84b73ebbb205a096c9ab912cb6fca39eb866940b.tar.bz2 Chimère-84b73ebbb205a096c9ab912cb6fca39eb866940b.zip |
Color theme implementation #59
git-svn-id: http://www.peacefrogs.net/svn/chimere/trunk@36 9215b0d5-fb2c-4bbd-8d3e-bd2e9090e864
Diffstat (limited to 'main/views.py')
-rw-r--r-- | main/views.py | 22 |
1 files changed, 16 insertions, 6 deletions
diff --git a/main/views.py b/main/views.py index 0c304ec..aba24f0 100644 --- a/main/views.py +++ b/main/views.py @@ -31,7 +31,7 @@ from django.core import serializers from chimere import settings from chimere.main.actions import actions from chimere.main.models import SubCategory, PropertyModel, Marker, Route, \ - News, Area + News, Area, Color from chimere.main.widgets import getMapJS, PointChooserWidget, \ RouteChooserWidget, URL_OSM_JS, URL_OSM_CSS @@ -196,15 +196,25 @@ def getGeoObjects(request, category_ids, status='A'): subcategory__in=category_ids.split('_')) except: return HttpResponse('no results') - geo_objects = list(query) + query.order_by('subcategory') + routes = list(query) + jsons = [] + current_cat, colors, idx = None, None, 0 + for route in routes: + if not current_cat or current_cat != route.subcategory: + idx = 0 + current_cat = route.subcategory + colors = list(Color.objects.filter(color_theme=\ + route.subcategory.color_theme)) + jsons.append(route.getGeoJSON(color=colors[idx % len(colors)].code)) + idx += 1 try: query = Marker.objects.filter(status__in=status, subcategory__in=category_ids.split('_')) except: return HttpResponse('no results') - geo_objects += list(query) - if not geo_objects: + jsons += [geo_object.getGeoJSON() for geo_object in list(query)] + if not jsons: return HttpResponse('no results') - data = '{"type": "FeatureCollection", "features":[%s]}' % \ - ",".join([geo_object.getGeoJSON() for geo_object in geo_objects]) + data = '{"type": "FeatureCollection", "features":[%s]}' % ",".join(jsons) return HttpResponse(data) |