[IMP] website_event_track: simplify event_agenda

This commit is contained in:
Xavier Morel
2014-05-13 10:49:24 +02:00
parent cc9d056711
commit 36bb8acfab
+16 -21
View File
@@ -18,19 +18,17 @@
# along with this program. If not, see <http://www.gnu.org/licenses/>.
#
##############################################################################
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/<model("event.event"):event>/track/<model("event.track"):track>'], type='http', auth="public", website=True, multilang=True)
@@ -79,24 +77,21 @@ class website_event(http.Controller):
# TODO: not implemented
@http.route(['/event/<model("event.event"):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
})