Mercurial > libervia-web
annotate libervia/pages/photos/page_meta.py @ 1245:079e8eb6e327
server (tasks): refactoring:
- moved `TasksManager` to `server.tasks.manager`
- tasks modules now must have a `Task` class which will be instanciated by TasksManager
- `server.tasks.task` has a basis for `Task` class
- `Task.prepare` can now be asynchronous
- `importlib` is now used to import tasks, instead of exec
- tasks are now parsed/run after pages are imported
- `server.BackendReady` is now a coroutine
- type hinting for Task attributes
author | Goffi <goffi@goffi.org> |
---|---|
date | Sat, 25 Apr 2020 16:08:55 +0200 |
parents | f511f8fbbf8a |
children | 4385a75e3962 |
rev | line source |
---|---|
1216 | 1 #!/usr/bin/env python3 |
1239 | 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 | 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 | 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 | 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 | 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 | 34 path = interest.get('path', '') |
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 | 38 "photos_album", |
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 | 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 |
7b8e123ba043
pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents:
1124
diff
changeset
|
46 |
7b8e123ba043
pages (photos): retrieve photo albums from list of interests, and fill "interests" template data.
Goffi <goffi@goffi.org>
parents:
1124
diff
changeset
|
47 @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
|
48 def on_data_post(self, request): |
1216 | 49 jid_ = self.getPostedData(request, "jid") |
50 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
|
51 self.HTTPRedirect(request, url) |