passerelle-grandlyon-iodas/grandlyon_iodas/extra/scripts/checkDuplicate.py

18 lines
737 B
Python

"""
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)
"""
# 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
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)
result = noDuplicate