diff options
| author | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-16 01:05:03 +0100 |
|---|---|---|
| committer | Étienne Loks <etienne.loks@peacefrogs.net> | 2012-12-16 01:05:03 +0100 |
| commit | 8a5ba2650678ec22107a1a0a10650b6e0cc14683 (patch) | |
| tree | f87525ef76b1dfad60dd5a002316927b83add44a /chimere/views.py | |
| parent | 3dc5c7a4944dc1d3d4270ed974f1afec68d998b6 (diff) | |
| download | Chimère-8a5ba2650678ec22107a1a0a10650b6e0cc14683.tar.bz2 Chimère-8a5ba2650678ec22107a1a0a10650b6e0cc14683.zip | |
Improve (greatly) performance for route display on the map
Diffstat (limited to 'chimere/views.py')
| -rw-r--r-- | chimere/views.py | 16 |
1 files changed, 6 insertions, 10 deletions
diff --git a/chimere/views.py b/chimere/views.py index b40e58a..47ce281 100644 --- a/chimere/views.py +++ b/chimere/views.py @@ -45,7 +45,8 @@ from django.utils.translation import ugettext as _ from chimere.actions import actions from chimere.models import Category, SubCategory, PropertyModel, Page,\ - Marker, Route, News, SimpleArea, Area, Color, TinyUrl, RouteFile + Marker, Route, News, SimpleArea, Area, Color, TinyUrl, RouteFile,\ + AggregatedRoute from chimere.widgets import getMapJS, PointChooserWidget, \ RouteChooserWidget, AreaWidget @@ -580,17 +581,12 @@ def getGeoObjects(request, area_name, category_ids, status): status = 'A' status = status.split('_') category_ids = category_ids.split('_') - try: - q = checkDate(Q(status__in=status, categories__in=category_ids)) - query = Route.objects.filter(q) - except: - return HttpResponse('no results') - query.order_by('categories') - routes = list(query) + query = AggregatedRoute.objects.filter(status__in=status, + subcategory__in=category_ids).order_by('subcategory') jsons = [] current_cat, colors, idx = None, None, 0 - for route in routes: - c_cat = route.categories.all()[0] + for route in query.all(): + c_cat = route.subcategory if not current_cat or current_cat != c_cat: idx = 0 current_cat = c_cat |
