Thanks Niphlod.

After insert works great:
def add_phplist_user(f,id):
    auth_user = db.auth_user(id)
    #add user
    db_phplist.phplist_user_user.insert(
        email = auth_user.email,
        confirmed = auth_user.newsletter)
    return dict()

db.auth_user._after_insert.append(lambda f,id: add_phplist_user(f,id))

After update works well also:

def update_phplist_user(s,f):
    n_rows = db_phplist(db_phplist.phplist_user_user.email == s.email).count
()
    if n_rows > 0:
        #update confirmed
        db_phplist(db_phplist.phplist_user_user.email == s.email).update(
                    confirmed = s.newsletter)
    return dict()

db.auth_user._after_update.append(lambda s,f: update_phplist_user(s,f))

But the after update run also after a new insert, and the f dictionary is 
empty, so I've got a ticket.

Do you know why?
Have you got a solution?

Il giorno martedì 20 ottobre 2015 11:53:42 UTC+2, Niphlod ha scritto:
>
> see the manual about database callbacks.
>
>
> http://web2py.com/books/default/chapter/29/06/the-database-abstraction-layer#callbacks-on-record-insert--delete-and-update
>
> On Tuesday, October 20, 2015 at 11:49:02 AM UTC+2, Gael Princivalle wrote:
>>
>> Hello all.
>>
>> I would like to run a function everytime there is a modification in auth.
>>
>> something like:
>> auth.settings.onchange = lambda: myfunction()
>>
>> Or only if a specific field change:
>> auth.settings.myfield.onchange = lambda: myfunction()
>>
>> Is it possible?
>>
>> I need it for changing a field value in another db.
>>
>> Thanks, regards.
>>
>>

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