Mercurial > libervia-web
diff libervia/pages/photos/page_meta.py @ 1172:7b8e123ba043
pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
author | Goffi <goffi@goffi.org> |
---|---|
date | Fri, 03 May 2019 13:08:41 +0200 |
parents | 28e3eb3bb217 |
children | ddc1e704bc41 |
line wrap: on
line diff
--- a/libervia/pages/photos/page_meta.py Fri Apr 26 08:42:27 2019 +0200 +++ b/libervia/pages/photos/page_meta.py Fri May 03 13:08:41 2019 +0200 @@ -3,6 +3,10 @@ from libervia.server.constants import Const as C from twisted.internet import defer +from sat.core.i18n import _ +from sat.core.log import getLogger + +log = getLogger(__name__) name = u"photos" access = C.PAGES_ACCESS_PROFILE @@ -10,6 +14,37 @@ @defer.inlineCallbacks +def parse_url(self, request): + profile = self.getProfile(request) + template_data = request.template_data + namespace = self.host.ns_map["fis"] + if profile is not None: + try: + interests = yield self.host.bridgeCall( + "interestsList", "", "", namespace, profile) + except Exception: + log.warning(_(u"Can't get interests list for {profile}").format( + profile=profile)) + else: + # we only want photo albums + filtered_interests = [] + for interest in interests: + if interest.get(u'subtype') != u'photos': + continue + path = interest.get(u'path', u'') + path_args = [p for p in path.split(u'/') if p] + interest["url"] = self.getSubPageURL( + request, + u"photos_album", + interest[u'service'], + *path_args + ) + filtered_interests.append(interest) + + template_data[u'interests'] = filtered_interests + + +@defer.inlineCallbacks def on_data_post(self, request): jid_ = self.getPostedData(request, u"jid") url = self.getPageByName(u"photos_album").getURL(jid_)