Mercurial > libervia-web
annotate libervia/pages/g/e/page_meta.py @ 1146:76d75423ef53
server: tasks manager first draft:
A new task manager will check /tasks directory of website to scripts to execute before launching the site. This allows to generate docs, scripts, or do anything else useful.
Generated files are put in in sat local dir, in cache, and are accessible from the website using the new "build_dir" variable.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 25 Jan 2019 08:58:41 +0100 |
parents | 29eb15062416 |
children | e0b3f1d78f8c |
rev | line source |
---|---|
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
1 #!/usr/bin/env python2.7 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
2 # -*- coding: utf-8 -*- |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
3 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
4 from libervia.server.constants import Const as C |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
5 from sat.core.i18n import _ |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
6 from twisted.internet import defer |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
7 from twisted.words.protocols.jabber import jid |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
8 from libervia.server import session_iface |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
9 from sat.tools.common import uri |
1028
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
10 from sat.tools.common.template import safe |
946
d076b722ca52
pages (g/e): added days left before the event as a template variable
Goffi <goffi@goffi.org>
parents:
943
diff
changeset
|
11 import time |
1028
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
12 import cgi |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
13 from sat.core.log import getLogger |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
14 |
1145
29eb15062416
pages: set __name__ for imported pages
Goffi <goffi@goffi.org>
parents:
1124
diff
changeset
|
15 log = getLogger(__name__) |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
16 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
17 access = C.PAGES_ACCESS_PROFILE |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
18 template = u"event/invitation.html" |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
19 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
20 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
21 @defer.inlineCallbacks |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
22 def prepare_render(self, request): |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
23 template_data = request.template_data |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
24 guest_session = self.host.getSessionData(request, session_iface.ISATGuestSession) |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
25 try: |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
26 event_uri = guest_session.data["event_uri"] |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
27 except KeyError: |
943
aacda981c348
pages (g/e): use blog_uri from event instead of guest's main uri
Goffi <goffi@goffi.org>
parents:
942
diff
changeset
|
28 log.warning(_(u"event URI not found, can't render event page")) |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
29 self.pageError(request, C.HTTP_SERVICE_UNAVAILABLE) |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
30 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
31 data = self.getRData(request) |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
32 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
33 ## Event ## |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
34 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
35 event_uri_data = uri.parseXMPPUri(event_uri) |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
36 if event_uri_data[u"type"] != u"pubsub": |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
37 self.pageError(request, C.HTTP_SERVICE_UNAVAILABLE) |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
38 |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
39 event_service = template_data[u"event_service"] = jid.JID(event_uri_data[u"path"]) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
40 event_node = template_data[u"event_node"] = event_uri_data[u"node"] |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
41 event_id = template_data[u"event_id"] = event_uri_data.get(u"item", "") |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
42 profile = self.getProfile(request) |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
43 event_timestamp, event_data = yield self.host.bridgeCall( |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
44 u"eventGet", event_service.userhost(), event_node, event_id, profile |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
45 ) |
942
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
46 try: |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
47 background_image = event_data.pop("background-image") |
942
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
48 except KeyError: |
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
49 pass |
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
50 else: |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
51 template_data["dynamic_style"] = safe( |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
52 u""" |
1028
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
53 html { |
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
54 background-image: url("%s"); |
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
55 background-size: 15em; |
ad97d7e7de3b
pages (g/e): replaced background_image by new dynamic_style template variable
Goffi <goffi@goffi.org>
parents:
949
diff
changeset
|
56 } |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
57 """ |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
58 % cgi.escape(background_image, True) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
59 ) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
60 template_data["event"] = event_data |
942
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
61 event_invitee_data = yield self.host.bridgeCall( |
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
62 u"eventInviteeGet", |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
63 event_data["invitees_service"], |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
64 event_data["invitees_node"], |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
65 profile, |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
66 ) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
67 template_data["invitee"] = event_invitee_data |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
68 template_data["days_left"] = int((event_timestamp - time.time()) / (60 * 60 * 24)) |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
69 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
70 ## Blog ## |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
71 |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
72 data[u"service"] = jid.JID(event_data[u"blog_service"]) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
73 data[u"node"] = event_data[u"blog_node"] |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
74 data[u"allow_commenting"] = u"simple" |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
75 |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
76 # we now need blog items, using blog common page |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
77 # this will fill the "items" template data |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
78 blog_page = self.getPageByName(u"blog_view") |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
79 yield blog_page.prepare_render(self, request) |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
80 |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
81 |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
82 @defer.inlineCallbacks |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
83 def on_data_post(self, request): |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
84 type_ = self.getPostedData(request, u"type") |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
85 if type_ == u"comment": |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
86 blog_page = self.getPageByName(u"blog_view") |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
87 yield blog_page.on_data_post(self, request) |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
88 elif type_ == u"attendance": |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
89 profile = self.getProfile(request) |
1113
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
90 service, node, attend, guests = self.getPostedData( |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
91 request, (u"service", u"node", u"attend", u"guests") |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
92 ) |
cdd389ef97bc
server: code style reformatting using black
Goffi <goffi@goffi.org>
parents:
1085
diff
changeset
|
93 data = {u"attend": attend, u"guests": guests} |
942
6b55d038b121
pages (g/e): adapted event handling to changes in backend
Goffi <goffi@goffi.org>
parents:
940
diff
changeset
|
94 yield self.host.bridgeCall(u"eventInviteeSet", service, node, data, profile) |
940
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
95 else: |
e30a4b7eff09
page (g/e): events invitations first draft
Goffi <goffi@goffi.org>
parents:
diff
changeset
|
96 log.warning(_(u"Unhandled data type: {}").format(type_)) |