Mercurial > libervia-web
comparison libervia/pages/forums/list/page_meta.py @ 1427:eaf36fffcbdb
pages (forums): better breadcrumbs
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 01 May 2021 19:05:16 +0200 |
parents | f511f8fbbf8a |
children | 106bae41f5c8 |
comparison
equal
deleted
inserted
replaced
1426:4cf2b73e63aa | 1427:eaf36fffcbdb |
---|---|
1 #!/usr/bin/env python3 | 1 #!/usr/bin/env python3 |
2 | 2 |
3 | |
4 from libervia.server.constants import Const as C | 3 from libervia.server.constants import Const as C |
5 from twisted.internet import defer | |
6 from sat.core.log import getLogger | 4 from sat.core.log import getLogger |
7 from sat.core.i18n import _ | 5 from sat.core.i18n import _ |
8 from sat.tools.common import uri as xmpp_uri | 6 from sat.tools.common import uri as xmpp_uri |
9 | 7 |
10 log = getLogger(__name__) | 8 log = getLogger(__name__) |
25 node="@", | 23 node="@", |
26 forum_key="", | 24 forum_key="", |
27 ) | 25 ) |
28 | 26 |
29 | 27 |
28 def add_breadcrumb(self, request, breadcrumbs): | |
29 # we don't want breadcrumbs here as long as there is no forum discovery | |
30 # because it will be the landing page for forums activity until then | |
31 pass | |
32 | |
33 | |
30 def getLinks(self, forums): | 34 def getLinks(self, forums): |
31 for forum in forums: | 35 for forum in forums: |
32 try: | 36 try: |
33 uri = forum["uri"] | 37 uri = forum["uri"] |
34 except KeyError: | 38 except KeyError: |
40 forum["http_url"] = self.getPageByName("forum_topics").getURL(service, node) | 44 forum["http_url"] = self.getPageByName("forum_topics").getURL(service, node) |
41 if "sub-forums" in forum: | 45 if "sub-forums" in forum: |
42 getLinks(self, forum["sub-forums"]) | 46 getLinks(self, forum["sub-forums"]) |
43 | 47 |
44 | 48 |
45 @defer.inlineCallbacks | 49 async def prepare_render(self, request): |
46 def prepare_render(self, request): | |
47 data = self.getRData(request) | 50 data = self.getRData(request) |
48 template_data = request.template_data | 51 template_data = request.template_data |
49 service, node, key = data["service"], data["node"], data["forum_key"] | 52 service, node, key = data["service"], data["node"], data["forum_key"] |
50 profile = self.getProfile(request) or C.SERVICE_PROFILE | 53 profile = self.getProfile(request) or C.SERVICE_PROFILE |
51 | 54 |
52 try: | 55 try: |
53 forums_raw = yield self.host.bridgeCall( | 56 forums_raw = await self.host.bridgeCall( |
54 "forumsGet", service.full() if service else "", node, key, profile | 57 "forumsGet", service.full() if service else "", node, key, profile |
55 ) | 58 ) |
56 except Exception as e: | 59 except Exception as e: |
57 log.warning(_("Can't retrieve forums: {msg}").format(msg=e)) | 60 log.warning(_("Can't retrieve forums: {msg}").format(msg=e)) |
58 forums = [] | 61 forums = [] |