From 90ae2c4d4000ef9362f1645df0c79da6df2fc3fd Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Fr=C3=A9d=C3=A9ric=20P=C3=A9ters?= Date: Thu, 1 Dec 2011 13:28:29 +0100 Subject: [PATCH] links to minutes and streaming (#1077 & #1078) (and mark them as unavailable when appropriate) --- tabellio/pfbviews/comevent.py | 24 ++++++++++++++++++- tabellio/pfbviews/comevent_templates/view.pt | 7 ++++++ tabellio/pfbviews/parlevent.py | 18 +++++++------- tabellio/pfbviews/parlevent_templates/view.pt | 8 +++++++ 4 files changed, 48 insertions(+), 9 deletions(-) diff --git a/tabellio/pfbviews/comevent.py b/tabellio/pfbviews/comevent.py index 21aab2a..07039f6 100644 --- a/tabellio/pfbviews/comevent.py +++ b/tabellio/pfbviews/comevent.py @@ -1,8 +1,30 @@ from five import grok +from Products.CMFCore.utils import getToolByName from parlevent import ParlEventBaseView from tabellio.agenda.comevent import IComEvent +import tabellio.config.utils -class View(grok.View, ParlEventBaseView): +class CommissionView(ParlEventBaseView): + def get_stream_name(self): + com_id = self.context.commission.to_path.split('/')[-1] + com_audio_code = tabellio.config.utils.get_com_audio_code(com_id) + filename = '%04d%02d%02d%02d-%s.mp3' % ( + self.context.start.year, self.context.start.month, + self.context.start.day, self.context.start.hour, + com_audio_code) + return filename + +class View(grok.View, CommissionView): grok.context(IComEvent) grok.require('zope2.View') +class M3U(grok.View, CommissionView): + grok.context(IComEvent) + grok.require('zope2.View') + grok.name('ecouter.m3u') + + def render(self): + portal_url = getToolByName(self.context, 'portal_url').getPortalObject().absolute_url() + self.request.response.setHeader('Content-type', 'audio/x-mpegurl') + return portal_url + '/mp3/' + self.get_stream_name() + '\n' + diff --git a/tabellio/pfbviews/comevent_templates/view.pt b/tabellio/pfbviews/comevent_templates/view.pt index de1c7a2..4e666b3 100644 --- a/tabellio/pfbviews/comevent_templates/view.pt +++ b/tabellio/pfbviews/comevent_templates/view.pt @@ -32,6 +32,13 @@ Lieu :

+

Ordre du jour

diff --git a/tabellio/pfbviews/parlevent.py b/tabellio/pfbviews/parlevent.py index adcb8be..ad90fa5 100644 --- a/tabellio/pfbviews/parlevent.py +++ b/tabellio/pfbviews/parlevent.py @@ -11,12 +11,6 @@ import tabellio.agenda.parlevent class ParlEventBaseView(tabellio.agenda.parlevent.ParlEventBaseView): - def get_stream_name(self): - filename = '%04d%02d%02d%02d-SEAN.mp3' % ( - self.context.start.year, self.context.start.month, - self.context.start.day, self.context.start.hour) - return filename - def has_stream(self): settings = component.getUtility(IRegistry).forInterface(ITabellioSettings, False) if not settings.audiofiles_path: @@ -24,11 +18,19 @@ class ParlEventBaseView(tabellio.agenda.parlevent.ParlEventBaseView): return os.path.exists(os.path.join(settings.audiofiles_path, self.get_stream_name())) -class View(grok.View, ParlEventBaseView): +class ParlEventView(ParlEventBaseView): + def get_stream_name(self): + filename = '%04d%02d%02d%02d-SEAN.mp3' % ( + self.context.start.year, self.context.start.month, + self.context.start.day, self.context.start.hour) + return filename + + +class View(grok.View, ParlEventView): grok.context(tabellio.agenda.parlevent.IParlEvent) grok.require('zope2.View') -class M3U(grok.View, ParlEventBaseView): +class M3U(grok.View, ParlEventView): grok.context(tabellio.agenda.parlevent.IParlEvent) grok.require('zope2.View') grok.name('seance.m3u') diff --git a/tabellio/pfbviews/parlevent_templates/view.pt b/tabellio/pfbviews/parlevent_templates/view.pt index 580dbb8..260f435 100644 --- a/tabellio/pfbviews/parlevent_templates/view.pt +++ b/tabellio/pfbviews/parlevent_templates/view.pt @@ -32,6 +32,14 @@ Lieu :

+ +

Ordre du jour