Anomalie #4162
fermé[Contrôle de vue] Problème pour un mask changeant le need d'un attribut pour les transitions d'un workflow
100%
Le problème se situe au niveau du masque du contrôle de vue et non du masque du cycle de vie.
Sur la méthode Doc::setMask($mid);
Ajout de 2 constantes:
Doc::USEMASKCVVIEW = -1
Doc::USEMASKCVEDIT = -2
Si $mid vaut une des 2 constantes le masque du cv par défaut est utilisé.
Dans WDOC - appeler $this->doc->setMask(Doc::USEMASKCVEDIT) au début du changeState.
Dans viewcard.php utiliser $this->doc->setMask(Doc::USEMASKCVVIEW)
Dans editcard.php utiliser $this->doc->setMask(Doc::USEMASKCVEDIT)
pour factoriser le code.
Description
Testé en 3.2.9
Soient deux familles FAM1 et FAM2. FAM2 hérite de FAM1.
Dans FAM1 on a un ATTR attr1 qui n'est pas obligatoire.
Dans FAM2 on redéfinit attr1 en needed :
MODATTR;attr1;;;;;;;;Y;;;;;;;
La famille FAM2 a 4 états e1 e2 e3 et e4 et le workflow suivant e1 -> t1 -> e2 -> t2 -> e3 -> t3 -> e4
On applique un MASK pour que attr1 ne soit pas obligatoire à l'état e1 (dans le MASK on met N dans la colonne msk_needeeds pour attr1)
Le masque est bien appliqué car à l'état e1 attr1 n'est pas obligatoire en édition et il l'est pour les 3 autres états.
Problème :
Lorsqu'on effectue la transition t1 (pour passer de l'état e1 à l'état e2) une erreur est levée et empêche d'effectuer la transition avec comme message :
Attr 1 doit être rempli
Il n'y a aucune contrainte mise en place dans le m0 de la transition t1.
Fichiers