I think there is one {{pass}} missing for the else: Richard
On Thu, May 31, 2012 at 2:57 AM, Annet <anneve...@googlemail.com> wrote: > In a view site/menu.html I have the following code to generate a menu with > drop down menus. > > <div class="nav-collapse"> > <ul class="nav"> > {{for _name,_active,_link in session.site_menu:}} > {{if session['%sDropdown' % _name]:}} > <li class="dropdown" {{if _active:}} class="active" {{pass}}> > <a href="" class="dropdown-toggle" > data-toggle="dropdown">{{=_name}} > <b class="caret"></b></a> > <ul class="dropdown-menu"> > {{for _name,_active,_link in session['%sDropdown' % _name]:}} > <li {{if _active:}} class="active" {{pass}}> > <a href="{{=_link}}">{{=_name}}</a> > </li> > {{pass}} > <ul> > </li> > {{else:}} > <li {{if _active:}} class="active" {{pass}}> > <a href="{{=_link}}">{{=_name}}</a> > </li> > {{pass}} > {{pass}} > </ul> > </div><!--/.nav-collapse --> > > > Whether or not a menu item has a drop down menu depends on database > queries stored in session: > > session.site_menu=[ > ['Home',request.controller=='site' and > request.function=='index',URL('site','index',args=session.id)]] > if session.whq: > > session.site_menu.append(['Whq',request.controller=='whq',URL('whq','index',args= > session.id)]) > session.WhqDropdown=[] > if session.whq.who_we_are: > session.WhqDropdown.append(['Wie we > zijn',request.function=='whoWeAre',\ > URL('whq','whoWeAre',args=session.id)]) > if session.whq.what_we_do: > session.WhqDropdown.append(['Wat we > doen',request.function=='whatWeDo',\ > URL('whq','whatWeDo',args=session.id)]) > if session.whq.how_we_work: > session.WhqDropdown.append(['Hoe we > werken',request.function=='howWeWork',\ > URL('whq','howWeWork',args=session.id)]) > if session.whq.where_we_are: > session.WhqDropdown.append(['Waar we > zitten',request.function=='whereWeAre',\ > URL('whq','whereWeAre',args=session.id)]) > if session.cal: > > session.site_menu.append(['Agenda',request.controller=='calendar',URL('calendar','index',args= > session.id)]) > session.AgendaDropdown=[] > if session.cal.opening_hours: > > session.AgendaDropdown.append(['Openingstijden',request.function=='openingHours',\ > URL('calendar','openingHours',args=session.id)]) > if session.cal.event_list: > session.AgendaDropdown.append(['Event > list',request.function=='eventList',\ > URL('calendar','eventList',args=session.id)]) > if session.cal.timetable: > > session.AgendaDropdown.append(['Lesrooster',request.function=='timetable',\ > URL('calendar','timetable',args=session.id)]) > if session.cal.course_table: > > session.AgendaDropdown.append(['Cursusrooster',request.function=='courseTable',\ > URL('calendar','courseTable',args=session.id)]) > return None > > What the code in the view should generate is: > > <ul class="nav"> > <li class="active"> > <a>Home</a> > </li> > <li class="dropdown"> > <a>Whq</a> > <ul class="dropdown-menu"></ul> > </li> > <li class=""dropdown"> > <a>Agenda</a> > <ul class="dropdown-menu"></ul> > </li> > <ul> > > > What it does generate is: > > <ul class="nav"> > <li class="active"> > <a>Home</a> > </li> > <li class="dropdown"> > <a>Whq</a> > <ul class="dropdown-menu"></ul> > <li></li> > <li></li> > <li></li> > <li></li> > <ul> ## ul with no class name > <li class="dropdown"> > <a>Agenda</a> > <ul class="dropdown-menu></ul> > <li></li> > <li></li> > <li></li> > <li></li> > <ul></ul> ## empty ul > </li> > </ul> > </li> > </ul> > > There's obviously something wrong with the logic in the view but I don't > see what's wrong. > > Annet. >