update check duplicate script to use SQL criterias (#44561)
This commit is contained in:
parent
230c0c736f
commit
237ff0e355
|
@ -1,17 +1,18 @@
|
|||
"""
|
||||
Vérifie qu'il n'existe pas déja un formulaire soumis par l'utilisateur connecté ayant le meme dpap (numéro de dossier papier)
|
||||
"""
|
||||
from wcs.qommon.storage import (Equal, NotEqual)
|
||||
|
||||
# id du champ contenant le DPAP
|
||||
field_id = [x for x in form_objects.formdef.fields if x.varname == 'dpap'][0].id
|
||||
|
||||
noDuplicate = ''
|
||||
try:
|
||||
form_user_name_identifier_0
|
||||
except NameError:
|
||||
# Si user anonyme on le laisse passer
|
||||
noDuplicate = True
|
||||
if form.user is None:
|
||||
# Si user anonyme on le laisse passer
|
||||
noDuplicate = True
|
||||
else:
|
||||
# Si user connecté on check un eventuel doublon : False si doublon, True si pas doublon
|
||||
noDuplicate = bool(len([x for x in form_objects.formdef.data_class().select() if x.get_user() and x.data.get(field_id) == form_var_dpap and x.get_user().name_identifiers[0] == form_user_name_identifier_0 and not x.is_draft()]) == 0)
|
||||
# Si user connecté on check un eventuel doublon : False si doublon, True si pas doublon
|
||||
criterias = [Equal('user_id', str(form.user.id)), NotEqual('status', 'draft')]
|
||||
noDuplicate = bool(len([x for x in form_objects.formdef.data_class().select(criterias) if x.data.get(field_id) == form_var_dpap]) == 0)
|
||||
|
||||
result = noDuplicate
|
||||
|
|
Loading…
Reference in New Issue