Project

General

Profile

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

Added by Stéphane Laget over 1 year ago. Updated 25 days ago.

Status:
Solution déployée
Priority:
Bas
Assignee:
-
Start date:
30 May 2018
Due date:
% Done:

0%

Patch proposed:
Yes
Planning:
No

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.

0001-workflows-add-jump-button-option-to-ignore-form-erro.patch View (6.19 KB) Frédéric Péters, 03 Nov 2019 09:28 AM

0001-workflows-add-jump-button-option-to-ignore-form-erro.patch View (6.29 KB) Frédéric Péters, 03 Nov 2019 09:35 AM


Related issues

Duplicated by w.c.s. - Development #24634: Actions bloquées dans les statuts où il y a affichage d'un formulaire avec des champs obligatoires. Rejeté 19 Jun 2018

Associated revisions

Revision 3e124dc3 (diff)
Added by Frédéric Péters 28 days ago

workflows: add jump button option to ignore form errors (#24182)

History

#1 Updated by Stéphane Laget 5 months ago

  • Target version set to Wishlist

#3 Updated by Frédéric Péters 5 months ago

  • Duplicated by Development #24634: Actions bloquées dans les statuts où il y a affichage d'un formulaire avec des champs obligatoires. added

#4 Updated by Pierre Cros 5 months 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.

#6 Updated by Pierre Cros 3 months ago

  • Priority changed from Normal to Bas

#7 Updated by Stéphane Laget 2 months ago

  • Priority changed from Bas to Normal

#8 Updated by Stéphane Laget about 2 months ago

  • Description updated (diff)

#9 Updated by Pierre Cros about 2 months ago

  • Priority changed from Normal to Bas

Je préfère la solution plus globale imaginée ici : #28064

#10 Updated by Frédéric Péters about 1 month ago

#11 Updated by Frédéric Péters about 1 month ago

Version qui ajoute un attribut formnovalidate pour éviter une éventuelle validation HTML5 côté client.

#12 Updated by Nicolas Roche 29 days 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

#13 Updated by Frédéric Péters 29 days 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):

#14 Updated by Frédéric Péters 28 days 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)

#15 Updated by Frédéric Péters 25 days ago

  • Status changed from Résolu (à déployer) to Solution déployée

Also available in: Atom PDF