From 096f885a7087ee719401a8d4afdc1ec335bbd007 Mon Sep 17 00:00:00 2001 From: Stephen Burrows Date: Wed, 30 Mar 2011 15:44:15 -0400 Subject: [PATCH] Resolved issue #120 by removing detection of containers which would not be rendered. --- models/pages.py | 21 ++++++++++----------- 1 file changed, 10 insertions(+), 11 deletions(-) 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: -- 2.20.1