diff --git a/extra/scripts/checkDuplicate.py b/extra/scripts/checkDuplicate.py index dd99244..1d1594b 100644 --- a/extra/scripts/checkDuplicate.py +++ b/extra/scripts/checkDuplicate.py @@ -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