diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-30 19:56:07 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-30 19:56:07 +0200 |
commit | d747bb7da4800b6956194fb4ead89ec73e0c84a9 (patch) | |
tree | a5e6bafb0471232cb0d67dc2deafcfa0a028f2fc /chimere/views.py | |
parent | 25d2888bc10e782e85e097aac8a0879a3c148cc7 (diff) | |
download | Chimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.tar.bz2 Chimère-d747bb7da4800b6956194fb4ead89ec73e0c84a9.zip |
Add aggregated polygons
Diffstat (limited to 'chimere/views.py')
-rw-r--r-- | chimere/views.py | 25 |
1 files changed, 18 insertions, 7 deletions
diff --git a/chimere/views.py b/chimere/views.py index d4f3bb3..7274bf0 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 + AggregatedRoute, AggregatedPolygon from chimere.widgets import PointChooserWidget, RouteChooserWidget, AreaWidget,\ PolygonChooserWidget @@ -749,7 +749,8 @@ def checkDate(q): def _getGeoObjects(area_name, category_ids, status='A', getjson=True, - item_types=('Marker', 'Route', 'Polygon')): + aggregated=False, item_types=('Marker', 'Route', + 'Polygon')): ''' Get geo objects ''' @@ -780,12 +781,22 @@ def _getGeoObjects(area_name, category_ids, status='A', getjson=True, return empty category_ids = [int(cat_id) for cat_id in category_ids] - if getjson: - current_cat, colors, idx = None, None, 0 - items += Polygon.getGeoJSONs( - query, limit_to_categories=category_ids) + if aggregated: + query = AggregatedPolygon.objects.filter( + status__in=status, subcategory__in=category_ids).order_by( + 'subcategory', '-pk') + if getjson: + for poly in query.all(): + items.append(json.loads(poly.getGeoJSON())) + else: + items += list(query) else: - items += list(query) + if getjson: + current_cat, colors, idx = None, None, 0 + items += Polygon.getGeoJSONs( + query, limit_to_categories=category_ids) + else: + items += list(query) # routes if 'Route' in item_types: |