From f0199bab47dde6c1e47838866d8a52f2f64bb897 Mon Sep 17 00:00:00 2001 From: Serghei MIHAI Date: Wed, 13 Nov 2013 11:43:45 +0100 Subject: [PATCH] =?UTF-8?q?documents=20dont=20le=20deput=C3=A9=20est=20ora?= =?UTF-8?q?teur=20ou=20reporteur=20affich=C3=A9s?= MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit --- tabellio/webviews/deputy.pt | 2 ++ tabellio/webviews/deputy.py | 47 ++++++++++++++++++++++++++++++++++++- 2 files changed, 48 insertions(+), 1 deletion(-) diff --git a/tabellio/webviews/deputy.pt b/tabellio/webviews/deputy.pt index ea28ec8..2dc4164 100644 --- a/tabellio/webviews/deputy.pt +++ b/tabellio/webviews/deputy.pt @@ -107,6 +107,8 @@ (en tant que participant) + (en tant que rapporteur) + (en tant qu'orateur) diff --git a/tabellio/webviews/deputy.py b/tabellio/webviews/deputy.py index 36e4fec..3dc21f7 100644 --- a/tabellio/webviews/deputy.py +++ b/tabellio/webviews/deputy.py @@ -136,6 +136,44 @@ class View(BrowserView, Cached): self._activity_as_participant = activity return activity + _activity_as_reporter = None + def get_activity_as_reporter(self): + if self._activity_as_reporter is not None: + return self._activity_as_reporter + intids = component.getUtility(IIntIds) + catalog = component.getUtility(ICatalog) + try: + reporter_intid = intids.getId(self.context) + except KeyError: + intids.register(self.context) + reporter_intid = initds.get(self.context) + reports = [x.from_object for x in catalog.findRelations({ + 'to_id': reporter_intid, + 'from_attribute': 'reporters'})] + reports = [x for x in reports if hasattr(x, 'date')] + self._activity_as_reporter = reports + + return reports + + _activity_as_speaker = None + def get_activity_as_speaker(self): + if self._activity_as_speaker is not None: + return self._activity_as_speaker + intids = component.getUtility(IIntIds) + catalog = component.getUtility(ICatalog) + try: + speaker_intid = intids.getId(self.context) + except KeyError: + intids.register(self.context) + speaker_intid = intids.get(self.context) + speeches = [x.from_object for x in catalog.findRelations({ + 'to_id': speaker_intid, + 'from_attribute': 'speakers'})] + speeches = [x for x in speeches if hasattr(x, 'date')] + self._activity_as_speaker = speeches + + return speeches + def sessions_with_activity(self): sessions_dict = {} @@ -143,15 +181,22 @@ class View(BrowserView, Cached): sessions_dict[activity.session] = True for activity in self.get_activity_as_participant(): sessions_dict[activity.session] = True + for activity in self.get_activity_as_speaker(): + sessions_dict[activity.session] = True + for activity in self.get_activity_as_reporter(): + sessions_dict[activity.session] = True sessions = [] for session in tabellio.config.utils.get_sessions(): if session in sessions_dict: sessions.append(session) + return sessions def activity(self, session=None): activity = [(x, 'author') for x in self.get_activity_as_author()] + \ - [(x, 'participant') for x in self.get_activity_as_participant()] + [(x, 'participant') for x in self.get_activity_as_participant()] + \ + [(x, 'reporter') for x in self.get_activity_as_reporter()] + \ + [(x, 'speaker') for x in self.get_activity_as_speaker()] if session: activity = [x for x in activity if x[0].session == session]