Renderer returning data as dict with slugs as keys (#6870)

This commit is contained in:
Serghei Mihai 2015-03-31 20:00:09 +02:00
parent d1ddf7b5d6
commit bf976e8ad9
1 changed files with 19 additions and 0 deletions

View File

@ -16,6 +16,11 @@ from . import signature, template
log = logging.getLogger(__name__)
try:
from collections import OrderedDict
except ImportError:
OrderedDict = dict
class Renderer(template.TemplateRenderer):
'''Data source renderer the expected configuration looks like
@ -105,6 +110,20 @@ class Renderer(template.TemplateRenderer):
context[slug] = source
return super(Renderer, self).render(context)
class DictRenderer(Renderer):
"""
Aggregates all data from the sources into a dict and expose it to the
template with the name of its slug
"""
def render(self, context):
context = super(Renderer, self).render(context)
context[self.slug] = OrderedDict()
for slug, data in self.get_sources(context):
context[self.slug][slug] = data
return context
class Data(object):
'''Encapsulate data from a source'''