From: Stephen Burrows Date: Wed, 30 Mar 2011 19:44:15 +0000 (-0400) Subject: Resolved issue #120 by removing detection of containers which would not be rendered. X-Git-Tag: philo-0.9~16^2~2 X-Git-Url: http://git.ithinksw.org/philo.git/commitdiff_plain/096f885a7087ee719401a8d4afdc1ec335bbd007 Resolved issue #120 by removing detection of containers which would not be rendered. --- diff --git a/models/pages.py b/models/pages.py index b7b43c5..86db88f 100644 --- a/models/pages.py +++ b/models/pages.py @@ -18,16 +18,24 @@ from philo.signals import page_about_to_render_to_string, page_finished_renderin class LazyContainerFinder(object): - def __init__(self, nodes): + def __init__(self, nodes, extends=False): self.nodes = nodes self.initialized = False self.contentlet_specs = set() self.contentreference_specs = SortedDict() self.blocks = {} self.block_super = False + self.extends = extends def process(self, nodelist): for node in nodelist: + if self.extends: + if isinstance(node, BlockNode): + self.blocks[node.name] = block = LazyContainerFinder(node.nodelist) + block.initialize() + self.blocks.update(block.blocks) + continue + if isinstance(node, ContainerNode): if not node.references: self.contentlet_specs.add(node.name) @@ -36,15 +44,6 @@ class LazyContainerFinder(object): self.contentreference_specs[node.name] = node.references continue - if isinstance(node, BlockNode): - self.blocks[node.name] = block = LazyContainerFinder(node.nodelist) - block.initialize() - self.blocks.update(block.blocks) - continue - - if isinstance(node, ExtendsNode): - continue - if isinstance(node, VariableNode): if node.filter_expression.var.lookups == (u'block', u'super'): self.block_super = True @@ -97,7 +96,7 @@ class Template(TreeModel): if extends: if extends.nodelist: - nodelists.append(LazyContainerFinder(extends.nodelist)) + nodelists.append(LazyContainerFinder(extends.nodelist, extends=True)) loaded_template = getattr(extends, LOADED_TEMPLATE_ATTR) nodelists.extend(build_extension_tree(loaded_template.nodelist)) else: