Hi Richard,

Sorry for not getting back to this right away. Had so much to do on this 
project this problem was burning valuable time. My first early release is 
this Thursday. From before, I did post the code exactly. I'll probably try 
your shell commands after 
Friday. Then I'll keep you posted.

Best Regards,
Bill

On Tuesday, August 28, 2012 9:24:09 AM UTC-5, Richard wrote:
>
> To see what the set return :
>
> print db((~db.trainer.id.belongs(db()._select(db.dogs.trainer))))
>
> When you will be into the web2py shell.
>
> Richard
>
> On Tue, Aug 28, 2012 at 10:22 AM, Richard Vézina 
> <ml.richa...@gmail.com<javascript:>
> > wrote:
>
>> Hi Bill,
>>
>> Did you try you set into the web2py shell to see if it returns something?
>>
>> I usually try my query in a terminal web2py shell to make sure my query 
>> are good before waisting time in navigator reloading page.
>>
>> Here how you can start a web2py shell :
>>
>> cd into the web2py folder 
>>
>> Than :
>>
>> python web2py.py -a 'tempory_pwd' -i 127.0.0.1 -p 8001 -S appname -M auto
>>
>> Under linux... It should be similar under windows.
>>
>> Richard
>>
>>
>> On Mon, Aug 27, 2012 at 9:57 PM, Bill Thayer <bill....@live.com<javascript:>
>> > wrote:
>>
>>> ...no trainers are being returned. I even tried moving
>>> unassignedtrainers = (~db.trainer.id.belongs(db()._select(db.dogs.
>>> trainer)))
>>> db.dogs.trainer.requires = IS_IN_DB(db(unassignedtrainers), 'trainer.id'
>>> , '%(name)s',zero=T('choose one'))
>>>
>>>
>>> to the controller. No luck. 
>>>
>>> The drop down boxes do not appear,
>>> If I click the edit link there are no trainers to select.
>>>
>>> Tried Richards line to get the trainers without dogs as well.
>>>  
>>> Am I making this harder than it has to be?
>>>
>>> On Monday, August 27, 2012 2:49:22 PM UTC-5, Bill Thayer wrote:
>>>>
>>>> Thank you Richard,
>>>>
>>>> I'll try it as soon as I finish my current round of debugging.
>>>>
>>>> -Bill
>>>>
>>>> On Monday, August 27, 2012 1:20:49 PM UTC-5, Richard wrote:
>>>>>
>>>>> Hello,
>>>>>
>>>>> If I resume correctly you want to assign a trainer to a dog only if 
>>>>> the trainer haven't been assign to any dogs yet?
>>>>>
>>>>> So, what you have to do it to build a set instead of only define an 
>>>>> simple IS_IN_DB()...
>>>>>
>>>>> I would do something like this (not tested) :
>>>>>
>>>>> not_assign_yet_trainer_set = db(~db.trainers.id.belongs(**db(
>>>>> db.dogs.id>0).select(db.**dogs.trainer, distinct=True)))
>>>>>
>>>>> Than you only have to use your set instead of db.trainers in the 
>>>>> IS_IN_DB() where you normally define the db table to use.
>>>>>
>>>>> Does it help?
>>>>>
>>>>> Richard
>>>>>
>>>>> On Mon, Aug 27, 2012 at 1:12 PM, Bill Thayer <bill....@live.com>wrote:
>>>>>
>>>>>> Tryin to use the example shown in Validators between classical and 
>>>>>> professional 
>>>>>> usage<http://web2py.wordpress.com/category/web2py-validators/>to change 
>>>>>> the values and widget for an SQLFORM.grid.
>>>>>>
>>>>>> I need to display an "Assign Trainers" page with an SQLFORM.grid (or 
>>>>>> something similar) of new dogs that have not been assigned to a trainer 
>>>>>> but 
>>>>>> can only be assigned to new trainers that have not been given dogs. So I 
>>>>>> thought simple query the is_active property on both cases, append the 
>>>>>> validator make (& process) my form. 
>>>>>>
>>>>>> db.define_table('trainer',
>>>>>>     Field('name'),
>>>>>>     Field('specialty'),
>>>>>>     auth.signature,
>>>>>>     format='%(name)s')
>>>>>> db.trainer.is_active.default=F**alse
>>>>>>
>>>>>> db.define_table('dogs',
>>>>>>     Field('name'),
>>>>>>     Field('bites', 'boolean'),
>>>>>>     Field('trainer', 'reference trainer', 
>>>>>>               default=1,
>>>>>>               widget=SQLFORM.widgets.options**.widget,
>>>>>>               requires=[IS_IN_DB('db.**trainer', 
>>>>>>               IS_UPPER())]),
>>>>>>     auth.signature,
>>>>>>     migrate=True)
>>>>>>
>>>>>> db.dogs.is_active.default=Fals**e
>>>>>>
>>>>>> Controller:
>>>>>> def assign_trainers():
>>>>>>     trainers=db(db.trianer._is_**active==False)
>>>>>>     new_dogs=db(db.dogs._is_active**==False)
>>>>>>     new_dogs.trainer.requires.appe**nd(IS_IN_SET(trainers))
>>>>>>     
>>>>>>     grid = SQLFORM.grid(new_dogs)
>>>>>>     
>>>>>>     return locals()
>>>>>>
>>>>>> Been working on this solution for two days now. Read all the books, 
>>>>>> bought the 
>>>>>> Cookbook<https://play.google.com/books/reader?id=cwjpG47z_7IC&printsec=frontcover&output=reader&authuser=0&hl=en&pg=GBS.PA1>read
>>>>>>  the blogs and now I'm out of time with my prototype presentation due 
>>>>>> Thursday.
>>>>>>
>>>>>> ANY help is very much needed at this point.
>>>>>>
>>>>>> Thank you,
>>>>>> Bill
>>>>>>
>>>>>>
>>>>>>
>>>>>>
>>>>>>  -- 
>>>>>>  
>>>>>>  
>>>>>>  
>>>>>>
>>>>>
>>>>>  -- 
>>>  
>>>  
>>>  
>>>
>>
>>
>

-- 



Reply via email to