From 8a59512d08d3c3fbe510c5d1cbbd0e71a00be6f3 Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Tue, 1 Jul 2014 16:36:17 +0200 Subject: [PATCH] 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. --- setup.py | 1 + .../templatetags/blurp_tags.py | 26 +++++++++++++++++++ 2 files changed, 27 insertions(+) create mode 100644 src/cmsplugin_blurp/templatetags/blurp_tags.py diff --git a/setup.py b/setup.py index 058c135..5464d37 100755 --- a/setup.py +++ b/setup.py @@ -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={ diff --git a/src/cmsplugin_blurp/templatetags/blurp_tags.py b/src/cmsplugin_blurp/templatetags/blurp_tags.py new file mode 100644 index 0000000..749b725 --- /dev/null +++ b/src/cmsplugin_blurp/templatetags/blurp_tags.py @@ -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)