Development #24182
Ne pas vérifier les champs obligatoires d'un formulaire backoffice si l'agent clique sur un saut manuel dans le même statut
0%
Description
Un ticket en lien avec une demande de Bron (mais pas que) : #24181
On peut, sur un même statut :- exposer un formulaire
- permettre un saut manuel vers un autre statut, sans que ce formulaire soit posté
Mais si le formulaire contient des champs obligatoires, on ne pourra pas exécuter le saut manuel, puisque la présence de l'action "saut à la soumission" va d'abord s'assurer que les champs obligatoire ont bien été remplis.
Cette demande n'est pas urgente.
Files
Related issues
Associated revisions
History
Updated by Frédéric Péters over 4 years ago
- Has duplicate Development #24634: Actions bloquées dans les statuts où il y a affichage d'un formulaire avec des champs obligatoires. added
Updated by Pierre Cros over 4 years ago
À noter que ce n'est pas lié à la présence ou pas d'un saut à la soumission : le résultat sera le même si on fait un saut manuel depuis un statut comportant un formulaire de workflow et pas de saut à la soumission.
Updated by Pierre Cros about 4 years ago
- Priority changed from Normal to Bas
Je préfère la solution plus globale imaginée ici : #28064
Updated by Frédéric Péters about 4 years ago
- File 0001-workflows-add-jump-button-option-to-ignore-form-erro.patch 0001-workflows-add-jump-button-option-to-ignore-form-erro.patch added
- Status changed from Nouveau to Solution proposée
- Patch proposed changed from No to Yes
Updated by Frédéric Péters about 4 years ago
- File 0001-workflows-add-jump-button-option-to-ignore-form-erro.patch 0001-workflows-add-jump-button-option-to-ignore-form-erro.patch added
Version qui ajoute un attribut formnovalidate pour éviter une éventuelle validation HTML5 côté client.
Updated by Nicolas Roche about 4 years ago
- Status changed from Solution proposée to Solution validée
J'ai mis longtemps à comprendre comment 'ignore_form_errors', qui est stocké dans l'objet pickle du workflow, est récupéré depuis le widget. En fait, elle y est calculée en amont.
/wcs/forms/common.py: def _q_index(self): ... form = self.get_workflow_form(user) # info mise au chaud ici response = self.check_submitted_form(form) # pour l'utiliser là (Pdb) self.formdef.workflow.possible_status[0].items[2].ignore_form_errors True
Updated by Frédéric Péters about 4 years ago
Pour donner l'explication, le paramètre de l'action est attaché au bouton dans fill_form, qui est la méthode appelée sur les différentes actions de workflow pour constituer le formulaire, donc :
+ widget.ignore_form_errors = self.ignore_form_errors
Ensuite donc, au moment de la validation du formulaire (check_submitted_form) cet attribut est utilisé,
+ if getattr(submit_button, 'ignore_form_errors', False):
Updated by Frédéric Péters about 4 years ago
- Status changed from Solution validée to Résolu (à déployer)
commit 3e124dc3f3d051d9514aa1da50dbf8b67e25f140 Author: Frédéric Péters <fpeters@entrouvert.com> Date: Sun Nov 3 09:23:32 2019 +0100 workflows: add jump button option to ignore form errors (#24182)
Updated by Frédéric Péters about 4 years ago
- Status changed from Résolu (à déployer) to Solution déployée
workflows: add jump button option to ignore form errors (#24182)