I was searching for a way to detect records change in a complexe
sqlform.factory used to populate multiples tables and multiples rows in one
of them... Until now, I have been able to manage the insertion and update
with the help of update_or_insert()... For instance if some of the input
change state (dropdown select displays in a table) there is no problem if
there is still a selected value, but if the one previously selected value
are now unselected there is no way update_or_insert() would be able to
delete the proper row as form.vars.select1_field_name = None and record
can't be retrieve...

The snippet propose by Massimo would have been exactly what I am searching
for, but I am not sure record_id can be pass in context of .factory() as it
make no sens in my use case...

I need to know what was the value of the update form before user submit
it... Is this this information kept by form and available some how with
request or other mean?

Richard

On Sun, Dec 9, 2012 at 1:41 PM, Massimo Di Pierro <
[email protected]> wrote:

> Something like this?
>
> form=SQLFORM(db.table,record_id)
> if form.process(dbio=False).accepted:
>     if any(v!=form.record[k] for k,v in form.vars.iteritems()):
>        record_has_changed
>     else:
>        record_has_NOT_changed
>
>
> On Sunday, 9 December 2012 10:51:14 UTC-6, Joe Barnhart wrote:
>>
>>
>> I've been investigating the use of the DAL feature
>> "detect_record_change=True".  Apparently it was conceived as a way of
>> detecting when the record in the database has changed since the form was
>> originally built and populated.  My need is for a way to detect when the
>> USER has changed fields in the record between the time it was built and
>> some other event, such as when the user tries to navigate away from the
>> form without pressing the "submit" button.
>>
>> It seems to me the idea is quite similar -- I want to serialize the data
>> in the form and then compare that hash to the same form later.  Only
>> instead of comparing the data in the database to the hash I want to compare
>> the form's version of the data again.  Has anyone already done this?  Is
>> there a better way to detect when a form has actually been changed instead
>> of just viewed?
>>
>> -- Joe B.
>>
> --
>
>
>
>

-- 
Resources:
- http://web2py.com
- http://web2py.com/book (Documentation)
- http://github.com/web2py/web2py (Source code)
- https://code.google.com/p/web2py/issues/list (Report Issues)
--- 
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/d/optout.

Reply via email to