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)  | 
