model
db.define_table('trainer',
    Field('name'),
    Field('specialty'),
    auth.signature,

    format='%(name)s',
    migrate=True,

    )
db.trainer.is_active.default=False

db.define_table('dogs',
    Field('name'),
    Field('bites', 'boolean'),

    Field('trainer', 'reference trainer', default=1),
    auth.signature,
    format='%(name)s',
    migrate=True,
    )

  


controller
def assign_trainers():
    db.dogs.trainer.requires = IS_IN_DB(db(db.trainer.is_active==False), 
            'trainer.id', '%(name)s',zero=T('choose one'))
      
    search='trainer equal 1 or trainer equal 0' 
    #1 is the default value of a trainer named "Unassigned"
    rows = db.smart_query([db.dogs], search).select()
    grid = SQLFORM.smartgrid(db.dogs)

    return locals()    

view
{{extend 'layout.html'}}
<h2>Assign Trainers</h2>
<p>page used as an example posted to user group for help
    {{=grid}}
    {{=rows}}


The rows are what I want from the dogs thanks to smart_query() but they are 
not in the "smart"grid.

The "smart"grid shows all the dogs but will not take rows as a paramter.

Click on the edit button and the edit page drop downs now only shows 
trainers who's in_active field == False.

So I'm getting closer to my goal of making one grid with drop downs to 
assign new trainers to new unassigned dogs.

my_need_for_help.is_active=True #still

-Bill



-- 



Reply via email to