def insert (self, plugin):
self.sons.append(plugin)
+ def render_env (self, request):
+ # this is designed so as to support a template like
+ # {% for son in sons %} {{ son.rendered }} ...
+ return { 'sons':
+ [ { 'rendered': son.render(request),
+ 'title': son.title(),
+ 'uuid': son.uuid}
+ for son in self.sons ]}
+
+ # 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 render_env above would son.active=True
def template (self):
return "tabs.html"
- def render_env (self, request):
- env = {}
- sons_rendered = [ son.render(request) for son in self.sons ]
- sons_titles = [ son.title() for son in self.sons ]
- ids = range (len(self.sons))
- # for now we don't have a title to pass
- sons = [ { 'id':id, 'rendered':rendered, 'title':title }
- for id,rendered,title in zip (ids, sons_rendered, sons_titles) ]
- env['sons']=sons
- return env
{# could try to set class='active' on the one we want to highlight #}
<ul class="nav nav-tabs" id='{{ uuid }}'>
{% for son in sons %}
-<li> <a href="#{{ son.uuid }}" data-toggle="tab"> son.title </a> </li>
+<li> <a href="#{{ son.uuid }}" data-toggle="tab">{{ son.title }}</a> </li>
{% endfor %}
-</ul>
+</ul><!--nav-tabs-->
<div class="tab-content">
{% for son in sons %}
<div class="tab-pane fade in" id="{{ son.uuid }}">
{{ son.rendered }}
-</div>
+</div><!--tab-pane-->
{% endfor %}
-</div>
+</div><!--tab-content-->
def title (self) : return "VLayout title"
def template (self): return "verticallayout.html"
-
- def render_env (self, request):
- env = {}
- sons_rendered = [ son.render(request) for son in self.sons ]
- sons_titles = [ son.title() for son in self.sons ]
- ids = range (len(self.sons))
- # for now we don't have a title to pass
- sons = [ { 'id':id, 'rendered':rendered, 'title':title }
- for id,rendered,title in zip (ids, sons_rendered, sons_titles) ]
- env['sons']=sons
- return env
-