In your function you can do db.<whatever_table>._enable_record_versioning() 
.  Record versioning is automatic on update so you can still use your 
original onupdate callback.

check here and search for 'archive' 
http://web2py.com/books/default/chapter/29/06

On Monday, March 25, 2013 4:27:01 AM UTC-4, 黄祥 wrote:
>
> hi, 
>
> is it possible to execute 2 function during update using sqlform.grid?
> my goal is to combine e.g.1 with e.g.2 onupdate function.
> for description :
> in e.g.1 during update i want to update the others tables (room and 
> cleaning)
> in e.g.2 during update i want to archive the previous value, so that i can 
> keep record the data changes
>
> e.g. 1.
> def __onupdate_booking(form):    
>     room=db(db.room.id==form.vars.room).update(status='Booked')
>     cleaning=db(db.cleaning.room==form.vars.room).update(is_active=False)
>     return locals()
>
> def booking():
>     query = db.booking.is_active==True
>     has_membership=auth.has_membership('Manager')
>     grid=SQLFORM.grid(query, user_signature=False, 
>                       maxtextlength=100, 
> onvalidation=__onvalidation_booking, 
>                       oncreate=__oncreate_booking, 
> onupdate=__onupdate_booking, 
>                       editable=has_membership, deletable=has_membership)
>     return locals()
>
> e.g.2
> def booking():
>     query = db.booking.is_active==True
>     has_membership=auth.has_membership('Manager')
>     grid=SQLFORM.grid(query, user_signature=False, 
>                       maxtextlength=100, 
> onvalidation=__onvalidation_booking, 
>                       oncreate=__oncreate_booking, onupdate=auth.archive, 
>                       editable=has_membership, deletable=has_membership)
>     return locals()
>
> many thanks in advance
>

-- 

--- 
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