diff options
author | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-13 15:57:30 +0200 |
---|---|---|
committer | Étienne Loks <etienne.loks@iggdrasil.net> | 2016-05-13 15:57:30 +0200 |
commit | 6b9856c9264bf26ee853bf570387a7b5ea949a9f (patch) | |
tree | 091340fc1430f7c13433661a778ea46b1ef2ac5b /chimere/views.py | |
parent | 990493bf4ceaf7aa3e9ce79635799bc1c6b20679 (diff) | |
download | Chimère-6b9856c9264bf26ee853bf570387a7b5ea949a9f.tar.bz2 Chimère-6b9856c9264bf26ee853bf570387a7b5ea949a9f.zip |
Optimize polygon retrievement in database
Diffstat (limited to 'chimere/views.py')
-rw-r--r-- | chimere/views.py | 28 |
1 files changed, 2 insertions, 26 deletions
diff --git a/chimere/views.py b/chimere/views.py index 5fd50cd..796aca3 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -717,32 +717,8 @@ def _getGeoObjects(area_name, category_ids, status='A', getjson=True, category_ids = [int(cat_id) for cat_id in category_ids] if getjson: current_cat, colors, idx = None, None, 0 - for polygon in query.all(): - color, inner_color = "", "" - if polygon.inner_color: - inner_color = polygon.inner_color - if polygon.color: - color = polygon.color - else: - c_cat = None - for cat in polygon.categories.all(): - if cat.id in category_ids: - c_cat = cat - break - if c_cat and not current_cat or current_cat != c_cat: - idx = 0 - current_cat = c_cat - colors = list(Color.objects.filter( - color_theme=c_cat.color_theme)) - if colors: - color = colors[idx % len(colors)].code - idx += 1 - else: - color = "#000" - if not inner_color: - inner_color = "rgba(180, 180, 180, 0.3)" - items.append(json.loads(polygon.getGeoJSON( - color=color, inner_color=inner_color))) + items += Polygon.getGeoJSONs( + query, limit_to_categories=category_ids) else: items += list(query) |