Anthony, Excellent!!! That works perfectly, no need to mess up with 
sqlhtml.py.    

Massimo, Thanks for insight. 

PT

On Thursday, December 12, 2013 8:45:35 AM UTC-6, Anthony wrote:
>
> How about doing:
>
> SQLFORM.grid(..., formargs=dict(fields=[f.name for f in fields]))
>
> Anthony
>
> On Thursday, December 12, 2013 9:04:21 AM UTC-5, P T wrote:
>>
>> I rigged the sqlhtml.py, so that I can rearrange the fields in the form 
>> as well. The following worked for me, but not sure if it has any side 
>> effects:
>>
>> In sqlhtml.py, after the line  
>> create_form = update_form = view_form = search_form = None
>>
>> insert 
>>
>> fieldnames = [f.name for f in fields]
>>
>> and include fieldnames in the following calls:
>>
>> create_form = SQLFORM(table, fields=fieldnames, **sqlformargs)
>>
>> view_form = SQLFORM(table, record, fields=fieldnames,**sqlformargs)
>>
>> update_form = SQLFORM(table, record, fields=fieldnames, **sqlformargs)
>>
>>
>> I think, it would be nice to see the fields in the same arrangement both 
>> in grid and forms. This will also filter fields in the form. Currently, 
>> forms show all fields from the table.
>>
>> Thanks,
>> PT
>>
>> On Wednesday, December 11, 2013 8:34:36 PM UTC-6, Massimo Di Pierro wrote:
>>>
>>> Now I understand better. The order of the parameters in forms is 
>>> specified in the table definition. You can rearrange in the grid view but 
>>> not in form.
>>> I assume the order is fixed. You should change it in the 
>>> define_table(..., *fields)
>>>
>>>
>>> On Tuesday, 10 December 2013 00:09:49 UTC-6, P T wrote:
>>>>
>>>> I think, the problem is due to the following calls in gluon.sqlhtml.py 
>>>> (lines 2050, 2072, and 2093), which does not include the optional 
>>>> parameter "fields"
>>>>    
>>>>            create_form = SQLFORM(table, **sqlformargs)
>>>>            view_form = SQLFORM(table, record, **sqlformargs) 
>>>>            update_form = SQLFORM(table, record, **sqlformargs)
>>>>            
>>>> So, I tried something like
>>>>            
>>>>            update_form = SQLFORM(table, record, fields=fields, 
>>>> **sqlformargs)
>>>>
>>>> and this generates the ticket
>>>>
>>>>    <type 'exceptions.AttributeError'> 'Field' object has no attribute 
>>>> 'find'
>>>>
>>>>    Version
>>>>    web2py™ Version 2.8.2-stable+timestamp.2013.11.28.13.54.07
>>>>    Python  Python 2.7.5: C:\Python27\python.exe (prefix: C:\Python27)
>>>>    Traceback (most recent call last):
>>>>      File "C:\web2py-src\gluon\restricted.py", line 217, in restricted
>>>>            exec ccode in environment
>>>>      File "C:/web2py-src/applications/Test/controllers/default.py", line 
>>>> 77, in <module>
>>>>      File "C:\web2py-src\gluon\globals.py", line 372, in <lambda>
>>>>            self._caller = lambda f: f()
>>>>      File "C:\web2py-src\gluon\tools.py", line 3239, in f
>>>>            return action(*a, **b)
>>>>      File "C:/web2py-src/applications/Test/controllers/default.py", line 
>>>> 20, in index
>>>>            grid = SQLFORM.grid(query, fields=fields)
>>>>      File "C:\web2py-src\gluon\sqlhtml.py", line 2093, in grid
>>>>            update_form = SQLFORM(table, record, fields=fields, 
>>>> **sqlformargs)
>>>>      File "C:\web2py-src\gluon\sqlhtml.py", line 1053, in __init__
>>>>            if fieldname.find('.') >= 0:
>>>>    AttributeError: 'Field' object has no attribute 'find'          
>>>>    
>>>> There must be something wrong in how I included the fields param here.
>>>>
>>>>
>>>>

-- 
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