X-Git-Url: http://git.ithinksw.org/philo.git/blobdiff_plain/fa522c1bbf16351ce4dc32b003733b9447404581..4bf662d52cdef84ebc3eea50213f576a72b30abf:/templatetags/containers.py diff --git a/templatetags/containers.py b/templatetags/containers.py index 25156f2..7ed0bdc 100644 --- a/templatetags/containers.py +++ b/templatetags/containers.py @@ -25,17 +25,20 @@ class ContainerNode(template.Node): self.nodelist_empty = template.NodeList() else: self.nodelist_empty = nodelist_empty - + def render(self, context): content = settings.TEMPLATE_STRING_IF_INVALID if 'page' in context: - container_content = self.get_container_content(context['page']) + container_content = self.get_container_content(context) - if self.nodelist_main is None: - self.nodelist_main - if container_content and self.as_var: + if not self.nodelist_main: + if self.as_var: context[self.as_var] = container_content return '' + + if not container_content: + return '' + return container_content if container_content: @@ -56,7 +59,8 @@ class ContainerNode(template.Node): return '' - def get_container_content(self, page): + def get_container_content(self, context): + page = context['page'] if self.references: try: contentreference = page.contentreferences.get(name__exact=self.name, content_type=self.references) @@ -71,13 +75,14 @@ class ContainerNode(template.Node): content = mark_safe(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) + content = ('[Error parsing contentlet \'%s\': %s]' % (self.name, error)) else: content = contentlet.content except ObjectDoesNotExist: content = '' return content + def do_container(parser, token): """ {% container [[references ] as ] %} @@ -125,5 +130,7 @@ def do_container(parser, token): else: # error raise template.TemplateSyntaxError('"%s" template tag provided without arguments (at least one required)' % tag) + + register.tag('container', do_container) register.tag('blockcontainer', do_container)