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.
>

Reply via email to