From what I can gather, smartgrid is the same as grid except that it will also display/work with related tables. Grid works with one table only (please correct me if I'm wrong).

    -Jim

On 11/9/2011 3:14 PM, Richard Vézina wrote:
Thank a lot Jim I will play a bit with your example... Pretty helpful...

I would like to know more about the difference between grid and smartgrid... I just start to read the sqlhtml.py to understand better new grid and smartgrid...

Thanks again.

Richard

On Wed, Nov 9, 2011 at 4:07 PM, Jim Steil <[email protected] <mailto:[email protected]>> wrote:

    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
    <http://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


Reply via email to