Projet

Général

Profil

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

Ajouté par Stéphane Laget il y a presque 6 ans. Mis à jour il y a plus de 4 ans.

Statut:
Fermé
Priorité:
Bas
Assigné à:
-
Début:
30 mai 2018
Echéance:
% réalisé:

0%

Temps estimé:
Patch proposed:
Oui
Planning:
Non

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.


Fichiers


Demandes liées

Dupliqué par 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 juin 2018

Actions

Révisions associées

Révision 3e124dc3 (diff)
Ajouté par Frédéric Péters il y a plus de 4 ans

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

Historique

#1

Mis à jour par Stéphane Laget il y a presque 5 ans

  • Version cible mis à Wishlist
#3

Mis à jour par Frédéric Péters il y a presque 5 ans

  • Dupliqué par Development #24634: Actions bloquées dans les statuts où il y a affichage d'un formulaire avec des champs obligatoires. ajouté
#4

Mis à jour par Pierre Cros il y a presque 5 ans

À 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

Mis à jour par Pierre Cros il y a plus de 4 ans

  • Priorité changé de Normal à Bas
#7

Mis à jour par Stéphane Laget il y a plus de 4 ans

  • Priorité changé de Bas à Normal
#8

Mis à jour par Stéphane Laget il y a plus de 4 ans

  • Description mis à jour (diff)
#9

Mis à jour par Pierre Cros il y a plus de 4 ans

  • Priorité changé de Normal à Bas

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

#10

Mis à jour par Frédéric Péters il y a plus de 4 ans

#11

Mis à jour par Frédéric Péters il y a plus de 4 ans

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

#12

Mis à jour par Nicolas Roche il y a plus de 4 ans

  • Statut changé de Solution proposée à 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

Mis à jour par Frédéric Péters il y a plus de 4 ans

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

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Solution validée à 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

Mis à jour par Frédéric Péters il y a plus de 4 ans

  • Statut changé de Résolu (à déployer) à Solution déployée

Formats disponibles : Atom PDF