class Composite (Plugin):
- def __init__ (self, sons=[], *args, **kwds):
+ def __init__ (self, sons=[], active=None, *args, **kwds):
Plugin.__init__ (self, *args, **kwds)
self.sons=sons
+ self.active=active
def insert (self, plugin):
self.sons.append(plugin)
+ # xxx currently there is no guarantee that exactly one son will be active
def template_env (self, request):
# this is designed so as to support a template like
# {% for son in sons %} {{ son.rendered }} ...
+ def is_active (son):
+ print 'comparing >%s< and >%s<'%(son.name,self.active)
+ return son.name==self.active
ranks=range(len(self.sons))
- return { 'sons':
+ env = { 'sons':
[ { 'rendered': son.render(request),
+ 'rank': rank,
+ 'active': is_active(son),
+ # this should probably come from son._settings..
'title': son.title,
+ 'name': son.name,
'uuid': son.uuid,
'classname': son.classname,
- 'rank': rank}
+ }
for (son,rank) in zip(self.sons,ranks) ]}
+ return env
- # xxx need a way to select an active son, like e.g.
- # Composite (active='some string')
- # and we could then try to find that string in either title or uuid or some other place
- # in which case the corresponding 'son' entry in template_env above would son.active=True
# . [ 'SliceList', 'TabbedView' ] : to debug these classes
# . True : to debug all plugin
-DEBUG= [ 'SliceList' ]
+DEBUG= [ 'Tabs' ]
class Plugin:
print "%s.render_content: BEG --------------------"%self.classname
print "template=%s"%template
print "env.keys=%s"%env.keys()
- print "env=%s"%env
- print result
+ #print "env=%s"%env
+ #print result
print "%s.render_content: END --------------------"%self.classname
return result
foo='the value for foo',
with_datatables=True),
Tabs (title='Sample Tabs',name='tabs1',
+ active='raw1',
sons = [ Raw (title='a raw plugin',name='raw1',
+ hidable=False,
html= 3*lorem_p),
SliceList(title='a slice list',name='slicelist-main',
+ hidable=False,
list=hard_wired_slice_names),
- Raw (title='raw title',name='raw2',html=lorem) ]),
+ Raw (title='raw title',name='raw2',
+ hidable=False,html=lorem) ]),
SimpleList (title='SimpleList with slice names',
name='simplelist2',
list=hard_wired_slice_names,