After testing

  form = SQLFORM.grid(query,
        fields=fields,
field_id=db.lvdisksetup.id, <-------------------------------------------------------
        orderby=['lvdisksetup.lunid'],
        csv=False,
        create = True,
        maxtextlength=45
        )

It worked like a charm, its really great Massimo. Thanks


On 03/30/2012 03:55 PM, Mike Veltman wrote:
I guessed it was something like that :-)

Thanks Massimo I am going to test it.


On 03/30/2012 10:51 AM, Massimo Di Pierro wrote:
You have to pass it

SQLFORM.grid(...,field_id=db.lvdisksetup.id,....)

else it does not know what table to use.

On Thursday, 29 March 2012 19:58:52 UTC-5, Gwayne aka Mike Veltman wrote:

    On 03/30/2012 12:01 AM, Massimo Di Pierro wrote:
    When you say "I want to manipulate db.lvdisksetup but in stead
    it manipulates db.lvdisk" what do you mean by "manipulates"?


    That when I delete a record or do add a record it gives me the
    db.lvdisk table and not the db.lvdisksetup table.

    So I delete or add a record that is supposed to be a reverence.



    On Wednesday, 28 March 2012 22:58:31 UTC-5, Gwayne aka Mike
    Veltman wrote:

        Gentle people,

        I have the following grid:

        query = ( (db.lvdisksetup.lvgroupname_id == usedlvdisksetup)
        & (db.lvgroupname.id <http://db.lvgroupname.id> ==
        usedlvdisksetup) & (db.lvdisksetup.lvdisk_id == db.lvdisk.id
        <http://db.lvdisk.id>) )
            fields = [db.lvdisksetup.id <http://db.lvdisksetup.id>,
        db.lvgroupname.lvgroupnamedesc , db.lvdisk.lvdiskdesc,
        db.lvdisksetup.lunid]

            form = SQLFORM.grid(query,
                fields=fields,
                orderby=['lvdisksetup.lunid'],
                csv=False,
                create = False,
                maxtextlength=45
                )

        I want to manipulate db.lvdisksetup but in stead it
        manipulates db.lvdisk :-)

        What causes havoc by deleting essential table data :)

        Part of the db models :)

        # All the LV sizes will be collected in here in bytes, like
        30GB, 10GB, 2GB etc
        db.define_table('lvsize',

            Field('sizename', type='string',
                  unique=True,
                  label=T('Lun Size')),
            Field('size', type='string',
                  label=T('LV Size in bytes')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # The LV Disk groups
        db.define_table('lvgroupname',

            Field('lvgroupnamedesc', type='string',
                   unique=True,
                  label=T('LV Disk Groupname ')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.lvgroupname.lvgroupnamedesc.requires = IS_NOT_EMPTY()

        # Logical volume on storage
        db.define_table('lvdisk',

            Field('lvdiskdesc', type='string',
                   unique=True,
                  label=T('LV Disk description ')),
            Field('lvsize_id', db.lvsize,
                  default=2,
                  label=T('Size ID')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.lvdisk.lvsize_id.requires = IS_IN_DB(db, 'lvsize.id
        <http://lvsize.id>', 'lvsize.sizename')
        db.lvdisk.lvdiskdesc.requires = IS_NOT_EMPTY()


        # lvdisksetup
        db.define_table('lvdisksetup',

            Field('lvdisk_id', db.lvdisk,
                  default=1,
                  label=T('Logical volume to be added')),
            Field('lvgroupname_id', db.lvgroupname,
                  default=1,
                  label=T('Member of Logical volume group name')),
                Field('lunid', type='integer',
                  default=2,
                  label=T('Lun ID')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.lvdisksetup.lvdisk_id.requires = IS_IN_DB(db, 'lvdisk.id
        <http://lvdisk.id>', 'lvdisk.lvdiskdesc')
        db.lvdisksetup.lvgroupname_id.requires = IS_IN_DB(db,
        'lvgroupname.id <http://lvgroupname.id>',
        'lvgroupname.lvgroupnamedesc')


        # hbahostgroupsetup (to add the right disks to a hba or a
        hostgroup)
        db.define_table('hbahostgroupsetup',

            Field('hbahgdesc', type='string',
                  label=T('LV Disk setup Description ')),
            Field('lvgroupname_id', db.lvgroupname,
                  default=1,
                  label=T('LV Disk')),
            Field('mapping_id', db.storagemap,
                  default=1,
                  label=T('HBA or Hostgroup mapping')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.hbahostgroupsetup.lvgroupname_id.requires = IS_IN_DB(db,
        'lvgroupname.id <http://lvgroupname.id>',
        'lvdisk.lvgroupnamedesc')
        db.hbahostgroupsetup.mapping_id.requires = IS_IN_DB(db,
        'storagemap.id <http://storagemap.id>', 'storagemap.mapping')
        db.hbahostgroupsetup.hbahgdesc.requires = IS_NOT_EMPTY()

        # disksetupname (to make it possible to have the same lv
        setup for different class setups)
        db.define_table('disksetupname',

            Field('disksetupnamedesc', type='string',
                  label=T('LV Disk group selection description ')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.disksetupname.disksetupnamedesc.requires = IS_NOT_EMPTY()

        # hbahggroup
        db.define_table('hbahggroup',

            Field('hbahostgroupsetup_id', db.hbahostgroupsetup,
                  default=1,
                  label=T('LV on HBA or Hostgroup setup')),
            Field('disksetupname_id', db.disksetupname,
                  default=1,
                  label=T('Member of Diskgroup')),
            Field('created_on','datetime',default=request.now,
                  label=T('Created On'),writable=False,readable=False),
            Field('modified_on','datetime',default=request.now,
                  label=T('Modified On'),writable=False,readable=False,
                  update=request.now),
            migrate=settings.migrate)

        # Table rules
        db.hbahggroup.hbahostgroupsetup_id.requires = IS_IN_DB(db,
        'hbahostgroupsetup.id <http://hbahostgroupsetup.id>',
        'hbahostgroupsetup.hbahgdesc')
        db.hbahggroup.disksetupname_id.requires = IS_IN_DB(db,
        'disksetupname.id <http://disksetupname.id>',
        'disksetupname.disksetupnamedesc')




Reply via email to