diff --git a/addons/website_event_track/controllers/event.py b/addons/website_event_track/controllers/event.py
index 60d4bbd390d..373ade03ad9 100644
--- a/addons/website_event_track/controllers/event.py
+++ b/addons/website_event_track/controllers/event.py
@@ -18,19 +18,17 @@
# along with this program. If not, see .
#
##############################################################################
+import collections
+
+import datetime
+import re
+
+import pytz
+import werkzeug.utils
import openerp
from openerp.addons.web import http
from openerp.addons.web.http import request
-from openerp.addons.website.controllers.main import Website as controllers
-import datetime
-
-import re
-import werkzeug.utils
-
-controllers = controllers()
-import pytz
-from pytz import timezone
class website_event(http.Controller):
@http.route(['/event//track/'], type='http', auth="public", website=True, multilang=True)
@@ -79,24 +77,21 @@ class website_event(http.Controller):
# TODO: not implemented
@http.route(['/event//agenda'], type='http', auth="public", website=True, multilang=True)
def event_agenda(self, event, tag=None, **post):
- comp = lambda x: (x.date, bool(x.location_id))
- event.track_ids.sort(lambda x,y: cmp(comp(x), comp(y)))
+ days_tracks = collections.defaultdict(lambda: [])
+ for track in sorted(event.track_ids, key=lambda x: (x.date, bool(x.location_id))):
+ if not track.date: continue
+ days_tracks[track.date[:10]].append(track)
days = {}
- days_nbr = {}
- for track in event.track_ids:
- if not track.date: continue
- days.setdefault(track.date[:10], [])
- days[track.date[:10]].append(track)
-
- for d in days:
- days_nbr[d] = len(days[d])
- days[d] = self._prepare_calendar(event, days[d])
+ days_tracks_count = {}
+ for day, tracks in days_tracks.iteritems():
+ days_tracks_count[day] = len(tracks)
+ days[day] = self._prepare_calendar(event, tracks)
return request.website.render("website_event_track.agenda", {
'event': event,
'days': days,
- 'days_nbr': days_nbr,
+ 'days_nbr': days_tracks_count,
'tag': tag
})