I do not see the screenshot. :-(
This should work, although may not work the way you want.

On Sep 14, 4:48 pm, Jim Steil <j...@qlf.com> wrote:
> In response to #3, I see what is going on now.  I'm working on a
> membership database where I have the following model:
>
> #######  db.py
> member = db.define_table('member',
>      Field('memberId', 'id'),
>      Field('firstName', length=50, required=True, label='First Name'),
>      Field('middleInitial', length=20, label='Middle Initial'),
>      Field('lastName', length=50, required=True, label='Last Name'),
>      Field('secondFirstName', length=50, label='Second First Name'),
>      Field('secondLastName', length=50, label='Second Last Name'),
>      Field('householdSalutation', length=50, label='Household Salutation'),
>      Field('householdFirstName', length=50, label='Household First Name'),
>      Field('businessName', length=128, label='Business Name'),
>      Field('address', 'text'),
>      Field('city', length=50),
>      Field('state', length=2),
>      Field('postalCode', length=10, label='Postal Code'),
>      Field('homePhone', length=25, label='Home Phone'),
>      Field('email', length=255),
>      Field('legaciesBequests', 'decimal(11,2)', label='Legacies and
> Bequests'),
>      Field('notes', 'text'),
>      Field('joinedOn', 'date', label='Joined On',
>            default=datetime.date.today(),
>            requires=IS_DATE(format='%m/%d/%Y'),
>            represent=lambda value, x: value.strftime('%m/%d/%Y')),
>      Field('deceased', 'boolean', default=False))
>
> member.firstName.requires = IS_NOT_EMPTY()
> member.lastName.requires = IS_NOT_EMPTY()
>
> campaign = db.define_table('campaign',
>      Field('campaignId', 'id'),
>      Field('name', length=50, required=True, unique=True),
>      Field('start', 'date', required=True,
>            default=datetime.date.today(),
>            requires=IS_DATE(format='%m/%d/%Y'),
>            represent=lambda value, x: formatDate(value)),
>      Field('end', 'date',
>            requires=IS_NULL_OR(IS_DATE(format='%m/%d/%Y')),
>            represent=lambda value, x: formatDate(value),
>            ))
>
> campaign.name.requires = [IS_NOT_EMPTY(),
>                            IS_NOT_IN_DB(db, 'campaign.name')]
>
> memberCampaign = db.define_table('memberCampaign',
>      Field('memberId', db.member, required=True, label='Member'),
>      Field('campaignId', db.campaign, required=True, label='Campaign'),
>      Field('amount', 'decimal(13,2)'),
>      Field('paidOn', 'date', label='Paid On',
>            default=datetime.date.today().strftime('%m/%d/%Y'),
>            requires=IS_DATE(format='%m/%d/%Y'),
>            represent=lambda value, x: value.strftime('%m/%d/%Y')))
>
> memberCampaign.memberId.requires = IS_IN_DB(db, db.member.id,
>                                       '%(firstName) %(lastName)s',
>                                       zero=('select member'))
> memberCampaign.campaignId.requires = IS_IN_DB(db, db.campaign.campaignId,
>                                        '%(name)s', zero=('select campaign'))
>
> tag = db.define_table('tag',
>      Field('tagId', 'id'),
>      Field('name', length=50, required=True, unique=True))
>
> tag.name.requires = [IS_NOT_EMPTY(),
>                       IS_NOT_IN_DB(db, 'tag.name')]
>
> memberTag = db.define_table('memberTag',
>      Field('memberId', db.member, required=True, label='Member'),
>      Field('tagId', db.tag, required=True, label='Tag'))
>
> memberTag.memberId.requires = IS_IN_DB(db, db.member.id,
>                                      '%(firstName) %(lastName)s',
>                                      zero=('select member'))
> memberTag.tagId.requires = IS_IN_DB(db, db.tag.id,
>                                      '%(name)s', zero=('select tag'))
>
> ######
> and the following controller
>
> ######  default.py
> def members():
>      columns = ['member.firstName', 'member.lastName', 'member.city',
>                 'member.state', 'member.phone', 'member.joinedOn',
>                 'member.deceased']
>      orderBy = ['member.lastName']
>      grid = SQLFORM.smartgrid(db.member, columns=columns, details=False)
>      return dict(grid=grid)
>
> ######
>
> Here are screen shots of the progression through it:
>
> Click on memberTag
>
> Click on Add
>
> Not sure what this all means as I'm not sure of the intent of the
> SQLFORM.smartgrid().  But, I was assuming (yes I know that's bad) that
> it would create an entry form for me with the default member already
> selected.
>
> Would be fantastic if this worked.  If it is a while out, I will go
> ahead and create some custom views to do this, but if it could work,
> that would be fantastic.  Any thoughts?
>
>      -Jim
>
> On 9/14/2011 11:01 AM, Jim Steil wrote:
>
>
>
>
>
>
>
> > I understand that these two grid are brand new, but has anyone created
> > any documentation on all of the options and how to use them yet?
>
> > Here are a couple issues I'm wondering about:
>
> > 1.  In reading this post -
> >https://groups.google.com/forum/#!msg/web2py/1eSMh8TlHGs/rB9Hx2UIP4cJ
> > - and looking at the images provided, how do I get the buttons to
> > display instead of just link text.
>
> > 2.  Can I override the default links for Add and Edit?
>
> > 3.  What is the difference between grid and smartgrid?
>
> > I'm happy to proof/test any documentation that is in progress.  I'm
> > just eager to get to work with these great new tools.
>
> >     -Jim

Reply via email to