From 6f1da5d02a19bade0d15bcd685631edba3498326 Mon Sep 17 00:00:00 2001 From: Serghei Mihai Date: Tue, 7 Apr 2015 19:02:30 +0200 Subject: [PATCH] data renderer treating its sources urls as templates --- src/cmsplugin_blurp/renderers/data_source.py | 15 +++++++++++++++ 1 file changed, 15 insertions(+) diff --git a/src/cmsplugin_blurp/renderers/data_source.py b/src/cmsplugin_blurp/renderers/data_source.py index fdb3d3b..8b6d88c 100644 --- a/src/cmsplugin_blurp/renderers/data_source.py +++ b/src/cmsplugin_blurp/renderers/data_source.py @@ -111,6 +111,21 @@ class Renderer(template.TemplateRenderer): return super(Renderer, self).render(context) +class TemplateSourcesRenderer(Renderer): + """ + Interprets its sources urls as django templates and renders them with + current context + """ + + def get_sources(self, context): + for source in self.config['sources']: + slug = '{0}.{1}'.format(self.slug, source['slug']) + source['url'] = template.Template(source['url']).render(context) + result = source.get('default', {}) + result['data'] = Data(slug, self.config, source, context) + yield source['slug'], result + + class DictRenderer(Renderer): """ Aggregates all data from the sources into a dict and expose it to the