modify the signature of Renderer interface's render() method

This commit is contained in:
Benjamin Dauvergne 2014-07-01 23:28:05 +02:00
parent 455a162057
commit 0d6ab6fbbd
8 changed files with 12 additions and 16 deletions

6
README
View File

@ -17,7 +17,7 @@ A renderer is a class with the following interface::
def __init__(self, slug, config):
pass
def render(self, context, instance, placeholder):
def render(self, context):
'''Return the context to render the template'''
pass
@ -279,7 +279,3 @@ You can render a block in any template using the template tag ``render_blurp``:
{% load blurp_tags %}
{% render_blurp "student_table" %}
Beware that it will not work with renderes doing any access to the
``placeholder`` or ``instance`` parameter of their render method as those
object are not available in a random template.

View File

@ -17,7 +17,7 @@ class BlurpPlugin(CMSPluginBase):
ajax = context.get('ajaxy', True) and renderer.config.get('ajax', False)
if not ajax:
self.render_template = renderer.render_template()
return renderer.render(context, instance, placeholder)
return renderer.render(context)
else:
request = context.get('request')
context['plugin_id'] = instance.id

View File

@ -32,7 +32,7 @@ class BaseRenderer(object):
yield 'name key is missing'
@abc.abstractmethod
def render(self, context, instance, placeholder):
def render(self, context):
'''Return the context to render the template'''
pass

View File

@ -81,7 +81,7 @@ class Renderer(template.TemplateRenderer):
data = Data(slug, self.config, source, context)
yield source['slug'], data
def render(self, context, instance, placeholder):
def render(self, context):
for slug, source in self.get_sources(context):
context[slug] = source
return context

View File

@ -15,7 +15,7 @@ class Renderer(template.Renderer):
poolclass=NullPool, **self.config.get('kwargs', {}))
self.views = self.config['views']
def render(self, context, instance, placeholder):
def render(self, context):
for view in self.views:
query = view['query']
bindparams = []

View File

@ -3,6 +3,6 @@ from .template import TemplateRenderer
class Renderer(TemplateRenderer):
'''Directly pass the config object to the template'''
def render(self, context, instance, placeholder):
def render(self, context):
context.update(self.config)
return context

View File

@ -19,7 +19,7 @@ class RenderBlurp(Tag):
if not renderer:
return ''
template = renderer.render_template()
context = renderer.render(context, None, None)
context = renderer.render(context)
if not hasattr(template, 'render'):
template = template.Template(template)
return template.render(context)

View File

@ -46,7 +46,7 @@ class RendererTestCase(TestCase):
def test_static_renderer(self):
r = utils.resolve_renderer('static')
self.assertIsNotNone(r)
c = r.render(Context(), None, None)
c = r.render(Context())
self.assertTrue(c.has_key('content'))
self.assertTrue(c.has_key('template'))
self.assertEqual(c['content'], 'xxx')
@ -54,27 +54,27 @@ class RendererTestCase(TestCase):
def test_data_source_renderer_raw(self):
r = utils.resolve_renderer('raw')
self.assertIsNotNone(r)
c = r.render(Context(), None, None)
c = r.render(Context())
self.assertTrue(c.has_key('raw'))
self.assertEqual(unicode(c['raw']()), 'xxx')
def test_data_source_renderer_json(self):
r = utils.resolve_renderer('json')
self.assertIsNotNone(r)
c = r.render(Context(), None, None)
c = r.render(Context())
self.assertTrue(c.has_key('json'))
self.assertEqual(c['json'](), {'xxx':'yyy'})
def test_data_source_renderer_rss(self):
r = utils.resolve_renderer('rss')
self.assertIsNotNone(r)
c = r.render(Context(), None, None)
c = r.render(Context())
self.assertTrue(c.has_key('rss'))
self.assertIn('feed', c['rss']())
def test_data_source_renderer_xml(self):
r = utils.resolve_renderer('xml')
self.assertIsNotNone(r)
c = r.render(Context(), None, None)
c = r.render(Context())
self.assertTrue(c.has_key('xml'))
self.assertEqual(c['xml']().tag, 'html')