Thanks Edwin,

worked great

what_if_id=request.vars.WhatIfID line had to be added

here's the whole function below

much appreciated,

Alex

def add_what_if_vote():
   form = SQLFORM(db.WhatIfVote)
   if form.process().accepted:
       response.flash = 'form accepted'
       what_if_id=request.vars.WhatIfID
       total_children = db(db.WhatIfVote.WhatIfID == what_if_id).count()
       row = db(db.WhatIf.id==what_if_id).select().first()
       row.update_record(numberOfTentativePartners=total_children)
   elif form.errors:
       response.flash = 'form has errors'
   else:
       response.flash = 'please fill out the form'
   return dict(form=form)   


On Sunday, April 14, 2013 2:10:23 AM UTC-7, Edwin Haver wrote:
>
> Hi Alex,
>
> You can use the following query to count the number of child records and 
> then update the WhatIf table.
>
> total_children = db(db.WhatIfVote.WhatIfID == what_if_id).count()
> row = db(db.WhatIf.id==what_if_id).select().first()
> row.update_record(numberOfTentativePartners=total_children)
>
>
> Try if this works.
>
> Regards, Edwin.
>
>
> On Sunday, April 14, 2013 7:08:25 AM UTC+4, Alex Glaros wrote:
>>
>> When a user finishes adding a record in the WhatIfVote table, I want this 
>> function below to find only the parent WhatIf record to have its field 
>> numberOfTentativePartners have its contents replaced with the count of 
>> number of WhatIfVote records for that parent.
>>
>> What is the syntax for selecting the parent only for this child, then 
>> adding up all its children and replacing the current value of 
>> numberOfTentativePartners with the new total?
>>
>> Here's a walkthough of how it would work:
>>
>> User adds a new WhatIfVote record. This is a child record.  
>>
>> The function below then adds up all the children for the parent WhatIf 
>> and updates the parent field called numberOfTentativePartners with the 
>> total count of its children.
>>
>> Here is the function that I'm trying to write:
>>
>> def add_what_if_vote():
>>    form = SQLFORM(db.WhatIfVote)
>>    if form.process().accepted:
>>        response.flash = 'form accepted'
>> ## PLEASE TYPE IN THE CORRECT SYNTAX FOR THE PSEUDO CODE IN THE LINE BELOW
>>       Where WhatIf.id == 
>> WhatIfVote.WhatIfID(db.WhatIf.insert(numberOfTentativePartners=select count 
>> of WhatIfVote where WhatIf.id == WhatIfVote.WhatIfID) 
>>    elif form.errors:
>>        response.flash = 'form has errors'
>>    else:
>>        response.flash = 'please fill out the form'
>>    return dict(form=form)   
>>
>> %%%%%%%%%%%    Models    %%%%%%%%
>>
>> ## ----- Parent table -----------
>>
>> db.define_table('WhatIf', ## Table - What-if process.This table enables 
>> What-If Analysis 
>> Field('shorWhatIfDescription', 'string',label='Description'), 
>> Field('numberOfTentativePartners', 'integer')) ## always derived by 
>> counting number of WhatIfVote children records whenever a new WhatIfVote 
>> child is added
>>
>>
>> ## ---- Child table ----------
>>
>> db.define_table('WhatIfVote', ##  Whenever a new record is added, the 
>> total children for the parent are totaled in the parent record in field 
>> numberOfTentativePartners 
>> Field('WhatIfID', 'reference WhatIf'),  
>> Field('whatIfVoteComments', 'string'))
>>
>>
>> Thanks,
>>
>> Alex Glaros
>>
>

-- 

--- 
You received this message because you are subscribed to the Google Groups 
"web2py-users" group.
To unsubscribe from this group and stop receiving emails from it, send an email 
to [email protected].
For more options, visit https://groups.google.com/groups/opt_out.


Reply via email to