comparison piecrust/appconfig.py @ 1150:97b1b46cc156

config: Allow tweaking the configuration of default routes.
author Ludovic Chabant <ludovic@chabant.com>
date Sun, 29 Jul 2018 22:52:11 -0700
parents 2323f0788170
children 10520472cc73
comparison
equal deleted inserted replaced
1149:be74ba54a06f 1150:97b1b46cc156
244 blog_cfg = get_default_content_model_for_blog( 244 blog_cfg = get_default_content_model_for_blog(
245 blog_name, is_only_blog, site_values, values, 245 blog_name, is_only_blog, site_values, values,
246 theme_site=self.theme_config) 246 theme_site=self.theme_config)
247 merge_dicts(values, blog_cfg) 247 merge_dicts(values, blog_cfg)
248 248
249 for route in dcm['site']['routes']:
250 values
251
249 # Merge the site config into the result config. 252 # Merge the site config into the result config.
253 _merge_route_configs(values, site_values)
250 merge_dicts(values, site_values) 254 merge_dicts(values, site_values)
251 255
252 def _validateAll(self, values): 256 def _validateAll(self, values):
253 if values is None: 257 if values is None:
254 values = {} 258 values = {}
277 parent_val[parent_key] = val2 281 parent_val[parent_key] = val2
278 282
279 visit_dict(values, _visitor) 283 visit_dict(values, _visitor)
280 284
281 return values 285 return values
286
287
288 def _merge_route_configs(values, from_default):
289 actual_routes = values.get('site', {}).get('routes', [])
290 default_routes = from_default.get('site', {}).get('routes', [])
291 for dr in list(default_routes): # copy because we'll trim it as we go.
292 ar = next((i for i in actual_routes
293 if i.get('source') == dr['source']),
294 None)
295 if ar is not None:
296 merge_dicts(ar, dr)
297 default_routes.remove(dr)
282 298
283 299
284 class _ConfigCacheWriter(object): 300 class _ConfigCacheWriter(object):
285 def __init__(self, cache_dict): 301 def __init__(self, cache_dict):
286 self._cache_dict = cache_dict 302 self._cache_dict = cache_dict