Mercurial > libervia-web
diff libervia/pages/lists/view_item/page_meta.py @ 1483:595e7fef41f3
merge bookmark @
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 12 Nov 2021 17:48:30 +0100 |
parents | 907f519faaf0 837ae0c4b858 |
children | 3a34d78f2717 |
line wrap: on
line diff
--- a/libervia/pages/lists/view_item/page_meta.py Tue Sep 28 18:18:37 2021 +0200 +++ b/libervia/pages/lists/view_item/page_meta.py Fri Nov 12 17:48:30 2021 +0100 @@ -1,7 +1,7 @@ #!/usr/bin/env python3 from twisted.words.protocols.jabber import jid -from sat.core.i18n import _ +from sat.core.i18n import _, D_ from sat.tools.common import template_xmlui from sat.tools.common import uri from sat.tools.common import data_format @@ -26,6 +26,20 @@ log.warning(_("no list item id specified")) self.pageError(request, C.HTTP_BAD_REQUEST) + +def add_breadcrumb(self, request, breadcrumbs): + data = self.getRData(request) + list_url = self.getPageByName("lists").getURL(data["service"].full(), + data.get("node") or "@") + breadcrumbs.append({ + "label": D_("List"), + "url": list_url + }) + breadcrumbs.append({ + "label": D_("Item"), + }) + + async def prepare_render(self, request): data = self.getRData(request) template_data = request.template_data @@ -35,8 +49,10 @@ data.get("node", ""), data["item_id"], ) + namespace = node or self.host.ns_map["tickets"] + node = await self.host.bridgeCall("psSchemaSubmittedNodeGet", namespace) + profile = self.getProfile(request) - if profile is None: profile = C.SERVICE_PROFILE @@ -50,7 +66,7 @@ {"labels_as_list": C.BOOL_TRUE}, profile, ) - list_items, metadata = data_format.deserialise(list_raw, type_check=list) + list_items, __ = data_format.deserialise(list_raw, type_check=list) list_item = [template_xmlui.create(self.host, x) for x in list_items][0] template_data["item"] = list_item try: @@ -91,7 +107,6 @@ is_publisher = publisher.userhostJID() == session.jid.userhostJID() affiliation = None if not is_publisher: - node = node or self.host.ns_map["tickets"] affiliation = await self.host.getAffiliation(request, service, node) if is_publisher or affiliation == "owner": self.exposeToScripts( @@ -110,7 +125,7 @@ # we add xmpp: URI uri_args = {'path': service.full()} - uri_args['node'] = node or self.host.ns_map["tickets"] + uri_args['node'] = node if item_id: uri_args['item'] = item_id template_data['xmpp_uri'] = uri.buildXMPPUri('pubsub', **uri_args)