First, you can't set session.allow_duplicate to False until you've first 
checked its value. Second, you have to actually check its value somewhere. 
Maybe something like this:

    allow_duplicate = session.allow_duplicate
    del session.allow_duplicate
    if not allow_duplicate:
        if form.vars.cocNumber and db(...).select(db.organization.ALL):
            session.allow_duplicate=True
            form.errors.cocNumber=str(form.vars.cocNumber) + str(form.vars.
subdossierNumber) + ' already in database'
        elif form.vars.lastName and form.vars.birthday and person=db(...).
select(db.person.ALL):
            session.allow_duplicate=True
            form.errors.lastName=str(form.vars.lastName) + str(form.vars.
birthday) + '  already in database'

Anthony

On Wednesday, October 17, 2012 12:54:33 PM UTC-4, Annet wrote:
>
> I tried:
>
> form=SQLFORM.factory(...)
> if 
> form.process(onvalidation=validate_create_node,keepvalues=True).accepted:
>     processForm(form)
> elif form.errors:
>     response.flash=responseFlash('formerror',session)
> elif not response.flash:
>     response.flash=responseFlash('form',session)
> return dict(form=form)
>
>
> def validate_create_node(form):
>     if session.allow_duplicate:
>         session.allow_duplicate=False
>     elif form.vars.cocNumber:
>         organization=db(...).select(db.organization.ALL)
>         if organization:
>             session.allow_duplicate=True
>             form.errors.cocNumber=str(form.vars.cocNumber) + 
> str(form.vars.subdossierNumber) + ' already in database'
>     elif form.vars.lastName and form.vars.birthday:
>         person=db(...).select(db.person.ALL)
>         if person:
>             session.allow_duplicate=True
>             form.errors.lastName=str(form.vars.lastName) + 
> str(form.vars.birthday) + '  already in database'
>
> ... but this:
>
> if session.allow_duplicate:
>         session.allow_duplicate=False
>
> Doesn't work. How do I implement this correctly?
>
>
> Kind regards,
>
> Annet
>
>

-- 



Reply via email to