X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/11f1c387f944adf710f7fa4614004f0ef9fda29b..22c4e979b5ad061e448318310fddc4bb8fc56465:/templatetags/containers.py diff --git a/templatetags/containers.py b/templatetags/containers.py index 92e126e..8bb0c6b 100644 --- a/templatetags/containers.py +++ b/templatetags/containers.py @@ -18,6 +18,8 @@ class ContainerNode(template.Node): content = settings.TEMPLATE_STRING_IF_INVALID if 'page' in context: container_content = self.get_container_content(context) + else: + container_content = None if self.as_var: context[self.as_var] = container_content @@ -31,24 +33,29 @@ class ContainerNode(template.Node): def get_container_content(self, context): page = context['page'] if self.references: + # Then it's a content reference. try: contentreference = page.contentreferences.get(name__exact=self.name, content_type=self.references) content = contentreference.content except ObjectDoesNotExist: content = '' else: + # Otherwise it's a contentlet. try: contentlet = page.contentlets.get(name__exact=self.name) - if contentlet.dynamic: + if '{%' in contentlet.content: try: - content = mark_safe(template.Template(contentlet.content, name=contentlet.name).render(context)) + content = template.Template(contentlet.content, name=contentlet.name).render(context) except template.TemplateSyntaxError, error: if settings.DEBUG: content = ('[Error parsing contentlet \'%s\': %s]' % (self.name, error)) + else: + content = settings.TEMPLATE_STRING_IF_INVALID else: content = contentlet.content except ObjectDoesNotExist: - content = '' + content = settings.TEMPLATE_STRING_IF_INVALID + content = mark_safe(content) return content