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:
parent
1c326dc72b
commit
8a59512d08
1
setup.py
1
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={
|
||||
|
|
|
@ -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)
|
Reference in New Issue