diff src/pages/events/page_meta.py @ 1111:4d1c4bd4931a

pages (events): added root, admin, new, rsvp and view pages
author Goffi <goffi@goffi.org>
date Thu, 21 Jun 2018 01:19:57 +0200
parents
children cdd389ef97bc
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/src/pages/events/page_meta.py	Thu Jun 21 01:19:57 2018 +0200
@@ -0,0 +1,45 @@
+#!/usr/bin/env python2.7
+# -*- coding: utf-8 -*-
+
+from libervia.server.constants import Const as C
+from twisted.internet import defer
+from sat.core.i18n import _
+from sat.core.log import getLogger
+log = getLogger('pages/ticket')
+"""ticket handling pages"""
+
+name = u'events'
+access = C.PAGES_ACCESS_PUBLIC
+template = u"event/overview.html"
+
+
+@defer.inlineCallbacks
+def parse_url(self, request):
+    profile = self.getProfile(request)
+    template_data = request.template_data
+    template_data[u'url_event_new'] = self.getSubPageURL(request, 'event_new')
+    if profile is not None:
+        try:
+            events = yield self.host.bridgeCall("eventsList", "", "", profile)
+        except Exception:
+            log.warning(_(u"Can't get events list for {profile}").format(profile=profile))
+        else:
+            own_events = []
+            other_events = []
+            for event in events:
+                if C.bool(event.get('creator', C.BOOL_FALSE)):
+                    own_events.append(event)
+                    event['url'] = self.getSubPageURL(request,
+                                                      u'event_admin',
+                                                      event.get('service',''),
+                                                      event.get('node',''),
+                                                      event.get('item'))
+                else:
+                    other_events.append(event)
+                    event['url'] = self.getSubPageURL(request,
+                                                      u'event_rsvp',
+                                                      event.get('service',''),
+                                                      event.get('node',''),
+                                                      event.get('item'))
+
+            template_data[u'events'] = own_events + other_events