# HG changeset patch # User Goffi # Date 1556881721 -7200 # Node ID 7b8e123ba04340552c16eb537b08244578533bb3 # Parent 469d0de8da0ec651371aeb1581beb7e6aee0cbce pages (photos): retrieve photo albums from list of interests, and fill "interests" template data. diff -r 469d0de8da0e -r 7b8e123ba043 libervia/pages/photos/page_meta.py --- 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_)