Mercurial > libervia-backend
comparison sat/tools/config.py @ 2671:0fa217fafabf
tools (common/template), jp: refactoring to handle multiple sites:
- site can now be specified in template header before theme, for instance: (some_site/some_theme)path/to/template.ext
- absolute template paths are now implemented, but Renderer must be instanciated with trusted to True for security reason (it's the case for jp)
- a new "front_url_filter" callable can be given to Renderer, which will convert template path to URL seen by end-user (default to real path).
- the "front_url_filter" can be used in templates with… "front_url" filter
- template_data is a new named tuple available in templates, which give site, theme and template relative URL
- search order is site/theme, site/default_theme, and default/default_theme where default link to sat_pubsub templates
- when loading CSS files, files with _noscript suffixes are now loaded, and used when javascript is not available
- "styles_extra.css" is also loaded before "styles.css", useful when a theme want to reuse default style, and just override some rules
- new site can be specified in sat.conf [DEFAULT] section, using sites_path_public_dict or sites_path_private_dict (where sites_path_private_dict won't be used in public frontends, like Libervia)
- "private" argument of Renderer tells the renderer to load private sites or not
- templates are now loaded from "templates" subdirectory, to differenciate them from other data like i18n
- jp template output has been updated to handle those changes, and to manage absolute templates
author | Goffi <goffi@goffi.org> |
---|---|
date | Mon, 10 Sep 2018 08:58:18 +0200 |
parents | 56f94936df1e |
children | 003b8b4b56a7 |
comparison
equal
deleted
inserted
replaced
2670:ef93fcbaa749 | 2671:0fa217fafabf |
---|---|
45 @param silent (boolean): toggle logging output (must be True when called from sat.sh) | 45 @param silent (boolean): toggle logging output (must be True when called from sat.sh) |
46 """ | 46 """ |
47 config = SafeConfigParser() | 47 config = SafeConfigParser() |
48 target_file = None | 48 target_file = None |
49 for file_ in C.CONFIG_FILES[::-1]: | 49 for file_ in C.CONFIG_FILES[::-1]: |
50 # we will eventually update the existing file with the highest priority, if it's a user personal file... | 50 # we will eventually update the existing file with the highest priority, |
51 # if it's a user personal file... | |
51 if not silent: | 52 if not silent: |
52 log.debug(_(u"Testing file %s") % file_) | 53 log.debug(_(u"Testing file %s") % file_) |
53 if os.path.isfile(file_): | 54 if os.path.isfile(file_): |
54 if file_.startswith(os.path.expanduser("~")): | 55 if file_.startswith(os.path.expanduser("~")): |
55 config.read([file_]) | 56 config.read([file_]) |
64 with open(target_file, "wb") as configfile: | 65 with open(target_file, "wb") as configfile: |
65 config.write(configfile) # for the next time that user launches sat | 66 config.write(configfile) # for the next time that user launches sat |
66 if not silent: | 67 if not silent: |
67 if option in ("passphrase",): # list here the options storing a password | 68 if option in ("passphrase",): # list here the options storing a password |
68 value = "******" | 69 value = "******" |
69 log.warning( | 70 log.warning(_(u"Config auto-update: {option} set to {value} in the file " |
70 _( | 71 u"{config_file}.").format(option=option, value=value, |
71 u"Config auto-update: %(option)s set to %(value)s in the file %(config_file)s" | 72 config_file=target_file)) |
72 ) | |
73 % {"option": option, "value": value, "config_file": target_file} | |
74 ) | |
75 | 73 |
76 | 74 |
77 def parseMainConf(): | 75 def parseMainConf(): |
78 """look for main .ini configuration file, and parse it""" | 76 """look for main .ini configuration file, and parse it""" |
79 config = SafeConfigParser(defaults=C.DEFAULT_CONFIG) | 77 config = SafeConfigParser(defaults=C.DEFAULT_CONFIG) |