Hello
I have a SQLFORM.grid, where I wanted some buttons to do different things,
and to look different based on the status of the entities being reported in
the grid.
Here's what I did for one of them:
links = [
dict(header=T('Running'),body=lambda row: testslot(row.
currentslot)),
dict(header=T('Control'),body=
lambda row:
A(
SPAN(_class=syss.iconClass[row.currentslot])
,syss.text[row.currentslot]
,_class=syss.buttonClass[row.currentslot]
,_title=syss.text[row.currentslot]
,_href=URL("dynamic","startstop",
args=[row.id,syss.url[row.currentslot], syss.text[row.
currentslot], db.e5system, row.currentslot])
)
),
So the button can look red or orange, or green, because I populate some
lists and use the values ,
syss.text is the text for the button
syss.buttonClass is the class to be used and so on. I call this at the
start:
syss=listeningSystems()
syss.refresh()
My syss object then has these instance lists I can use to get the statuses
of my rows. It ends up looking like:
So that's great, I get a start button for stopped systems, and a stop
button for started ones.
Problem seems to me though, it's not very scalable or readable.
Is there a better way for me to do this? To make a decision, on my next
button, it needs the 'id' from the table, and make some decisions.
Ideally, I'd like something similar to this:
dict(header=T('State'),body=
lambda row:
A(
SPAN(_class="icon stop icon-stop glyphicon glyphicon-stop")
fixstatus(row.id)
)
)
where the systemStatus() def would fill in the middle bit, but I can't get
that to work:
def fixstatus(sys):
return ',"Unfinished",_class="button btn btn-warning",_title="Unf
Title",_href=URL("dynamic","systemStatus",args={0})'.format(sys)
Could I return the whole thing from A( to close ) from a function?
I tried that, but I just got a table cell with the actual text
A(SPAN(_class etc ... ) in it.
Am I expecting too much from the grid?
I like how it looks with the button I have coded right now, but it does
seem unwieldy, there must be a better way!
Thanks group
p.s. Just a thanks to web2py developers, this is a top product, really
enjoying working with it.
--
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
---
You received this message because you are subscribed to the Google Groups
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email
to [email protected].
For more options, visit https://groups.google.com/d/optout.