Renderer returning data as dict with slugs as keys (#6870)
This commit is contained in:
parent
d1ddf7b5d6
commit
bf976e8ad9
|
@ -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'''
|
||||
|
||||
|
|
Reference in New Issue