actually, you can also define a table that links apply to. this way you
won't get the error, when applying functionality to a wrong table...
links=dict(purchase_order=[
lambda row:(_get_order_details(row)),
lambda row: A('Duplicate',
_class='button', _href=URL('duplicate_po',
args=[row.id])),
lambda row: A('Print', _class='button', _href=
URL('print_all',args=[row.id]))
],
other_table=[
lambda row:(_get_something_else(row)),
],),
On Monday, September 16, 2013 9:42:22 AM UTC-4, Javier Pepe wrote:
>
> You need pass a list of dict
>
> links = [{'header':'', 'body': lambda row:
> A('',_title='Procesar',_class='icon-refresh',_href=URL(c='planilla',
> {'header':'', 'body': lambda row:
> A('',_title='Mail',_class='icon-envelope',_href='index/pedircontadores/%
> {'header':'', 'body': lambda row:
> A('',_title='Estado',_class='icon-ok',callback=URL(c='planilla',f='estad
> {'header':'', 'body': lambda row:
> A('',_title='Control',_class='icon-check',_href=URL(c='planilla',f='pdf/
> {'header':'', 'body': lambda row: A('',_title='Control
> 2',_class='icon-check',_href=URL(c='planilla',f='co
> {'header':'', 'body': lambda row:
> A('',_title='PDF',_class='icon-print',_href=URL(f='pdf/%s/%s' % (row.id,
> {'header':'', 'body': lambda row: A('',_title='PDF
> distribuidor',_class='icon-print',_href=URL(f='pdf/%s/%
> {'header':'', 'body': lambda row:
> A('',_title='Detalle',_class='icon-list',_href=URL(c='detalle',f='index'
> ]
>
>
>
> On Sun, Sep 15, 2013 at 9:31 PM, Alex Glaros <[email protected]<javascript:>
> > wrote:
>
>> What is syntax for TWO or more buttons? I've tried several variations.
>> Would it be two "dict" phrases, or two header phrases separated by commas?
>>
>> One button will call one function, and the other would call a different
>> function.
>>
>> thanks,
>>
>> Alex
>>
>>
>> On Saturday, September 14, 2013 6:56:24 PM UTC-7, Alex Glaros wrote:
>>>
>>> Works perfect Adi and Villas,
>>>
>>> much appreciated.
>>>
>>> Here's the complete code:
>>>
>>> def view_all_suggestions_and_**comments():
>>> query = (db.IdeaComment.ideaID==db.**Idea.id <http://db.Idea.id>) &
>>> (db.IdeaComment.partyID==db.**Party.id <http://db.Party.id>)
>>> grid = SQLFORM.grid(query, ,links = [dict(header='Virtual Field',
>>> body=lambda row: A('Add a comment!',_class="btn btn-mini",
>>> _href=URL('comment_on_a_**suggestion', vars=dict(filter=row.Idea.id))**
>>> ))])
>>> return dict(grid = grid)
>>>
>>> Alex
>>>
>>>
>>> On Saturday, September 14, 2013 6:01:33 PM UTC-7, Adi wrote:
>>>>
>>>> lambda row: A('Complete',
>>>> _class='btn', _id='btn_complete',
>>>> _onclick='return confirm("Complete
>>>> Order %s? (%s %s)")' % (row.id,
>>>>
>>>> row.shipFirstName,
>>>>
>>>> row.shipLastName),
>>>> _href=URL(r=request,f='**
>>>> complete_order',args=[row.id])**,
>>>>
>>>>
>>>>
>>>>
>>>> On Saturday, September 14, 2013 7:41:24 PM UTC-4, Alex Glaros wrote:
>>>>>
>>>>> it works correctly Villas, thanks.
>>>>>
>>>>> how could I turn "Add a comment!" text into a button. Possible syntax
>>>>> ",_class="btn btn-mini"", but where does it go?
>>>>>
>>>>> thanks,
>>>>>
>>>>> Alex
>>>>>
>>>>> On Saturday, September 14, 2013 10:23:00 AM UTC-7, villas wrote:
>>>>>>
>>>>>> Maybe this would work using row.idea.id like this...
>>>>>>
>>>>>> grid = SQLFORM.grid(query,
>>>>>> links = [dict(header='Virtual Field',
>>>>>> body=lambda row: A('Add a comment!', _href=URL('comment_on_a_**
>>>>>> suggestion', vars=dict(filter=row.idea.id <http://row.id/>))**)
>>>>>> )]
>>>>>> )
>>>>>>
>>>>>>
>>>>>> You can also now include "virtual fields" in grids, but I haven't
>>>>>> needed to try that yet.
>>>>>>
>>>>>>
>>>>>>
>>>>>> On Saturday, 14 September 2013 15:23:49 UTC+1, Alex Glaros wrote:
>>>>>>>
>>>>>>> thanks Villas but I receive this error: Row' object has no attribute
>>>>>>> 'id'
>>>>>>>
>>>>>>> perhaps it doesn't know which of the joined "id"s to reference
>>>>>>>
>>>>>>> this work-around works because it let's system know which id it is:
>>>>>>> db.Idea.id.represent = lambda id, r: A('Add a comment!',
>>>>>>> _href=URL('comment_on_a_sugges**tion', vars=dict(filter=id)))
>>>>>>>
>>>>>>> Alex
>>>>>>>
>>>>>>> On Saturday, September 14, 2013 4:56:33 AM UTC-7, villas wrote:
>>>>>>>>
>>>>>>>> Try this...
>>>>>>>>
>>>>>>>> grid = SQLFORM.grid(query,
>>>>>>>> ** links = [dict(header='Virtual
>>>>>>>> Field',
>>>>>>>> ** body=lambda
>>>>>>>> row: A('Add a comment!', _href=URL('comment_on_a_**suggestion',
>>>>>>>> vars=dict(filter=row.id)))
>>>>>>>> ** )]
>>>>>>>> ** )
>>>>>>>>
>>>>>>>>
>>>>>>>> On Friday, 13 September 2013 21:57:28 UTC+1, Alex Glaros wrote:
>>>>>>>>>
>>>>>>>>> I tried this but got "lambda requires 2 args, 1 given" error, plus
>>>>>>>>> need to be able to pass Idea.id parm to the button. How to do that?
>>>>>>>>>
>>>>>>>>> grid = SQLFORM.grid(query,links = [dict(header='Virtual
>>>>>>>>> Field',body=lambda id, r: A('Add a comment!', _href=URL('comment_on_a_
>>>>>>>>> **suggestion', vars=dict(filter=id))))])
>>>>>>>>>
>>>>>>>>> On Friday, September 13, 2013 1:33:35 PM UTC-7, villas wrote:
>>>>>>>>>>
>>>>>>>>>> Hope this helps...
>>>>>>>>>>
>>>>>>>>>> From the book:
>>>>>>>>>>
>>>>>>>>>> links is used to display new columns which can be links to other
>>>>>>>>>> pages. The links argument must be a list of
>>>>>>>>>> dict(header='name',body=lambda
>>>>>>>>>> row: A(...)) where header is the header of the new column and
>>>>>>>>>> body is a function that takes a row and returns a value. In the
>>>>>>>>>> example, the value is a A(...) helper.
>>>>>>>>>>
>>>>>>>>>> Example:
>>>>>>>>>>
>>>>>>>>>> linkbtns = [
>>>>>>>>>> lambda row: SPAN('Mag',_class="label
>>>>>>>>>> label-success") \
>>>>>>>>>> if row.status =='Y' else '',
>>>>>>>>>> lambda row: SPAN('Web',_class="label
>>>>>>>>>> label-success") \
>>>>>>>>>> if row.is_active else '',
>>>>>>>>>> lambda row: A( I('',_class="icon-eye-open")+'
>>>>>>>>>> View',
>>>>>>>>>> _href=URL("view",args=[row.id
>>>>>>>>>> ]**),
>>>>>>>>>> _class="btn btn-small"
>>>>>>>>>> ),
>>>>>>>>>> lambda row: A( I('',_class="icon-edit")+' Edit',
>>>>>>>>>> _href=URL("edit",args=[row.id
>>>>>>>>>> ]**),
>>>>>>>>>> _class="btn btn-small"
>>>>>>>>>> ),
>>>>>>>>>> lambda row: A( I('',_class="icon-road")+' Map',
>>>>>>>>>> _href=URL('default',
>>>>>>>>>> 'geocoder'**,args=['caclient',row.id],vars**={'title':row.
>>>>>>>>>> business}),
>>>>>>>>>> _class="btn btn-small"
>>>>>>>>>> ),
>>>>>>>>>> ]
>>>>>>>>>> grid = SQLFORM.grid(....... links=linkbtns, .......)
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>>
>>>>>>>>>> On Friday, 13 September 2013 21:00:56 UTC+1, Alex Glaros wrote:
>>>>>>>>>>>
>>>>>>>>>>> How do I add a button "Add a comment!" in every row of a grid?
>>>>>>>>>>> It's a kind of virtual column.
>>>>>>>>>>>
>>>>>>>>>>> The below works, it takes user exactly to the correct row in the
>>>>>>>>>>> next table, but I use up one of the fields (Idea.id). How do I
>>>>>>>>>>> just create
>>>>>>>>>>> text/virtual column that doesn't sacrifice existing field?
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> def view_all_suggestions_and_**comments():
>>>>>>>>>>> db.Idea.id.represent = lambda id, r: A('Add a comment!',
>>>>>>>>>>> _href=URL('comment_on_a_**suggestion', vars=dict(filter=id)))
>>>>>>>>>>>
>>>>>>>>>>> query =
>>>>>>>>>>> (db.IdeaComment.ideaID==db.**Idea.id<http://db.Idea.id>)
>>>>>>>>>>> & (db.IdeaComment.partyID==db.**Party.id <http://db.Party.id>)
>>>>>>>>>>> grid = SQLFORM.grid(query)
>>>>>>>>>>> return dict(grid = grid)
>>>>>>>>>>>
>>>>>>>>>>>
>>>>>>>>>>> I read the book but need exact syntax for this situation.
>>>>>>>>>>>
>>>>>>>>>>> Thanks,
>>>>>>>>>>>
>>>>>>>>>>> Alex Glaros
>>>>>>>>>>>
>>>>>>>>>> --
>> 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] <javascript:>.
>> For more options, visit https://groups.google.com/groups/opt_out.
>>
>
>
--
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/groups/opt_out.