looks like it's getting closer, but receive this error: <type 
'exceptions.TypeError'> 'str' object is not callable
On Monday, September 16, 2013 8:46:48 AM UTC-7, Adi wrote:
>
> if you replace the grid part, does this work: 
>
>
>     grid = SQLFORM.grid(db.Idea,editable=is_owner, 
>                         deletable=is_owner, 
>                         user_signature=True,
>                         fields=[db.Idea.ideaShortSummary,
>                                 db.Idea.created_by,
>                                 db.Idea.id], 
>                         headers={ 'Idea.ideaShortSummary':'Description'}, 
>                         maxtextlengths={ 'Idea.ideaShortSummary':140},
>                         links = dict(Idea=[lambda row: A('Post comment',
>                                                         _class="btn 
> btn-mini", 
>                                                         _href=URL(
> 'comment_on_a_suggestion', vars=dict(filter=row.id))
>                                                         ),
>                                            lambda row: A('Post comment',
>                                                          _class="btn 
> btn-mini", 
>                                                          _href=URL(
> 'comment_on_a_suggestion', vars=dict(filter=row.id))
>                                                          ),               
>                             
>                                            ],
>                                      )
>                         )
>
>
>
>
>
> On Monday, September 16, 2013 11:26:18 AM UTC-4, Alex Glaros wrote:
>>
>> Hi Adi and Javier,
>>
>> I can't get the syntax to work.  Can you please baby me though the 
>> phrasing and just copy the first button twice in this working example so 
>> that two identical buttons appear?
>>
>> def view_suggestions(): 
>>     db.Idea.id.represent = lambda id, r: A('Post shared services idea', 
>> _href=URL('add_sharability_info_to_a_suggestion', 
>> vars=dict(filter=id)),_class="btn btn-mini")    
>>     is_owner = (lambda row: row.created_by == auth.user_id) if auth.user 
>> else False  
>>     grid = SQLFORM.grid(db.Idea,editable=is_owner, deletable=is_owner, 
>> user_signature=True,fields=[db.Idea.ideaShortSummary,db.Idea.created_by,
>> db.Idea.id], headers={ 'Idea.ideaShortSummary':'Description'}, 
>> maxtextlengths={ 'Idea.ideaShortSummary':140},links = [dict(header='Post 
>> comment', body=lambda row: A('Post comment',_class="btn btn-mini", 
>> _href=URL('comment_on_a_suggestion', vars=dict(filter=row.id))))]),  
>>     return dict(grid = grid)  
>>
>>
>> thanks,
>>
>> Alex
>>
>> On Monday, September 16, 2013 7:10:09 AM UTC-7, Adi wrote:
>>>
>>> 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 <alexg...@gmail.com>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 web2py+un...@googlegroups.com.
>>>>> 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 web2py+unsubscr...@googlegroups.com.
For more options, visit https://groups.google.com/groups/opt_out.

Reply via email to