comparison libervia/web/pages/events/rsvp/page_meta.py @ 1588:4ecae80d6d39

pages (events/rsvp): fix call of `bridge.events_get` + use coroutines instead of inline callbacks
author Goffi <goffi@goffi.org>
date Sun, 10 Dec 2023 10:59:25 +0100
parents eb00d593801d
children
comparison
equal deleted inserted replaced
1587:860e33127245 1588:4ecae80d6d39
27 event_service="@jid", 27 event_service="@jid",
28 event_id="", 28 event_id="",
29 ) 29 )
30 30
31 31
32 @defer.inlineCallbacks 32 async def prepare_render(self, request):
33 def prepare_render(self, request):
34 template_data = request.template_data 33 template_data = request.template_data
35 data = self.get_r_data(request) 34 data = self.get_r_data(request)
36 profile = self.get_profile(request) 35 profile = self.get_profile(request)
37 36
38 ## Event ## 37 ## Event ##
39 38
40 event_service = data["event_service"] 39 event_service = data["event_service"]
41 event_node = data["event_node"] 40 event_node = data["event_node"]
42 event_id = data["event_id"] 41 event_id = data["event_id"]
43 event_timestamp, event_data = yield self.host.bridge_call( 42 event_timestamp, event_data = await self.host.bridge_call(
44 "eventGet", 43 "events_get",
45 event_service.userhost() if event_service else "", 44 event_service.userhost() if event_service else "",
46 event_node, 45 event_node,
47 event_id, 46 [event_id],
47 "",
48 profile, 48 profile,
49 ) 49 )
50 try: 50 try:
51 background_image = event_data.pop("background-image") 51 background_image = event_data.pop("background-image")
52 except KeyError: 52 except KeyError:
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 event_invitee_data = yield self.host.bridge_call( 65 event_invitee_data = await self.host.bridge_call(
66 "event_invitee_get", 66 "event_invitee_get",
67 event_data["invitees_service"], 67 event_data["invitees_service"],
68 event_data["invitees_node"], 68 event_data["invitees_node"],
69 '', 69 [],
70 "",
70 profile, 71 profile,
71 ) 72 )
72 template_data["invitee"] = event_invitee_data 73 template_data["invitee"] = event_invitee_data
73 template_data["days_left"] = int((event_timestamp - time.time()) / (60 * 60 * 24)) 74 template_data["days_left"] = int((event_timestamp - time.time()) / (60 * 60 * 24))
74 75
79 data["allow_commenting"] = "simple" 80 data["allow_commenting"] = "simple"
80 81
81 # we now need blog items, using blog common page 82 # we now need blog items, using blog common page
82 # this will fill the "items" template data 83 # this will fill the "items" template data
83 blog_page = self.get_page_by_name("blog_view") 84 blog_page = self.get_page_by_name("blog_view")
84 yield blog_page.prepare_render(self, request) 85 await blog_page.prepare_render(self, request)
85 86
86 87
87 @defer.inlineCallbacks 88 async def on_data_post(self, request):
88 def on_data_post(self, request):
89 type_ = self.get_posted_data(request, "type") 89 type_ = self.get_posted_data(request, "type")
90 if type_ == "comment": 90 if type_ == "comment":
91 blog_page = self.get_page_by_name("blog_view") 91 blog_page = self.get_page_by_name("blog_view")
92 yield blog_page.on_data_post(self, request) 92 await blog_page.on_data_post(self, request)
93 elif type_ == "attendance": 93 elif type_ == "attendance":
94 profile = self.get_profile(request) 94 profile = self.get_profile(request)
95 service, node, attend, guests = self.get_posted_data( 95 service, node, attend, guests = self.get_posted_data(
96 request, ("service", "node", "attend", "guests") 96 request, ("service", "node", "attend", "guests")
97 ) 97 )
98 data = {"attend": attend, "guests": guests} 98 data = {"attend": attend, "guests": guests}
99 yield self.host.bridge_call("event_invitee_set", service, node, data, profile) 99 await self.host.bridge_call("event_invitee_set", service, node, data, profile)
100 else: 100 else:
101 log.warning(_("Unhandled data type: {}").format(type_)) 101 log.warning(_("Unhandled data type: {}").format(type_))