agregar un atributo "raro" a un elemento de grid (data-toggle="modal")

489 views
Skip to first unread message

nicolás rosbaco

unread,
Mar 13, 2013, 11:58:13 PM3/13/13
to web2py-...@googlegroups.com
Hola gente... descubri (muy tarde verdaderamente) que web2py viene integrado con el "framework" bootstrap (css/javascript)

http://twitter.github.com/bootstrap/javascript.html#modals

estaba leyendo en el enlace que proveo (ahí arriba) y quería aprovechar la funcionalidad que se muestra....

estoy usando sqlform.grid y quiero agregar un boton que haga un par de cosas y se muestre de ese modo...

mi problema es (creo yo) que debo agregar el atributo data-toggle al elemento del grid...

hago esto pero falla (no me deja usar el guión medio)

links = [
           
            {'header':XML(CENTER('videos')), \
            'body': lambda row: A('(%(videos)d) videos' %dict(videos=contarVideos(row.videos)),\
            _href=URL(request.application,'colaborador','ver_videos',args=convierteParametro(row.videos)),\
            _class='btn', _role='button', _data-toggle='modal',_target='blank')},\


¿alguna sugerencia??

muchas gracias
--
"La multitud no odia, odian las minorías, porque conquistar derechos provoca alegría, mientras perder privilegios provoca rencor"
Arturo Jauretche

Alan Etkin

unread,
Mar 14, 2013, 7:07:39 AM3/14/13
to web2py-...@googlegroups.com
hago esto pero falla (no me deja usar el guión medio)
...
¿alguna sugerencia??

muchas gracias

Es una limitación de la sintaxis de Python. Los nombres no pueden llevar guión. Esto en cambio tiene que funcionar:

A(..., **{"_data-toggle": "modal"})
 

nicolás rosbaco

unread,
Mar 14, 2013, 9:21:35 AM3/14/13
to web2py-...@googlegroups.com
Hola Alán.... gracias por la respuesta: Te comento, no anda de ese modo:

{'header':XML(CENTER('videos')), \
            'body': lambda row: A('(%(videos)d) videos' %dict(videos=contarVideos(row.videos)),\
            _href=URL(request.application,'colaborador','ver_videos',args=convierteParametro(row.videos)),\
            _class='btn', _role='button', {"_data-toggle":"modal"},_target='blank')},\


... seguimos probando.
gracias de nuevo

--
Has recibido este mensaje porque estás suscrito al grupo "web2py-usuarios" de Grupos de Google.
Para anular la suscripción a este grupo y dejar de recibir sus correos electrónicos, envía un correo electrónico a web2py-usuari...@googlegroups.com.
Para obtener más opciones, visita https://groups.google.com/groups/opt_out.
 
 

Alan Etkin

unread,
Mar 14, 2013, 1:01:30 PM3/14/13
to web2py-...@googlegroups.com
Hola Alán.... gracias por la respuesta: Te comento, no anda de ese modo:

{'header':XML(CENTER('videos')), \
            'body': lambda row: A('(%(videos)d) videos' %dict(videos=contarVideos(row.videos)),\
            _href=URL(request.application,'colaborador','ver_videos',args=convierteParametro(row.videos)),\
            _class='btn', _role='button', {"_data-toggle":"modal"},_target='blank')},\

Para que admita el unpackeado de argumentos tenés que ubicar el diccionario como último elemento y usar la notación **dict

A(a, b, c=d, **{"_data-toggle": <valor>}) # el diccionario que contiene el data-toggle va último
 

emp2web

unread,
Mar 14, 2013, 2:16:50 PM3/14/13
to web2py-...@googlegroups.com
Hola Nicolas para que te funcione debes hacer lo siguiente, te lo explico con un ejemplo:

En el controlador default.py

links = [{'header':XML(CENTER('videos')),'body': lambda row: A('sfsdf',\
    _href='#', _class='btn', _role='button',\
    **{"_data-toggle":"modal", "_data-target": "#myModal"} ) }]

form = SQLFORM.grid(db.auth_user, links=links)
return dict(message=T('Hello World'),form=form)

En la vista controlador/index,html

<div id='myModal' class="modal hide fade" tabindex="-1" role="dialog" aria-labelledby="myModalLabel" aria-hidden="true">
  <div class="modal-body">
    <p>Aca biene el texto</p>
  </div>
</div>


Espero que te funcione

nicolás rosbaco

unread,
Mar 14, 2013, 6:09:09 PM3/14/13
to web2py-...@googlegroups.com

Mucha gracias a los dos.
Funciona bárbaro!!!!

---
desde el celu, y posiblemente apurado. sepa disculpar errores

--
Reply all
Reply to author
Forward
0 new messages