annotate libervia/server/pages_tools.py @ 1301:ff44f822bfdd

browser (photos): albums can now be deleted: when albums are deleted, there are removed from list of interest, and all photos inside are also deleted. Doesn't check permissions before deletion yet, so the button is always present even when it may fail.
author Goffi <goffi@goffi.org>
date Fri, 19 Jun 2020 16:47:51 +0200
parents f511f8fbbf8a
children 04e7dd6b6f4d
Ignore whitespace changes - Everywhere: Within whitespace: At end of lines:
rev   line source
1239
f511f8fbbf8a fixed shebangs
Goffi <goffi@goffi.org>
parents: 1237
diff changeset
1 #!/usr/bin/env python3
f511f8fbbf8a fixed shebangs
Goffi <goffi@goffi.org>
parents: 1237
diff changeset
2
1068
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
3
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
4 # Libervia: a Salut à Toi frontend
1237
987595a254b0 dates update
Goffi <goffi@goffi.org>
parents: 1216
diff changeset
5 # Copyright (C) 2011-2020 Jérôme Poisson <goffi@goffi.org>
1068
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
6
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
7 # This program is free software: you can redistribute it and/or modify
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
8 # it under the terms of the GNU Affero General Public License as published by
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
9 # the Free Software Foundation, either version 3 of the License, or
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
10 # (at your option) any later version.
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
11
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
12 # This program is distributed in the hope that it will be useful,
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
13 # but WITHOUT ANY WARRANTY; without even the implied warranty of
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
14 # MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
15 # GNU Affero General Public License for more details.
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
16
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
17 # You should have received a copy of the GNU Affero General Public License
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
18 # along with this program. If not, see <http://www.gnu.org/licenses/>.
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
19
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
20 """Helper methods for common operations on pages"""
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
21
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
22 from sat.core.i18n import _
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
23 from libervia.server.constants import Const as C
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
24 from twisted.internet import defer
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
25 from sat.core.log import getLogger
1113
cdd389ef97bc server: code style reformatting using black
Goffi <goffi@goffi.org>
parents: 1068
diff changeset
26
1068
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
27 log = getLogger(__name__)
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
28 from sat.tools.common import data_objects
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
29
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
30
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
31 def commentsDataToObjects(comments_data):
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
32 return data_objects.BlogItems(comments_data)
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
33
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
34
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
35 def retrieveComments(self, service, node, profile, pass_exceptions=True):
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
36 """Retrieve comments from server and convert them to data objects
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
37
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
38 @param service(unicode): service holding the comments
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
39 @param node(unicode): node to retrieve
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
40 @param profile(unicode): profile of the user willing to find comments
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
41 @param pass_exceptions(bool): if True bridge exceptions will be ignored but logged
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
42 else exception will be raised
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
43 """
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
44 try:
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1144
diff changeset
45 d = self.host.bridgeCall("mbGet", service, node, C.NO_LIMIT, [], {}, profile)
1068
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
46 except Exception as e:
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
47 if not pass_exceptions:
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
48 raise e
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
49 else:
1113
cdd389ef97bc server: code style reformatting using black
Goffi <goffi@goffi.org>
parents: 1068
diff changeset
50 log.warning(
1216
b2d067339de3 python 3 port:
Goffi <goffi@goffi.org>
parents: 1144
diff changeset
51 _("Can't get comments at {node} (service: {service}): {msg}").format(
1113
cdd389ef97bc server: code style reformatting using black
Goffi <goffi@goffi.org>
parents: 1068
diff changeset
52 service=service, node=node, msg=e
cdd389ef97bc server: code style reformatting using black
Goffi <goffi@goffi.org>
parents: 1068
diff changeset
53 )
cdd389ef97bc server: code style reformatting using black
Goffi <goffi@goffi.org>
parents: 1068
diff changeset
54 )
1068
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
55 return defer.succeed([])
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
56
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
57 d.addCallback(commentsDataToObjects)
5e809a49971c pages: new pages_tools module:
Goffi <goffi@goffi.org>
parents:
diff changeset
58 return d