Mercurial > libervia-web
comparison libervia/pages/events/admin/page_meta.py @ 1302:04e7dd6b6f4d
pages (blog, tickets, merge-requests): updated code to handle new serialisation, following backend changes
author | Goffi <goffi@goffi.org> |
---|---|
date | Thu, 16 Jul 2020 09:08:47 +0200 |
parents | f511f8fbbf8a |
children | d6bcb0cf92d2 |
comparison
equal
deleted
inserted
replaced
1301:ff44f822bfdd | 1302:04e7dd6b6f4d |
---|---|
3 | 3 |
4 from libervia.server.constants import Const as C | 4 from libervia.server.constants import Const as C |
5 from twisted.internet import defer | 5 from twisted.internet import defer |
6 from twisted.words.protocols.jabber import jid | 6 from twisted.words.protocols.jabber import jid |
7 from sat.tools.common.template import safe | 7 from sat.tools.common.template import safe |
8 from sat.tools.common import data_format | |
8 from sat.core.i18n import _ | 9 from sat.core.i18n import _ |
9 from sat.core.log import getLogger | 10 from sat.core.log import getLogger |
10 import time | 11 import time |
11 import html | 12 import html |
12 import math | 13 import math |
27 event_service="@jid", | 28 event_service="@jid", |
28 event_id="", | 29 event_id="", |
29 ) | 30 ) |
30 | 31 |
31 | 32 |
32 @defer.inlineCallbacks | 33 async def prepare_render(self, request): |
33 def prepare_render(self, request): | |
34 data = self.getRData(request) | 34 data = self.getRData(request) |
35 template_data = request.template_data | 35 template_data = request.template_data |
36 | 36 |
37 ## Event ## | 37 ## Event ## |
38 | 38 |
39 event_service = template_data["event_service"] = data["event_service"] | 39 event_service = template_data["event_service"] = data["event_service"] |
40 event_node = template_data["event_node"] = data["event_node"] | 40 event_node = template_data["event_node"] = data["event_node"] |
41 event_id = template_data["event_id"] = data["event_id"] | 41 event_id = template_data["event_id"] = data["event_id"] |
42 profile = self.getProfile(request) | 42 profile = self.getProfile(request) |
43 event_timestamp, event_data = yield self.host.bridgeCall( | 43 event_timestamp, event_data = await self.host.bridgeCall( |
44 "eventGet", | 44 "eventGet", |
45 event_service.userhost() if event_service else "", | 45 event_service.userhost() if event_service else "", |
46 event_node, | 46 event_node, |
47 event_id, | 47 event_id, |
48 profile, | 48 profile, |
60 } | 60 } |
61 """ | 61 """ |
62 % html.escape(background_image, True) | 62 % html.escape(background_image, True) |
63 ) | 63 ) |
64 template_data["event"] = event_data | 64 template_data["event"] = event_data |
65 invitees = yield self.host.bridgeCall( | 65 invitees = await self.host.bridgeCall( |
66 "eventInviteesList", | 66 "eventInviteesList", |
67 event_data["invitees_service"], | 67 event_data["invitees_service"], |
68 event_data["invitees_node"], | 68 event_data["invitees_node"], |
69 profile, | 69 profile, |
70 ) | 70 ) |
91 data["allow_commenting"] = "simple" | 91 data["allow_commenting"] = "simple" |
92 | 92 |
93 # we now need blog items, using blog common page | 93 # we now need blog items, using blog common page |
94 # this will fill the "items" template data | 94 # this will fill the "items" template data |
95 blog_page = self.getPageByName("blog_view") | 95 blog_page = self.getPageByName("blog_view") |
96 yield blog_page.prepare_render(self, request) | 96 await blog_page.prepare_render(self, request) |
97 | 97 |
98 | 98 |
99 @defer.inlineCallbacks | 99 async def on_data_post(self, request): |
100 def on_data_post(self, request): | |
101 profile = self.getProfile(request) | 100 profile = self.getProfile(request) |
102 if not profile: | 101 if not profile: |
103 log.error("got post data without profile") | 102 log.error("got post data without profile") |
104 self.pageError(request, C.HTTP_INTERNAL_ERROR) | 103 self.pageError(request, C.HTTP_INTERNAL_ERROR) |
105 type_ = self.getPostedData(request, "type") | 104 type_ = self.getPostedData(request, "type") |
119 comments = bool(self.getPostedData(request, "comments").strip()) | 118 comments = bool(self.getPostedData(request, "comments").strip()) |
120 except KeyError: | 119 except KeyError: |
121 pass | 120 pass |
122 else: | 121 else: |
123 if comments: | 122 if comments: |
124 data["allow_comments"] = C.BOOL_TRUE | 123 data["allow_comments"] = True |
125 | 124 |
126 try: | 125 try: |
127 yield self.host.bridgeCall("mbSend", service, node, data, profile) | 126 await self.host.bridgeCall( |
127 "mbSend", service, node, data_format.serialise(data), profile) | |
128 except Exception as e: | 128 except Exception as e: |
129 if "forbidden" in str(e): | 129 if "forbidden" in str(e): |
130 self.pageError(request, C.HTTP_FORBIDDEN) | 130 self.pageError(request, C.HTTP_FORBIDDEN) |
131 else: | 131 else: |
132 raise e | 132 raise e |
140 except RuntimeError: | 140 except RuntimeError: |
141 log.warning( | 141 log.warning( |
142 _("this is not a valid jid: {jid}").format(jid=invitee_jid_s) | 142 _("this is not a valid jid: {jid}").format(jid=invitee_jid_s) |
143 ) | 143 ) |
144 continue | 144 continue |
145 yield self.host.bridgeCall( | 145 await self.host.bridgeCall( |
146 "eventInvite", invitee_jid.userhost(), service, node, event_id, profile | 146 "eventInvite", invitee_jid.userhost(), service, node, event_id, profile |
147 ) | 147 ) |
148 for email_addr in emails.split(): | 148 for email_addr in emails.split(): |
149 if not REG_EMAIL_RE.match(email_addr): | 149 if not REG_EMAIL_RE.match(email_addr): |
150 log.warning( | 150 log.warning( |
151 _("this is not a valid email address: {email}").format( | 151 _("this is not a valid email address: {email}").format( |
152 email=email_addr | 152 email=email_addr |
153 ) | 153 ) |
154 ) | 154 ) |
155 continue | 155 continue |
156 yield self.host.bridgeCall( | 156 await self.host.bridgeCall( |
157 "eventInviteByEmail", | 157 "eventInviteByEmail", |
158 service, | 158 service, |
159 node, | 159 node, |
160 event_id, | 160 event_id, |
161 email_addr, | 161 email_addr, |