From 8a5ba2650678ec22107a1a0a10650b6e0cc14683 Mon Sep 17 00:00:00 2001 From: Étienne Loks Date: Sun, 16 Dec 2012 01:05:03 +0100 Subject: Improve (greatly) performance for route display on the map --- chimere/views.py | 16 ++++++---------- 1 file changed, 6 insertions(+), 10 deletions(-) (limited to 'chimere/views.py') 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 -- cgit v1.2.3