templatetags: add template tag to render a blurp block in a template

Blurp blocks doing things with placholders or cms-plugin instances will
not work.
This commit is contained in:
Benjamin Dauvergne 2014-07-01 16:36:17 +02:00
parent 1c326dc72b
commit 8a59512d08
2 changed files with 27 additions and 0 deletions

View File

@ -85,6 +85,7 @@ setup(name="django-cmsplugin-blurp",
packages=find_packages('src'),
install_requires=[
'django>1.5',
'django-classy-tags',
'django-cms>3',
],
package_dir={

View File

@ -0,0 +1,26 @@
from django import template
from classytags.arguments import Argument
from classytags.core import Options, Tag
from .. import utils
register = template.Library()
class RenderBlurp(Tag):
name = 'render_blurp'
options = Options(
Argument('name', resolve=False),
)
def render_tag(self, context, name):
renderer = utils.resolve_renderer(name)
if not renderer:
return ''
template = renderer.render_template()
context = renderer.render(context, None, None)
if not hasattr(template, 'render'):
template = template.Template(template)
return template.render(context)
register.tag(RenderBlurp)