Take a look to this code.
#list slices who own
def my_slices():
user_id = session.auth.user.id
slices = db(db.slices.user_id == user_id).select(db.slices.id,
db.slices.title)
myslices = [
(T('Add slice'), False, A(T('Add slice'), \
_title=T("Upload a slice"), \
_href=URL('default','upload')))
]
if slices:
for slice in slices:
myslices.append(('%s'%slice.title, False, A('%s'%slice.title, \
_title=T("Edit a slice"), \
_href=URL('default','edit',args=[
slice.id]))))
return myslices
response.menu = [
(T('My slices'), False, A(T('My slices'),_href='javascript: void(0);'),
my_slices())
]
2011/3/21 annet <[email protected]>
> In db.py I defined the following table:
>
> db.define_table('cardfunction',
>
> Field('company_id',db.company,default='',notnull=True,unique=True),
> Field('home',type='boolean',default=True),
> Field('logo',type='boolean',default=False),
> Field('tagline',type='boolean',default=False),
> Field('image',type='boolean',default=False),
> Field('css',type='boolean',default=False),
> Field('customcss',type='boolean',default=False),
> Field('keywords',type='boolean',default=False),
> migrate=False)
>
> Based on this table I would like to generate a menu. In a controller I
> got the following code:
>
> if not session.id or session.id!=auth.user.bedrijf_id:
> session.id=auth.user.bedrijf_id
>
> session.row=db(db.cardfunction.bedrijf_id==session.id
> ).select(db.cardfunction.ALL)
> session.card_menu=[
> ['Home',request.function=='index',URL(r=request,f='index')],
> ['Logo',request.function=='logo',URL(r=request,f='logo')],
> ...
>
> ['Keywords',request.function=='keywords',URL(r=request,f='keywords')]]
>
>
> In the view I would like to generate a menu, in which, if the
> session.row.field value is true a link is being rendered and if
> session.row.field is false a <h4></h4> element is being rendered. What
> I had in mind:
>
> <ul>
> {{for _name,_active,_link in session.card_menu:}}
> {{if session.row.home:}}
> <li>
> <a {{if _active:}} class="active" {{pass}}
> href="{{=_link}}">{{=_name}}</a>
> </li>
> {{else:}}
> <li>
> {{=_name}}
> </li>
> {{pass}}
> ....
> {{pass}}
> </ul>
>
> ... doesn't work. Besides, if session.row.home: seven times, once for
> every field isn't a very elegant solution either. I hope one of you
> can provide me with a solution.
>
> Kind regards,
>
> Annet.
--
Pablo Martín Mulone ([email protected])
http://www.tecnodoc.com.ar/
My blog: http://martin.tecnodoc.com.ar
Expert4Solution Profile:
http://www.experts4solutions.com/e4s/default/expert/6