El Sun, 19 Feb 2017 22:45:37 -0300
nicolás rosbaco <
anti...@gmail.com> escribió:
> Por si le sirve a alguién más, les comparto como lo resolví (obvio
> que si hay otro modo me gustaría conocerlo):
>
> La idea es, de acuerdo a las categorías registradas (están en una
> tabla de la base de datos) armar una opción de menú que es filtrar
> por categorías (son noticias)
>
> response.menu = []
> ## acá armo dinámicamente la opción de listar por categorías
> listaCategorias = db(db.categorias).select()
> lista = []
> for categoria in listaCategorias:
> texto = (XML(SPAN(categoria.nombre)),False, URL('default',
> 'index',vars=dict(cate=
categoria.id)), [])
> lista.append(texto)
>
> response.menu += [ (CAT(SPAN('Inicio'), False, URL('default',
> 'index'), [])),
> (CAT(SPAN('',_class='glyphicon
> glyphicon-tags'),SPAN(' '),'categorías'), False, '#', lista),
> (CAT(SPAN('',_class='glyphicon
> glyphicon-user'),'¿quiénes somos?'), False, URL('default', 'info'),
> []), (CAT(SPAN('',_class='glyphicon glyphicon-envelope'),'
> contacto'), False, URL('contacto', 'index'), [])
> ]
>
>
>
>
>
> El 15 de febrero de 2017, 23:53, nicolás rosbaco <
anti...@gmail.com>
> escribió:
>
> > Hola compañeros/as, sigo preguntando.
> >
> > Esta vez estoy editando el menú (desde menú.py) con response.menu.
> > Resulta que deseo formar un apartado que sea filtrar por
> > categorías, y las categorías se seleccionan desde una tabla de la
> > base de datos...
> >
> > Con lo cual el menú se crea dinámicamente leyendo la tabla... la
> > verdad no veo como manipular ese diccionario que es el menú (¿Esta
> > bien lo que digo??? es un diccionario?)
> >
> > Bueno compas muchas gracias y me quedo leyendo!!!!
> >
> > Saludos
> >
> >
> >
> >
> >
>
Hola Nico, hace un tiempo tuve que hacer algo parecido y el resultado
fue el siguiente:
# creacion de opciones en forma automatica consultando a la db
productos=[]
servicios=[]
for row in db(
db.productos.id>0).select(orderby=db.productos.nombre):
productos.append(((T(row.nombre), False, URL('web','productos',
args=row.nombre.lower().replace(" ","")), [])))
for row in db(
db.servicios.id>0).select(orderby=db.servicios.nombre):
servicios.append(((T(row.nombre), False, URL('web','servicios',
args=row.nombre.lower().replace(" ", "")), [])))
response.menu = [
(T('Inicio'), False, URL('web','index'), []),
(T('Productos'), False, '#', productos),
(T('Servicios'), False, '#', servicios),
(A(SPAN('Trabaja con nosotros',_class='trabajo'), False, '#', [])),
(A(I(_class='fa fa-envelope-o contacto'), False, '#', [])),
]
Es muy similar a la tuya como veras. A partir de los elementos de las
tablas de productos y servicios creo lo contenidos del menu repectivo.