diff --git a/src/cmsplugin_blurp/renderers/data_source.py b/src/cmsplugin_blurp/renderers/data_source.py index 8734ca2..fdb3d3b 100644 --- a/src/cmsplugin_blurp/renderers/data_source.py +++ b/src/cmsplugin_blurp/renderers/data_source.py @@ -124,6 +124,20 @@ class DictRenderer(Renderer): return context +class DictRendererWithDefault(DictRenderer): + """ + Same as DictRender but each dict item contains data under "data" key and + the config defaults unde "default" key + """ + + def get_sources(self, context): + for source in self.config['sources']: + slug = '{0}.{1}'.format(self.slug, source['slug']) + result = source.get('default', {}) + result['data'] = Data(slug, self.config, source, context) + yield source['slug'], result + + class Data(object): '''Encapsulate data from a source'''