git.ithinksw.org
/
philo.git
/ blobdiff
commit
grep
author
committer
pickaxe
?
search:
re
summary
|
shortlog
|
log
|
commit
|
commitdiff
|
tree
raw
|
inline
| side by side
Merge branch 'julian'
[philo.git]
/
models
/
pages.py
diff --git
a/models/pages.py
b/models/pages.py
index
b7b43c5
..
86db88f
100644
(file)
--- 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):
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.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:
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)
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
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
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:
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:
loaded_template = getattr(extends, LOADED_TEMPLATE_ATTR)
nodelists.extend(build_extension_tree(loaded_template.nodelist))
else: