annotate libervia/pages/photos/page_meta.py @ 1389:ac4173fff71d

pages (lists/view): add `list_type` to `template_data`: when a service/node is used for the first time, schema is retrieved, and `list_type` is put in cache and used in template. This allows the template to have specialised views depending on the kind of list user is opening.
author Goffi <goffi@goffi.org>
date Sat, 27 Feb 2021 20:58:22 +0100
parents 4385a75e3962
children 106bae41f5c8
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
1 #!/usr/bin/env python3
1239
f511f8fbbf8a fixed shebangs
Goffi <goffi@goffi.org>
parents: 1216
diff changeset
2
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
3
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
4 from libervia.server.constants import Const as C
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
5 from twisted.internet import defer
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
6 from sat.core.i18n import _
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
7 from sat.core.log import getLogger
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
8
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
9 log = getLogger(__name__)
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
10
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
11 name = "photos"
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
12 access = C.PAGES_ACCESS_PROFILE
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
13 template = "photo/discover.html"
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
14
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
15
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
16 @defer.inlineCallbacks
1176
ddc1e704bc41 pages (photos): moved code getting interests in prepare_render
Goffi <goffi@goffi.org>
parents: 1172
diff changeset
17 def prepare_render(self, request):
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
18 profile = self.getProfile(request)
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
19 template_data = request.template_data
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
20 namespace = self.host.ns_map["fis"]
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
21 if profile is not None:
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
22 try:
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
23 interests = yield self.host.bridgeCall(
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
24 "interestsList", "", "", namespace, profile)
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
25 except Exception:
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
26 log.warning(_("Can't get interests list for {profile}").format(
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
27 profile=profile))
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
28 else:
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
29 # we only want photo albums
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
30 filtered_interests = []
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
31 for interest in interests:
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
32 if interest.get('subtype') != 'photos':
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
33 continue
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
34 path = interest.get('path', '')
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
35 path_args = [p for p in path.split('/') if p]
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
36 interest["url"] = self.getSubPageURL(
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
37 request,
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
38 "photos_album",
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
39 interest['service'],
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
40 *path_args
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
41 )
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
42 filtered_interests.append(interest)
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
43
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
44 template_data['interests'] = filtered_interests
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
45
1278
4385a75e3962 pages (photos/new): photo album creation
Goffi <goffi@goffi.org>
parents: 1239
diff changeset
46 template_data["url_photos_new"] = self.getSubPageURL(request, "photos_new")
4385a75e3962 pages (photos/new): photo album creation
Goffi <goffi@goffi.org>
parents: 1239
diff changeset
47
1172
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
48
7b8e123ba043 pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents: 1124
diff changeset
49 @defer.inlineCallbacks
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
50 def on_data_post(self, request):
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
51 jid_ = self.getPostedData(request, "jid")
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1176
diff changeset
52 url = self.getPageByName("photos_album").getURL(jid_)
1074
2e1f7e78b147 pages (photos): default page now handle free jid (but don't display anything else yet)
Goffi <goffi@goffi.org>
parents: 1070
diff changeset
53 self.HTTPRedirect(request, url)