Here is a sample of one of my controllers.
@auth.requires_permission('select', db.priceTemplate)
def priceTemplates():
response.view='list.html'
table = db.priceTemplate
response.title = '%s - %s' % (response.section, table['_plural'])
columns = ['priceTemplate.name', 'priceTemplate.plantId',
'priceTemplate.iwhsPosition',
'contactPriceTemplate.contactId']
# Setup Permissions
editable = auth.has_permission('update', table)
create = auth.has_permission('create', table)
deletable = auth.has_permission('delete', table)
details = auth.has_permission('read', table)
orderby = dict(priceTemplate=[db.priceTemplate.name])
db.contactPriceTemplate._plural = 'Contacts'
db.contactPriceTemplate.priceTemplateId.writable = False
db.contactPriceTemplate.priceTemplateId.readable = False
grid = SQLFORM.smartgrid(db.priceTemplate, columns=columns,
orderby=orderby,
create=create, details=details,
editable=editable, deletable=deletable,
csv=False, search_widget=None,
paginate=15, maxtextlength=45)
return dict(grid=grid)
In it I'm setting read/write capabilities for one of the fields (notice
that it isn't a field in the primary table, but a related table. I'm
also using standard auth to test for permissions (thanks Anthony). I
can control sorting for primary table and related tables. In looking at
the method signature for SQLFORM.grid it appears that formstyle will
work just like it did for CRUD. From what little I know, it would
appear to me that the CSS styling is the same as CRUD so your CSS should
work.
SQLFORM.smartgrid is amazing. If you have your models setup properly
you can get highly sophisticated CRUD forms, with relationships with
very little boilerplate code. Thanks Massimo!
-Jim
On 11/9/2011 2:55 PM, Richard wrote:
Hello,
I would like to know I can control generated form with SQLFORM.grid...
I use to do extensively :
If user and group and permission and row field value:
crud.table.field.readable =\
crud.table.field.writable =False
form = crud.create, read or update(db.table)
And I customize my form a bit with CSS (crud.settings.formstyle =
'divs') so I would like to know if I can recycle my CSS with
SQLFORM.grid??
Thanks.
Richard