diff libervia/web/pages/photos/page_meta.py @ 1518:eb00d593801d

refactoring: rename `libervia` to `libervia.web` + update imports following backend changes
author Goffi <goffi@goffi.org>
date Fri, 02 Jun 2023 16:49:28 +0200
parents libervia/pages/photos/page_meta.py@106bae41f5c8
children
line wrap: on
line diff
--- /dev/null	Thu Jan 01 00:00:00 1970 +0000
+++ b/libervia/web/pages/photos/page_meta.py	Fri Jun 02 16:49:28 2023 +0200
@@ -0,0 +1,53 @@
+#!/usr/bin/env python3
+
+
+from libervia.web.server.constants import Const as C
+from twisted.internet import defer
+from libervia.backend.core.i18n import _
+from libervia.backend.core.log import getLogger
+
+log = getLogger(__name__)
+
+name = "photos"
+access = C.PAGES_ACCESS_PROFILE
+template = "photo/discover.html"
+
+
+@defer.inlineCallbacks
+def prepare_render(self, request):
+    profile = self.get_profile(request)
+    template_data = request.template_data
+    namespace = self.host.ns_map["fis"]
+    if profile is not None:
+        try:
+            interests = yield self.host.bridge_call(
+                "interests_list", "", "", namespace, profile)
+        except Exception:
+            log.warning(_("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('subtype') != 'photos':
+                    continue
+                path = interest.get('path', '')
+                path_args = [p for p in path.split('/') if p]
+                interest["url"] = self.get_sub_page_url(
+                    request,
+                    "photos_album",
+                    interest['service'],
+                    *path_args
+                )
+                filtered_interests.append(interest)
+
+            template_data['interests'] = filtered_interests
+
+        template_data["url_photos_new"] = self.get_sub_page_url(request, "photos_new")
+
+
+@defer.inlineCallbacks
+def on_data_post(self, request):
+    jid_ = self.get_posted_data(request, "jid")
+    url = self.get_page_by_name("photos_album").get_url(jid_)
+    self.http_redirect(request, url)