0
|
1 #!/usr/bin/env python2.7 |
|
2 # -*- coding: utf-8 -*- |
|
3 |
|
4 import os.path |
|
5 from sat.tools.common.template import safe |
|
6 from libervia.server import session_iface |
|
7 |
6
|
8 name = "social_contract" |
|
9 template = "social_contract/social_contract.html" |
0
|
10 social_contracts = {} |
|
11 |
|
12 |
|
13 def prepare_render(self, request): |
|
14 global social_contracts |
|
15 session_data = self.host.getSessionData(request, session_iface.ISATSession) |
|
16 if session_data.locale is None: |
6
|
17 locale = "en" |
0
|
18 else: |
|
19 locale = session_data.locale |
6
|
20 if '_' in locale: |
0
|
21 locale = locale[:locale.find('_')] |
|
22 |
|
23 try: |
|
24 social_contract = social_contracts[locale] |
|
25 except KeyError: |
|
26 # we don't have the document in cache |
|
27 build_path = self.host.getBuildPath(self.vhost_root.site_name) |
|
28 |
6
|
29 if locale == "fr": |
0
|
30 # main social contract is in French, so we don't have suffix in this case |
6
|
31 filename = "CONTRAT_SOCIAL.html" |
0
|
32 else: |
6
|
33 filename = "CONTRAT_SOCIAL_{locale}.html".format(locale=locale) |
0
|
34 |
|
35 filepath = os.path.join(build_path, filename) |
|
36 if not os.path.isfile(filepath): |
|
37 # there is not translation for this locale, we use English one as default |
6
|
38 filename = "CONTRAT_SOCIAL_en.html" |
0
|
39 filepath = os.path.join(build_path, filename) |
|
40 |
|
41 with open(filepath) as f: |
6
|
42 social_contracts[locale] = safe(f.read()) |
0
|
43 |
|
44 social_contract = social_contracts[locale] |
|
45 |
6
|
46 request.template_data["social_contract"] = social_contract |