Projet

Général

Profil

Actions

Anomalie #4162

fermé

[Contrôle de vue] Problème pour un mask changeant le need d'un attribut pour les transitions d'un workflow

Ajouté par Emmanuel ESCOLA il y a presque 13 ans. Mis à jour il y a presque 13 ans.

Statut:
Intégré
Priorité:
Normal
Assigné à:
Version cible:
Début:
17/07/2013
Echéance:
% réalisé:

100%

Temps estimé:
Version source:
Solution proposée:

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.

Principaux fichiers impactés:
Complexité:
Contrôle:
Thème:
Régression:

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

Class.WDEV_4162.php (1017 octets) Class.WDEV_4162.php Jérôme Augé, 17/07/2013 17:51
DEV_4162.csv (6,55 ko) DEV_4162.csv Jérôme Augé, 17/07/2013 17:51

Mis à jour par Marc Claverie il y a presque 13 ans

  • Statut changé de Nouveau à À analyser
  • Assigné à mis à Éric Brison
  • Version cible mis à 3.2.10

Mis à jour par Éric Brison il y a presque 13 ans

  • Assigné à changé de Éric Brison à Jérôme Augé

Mis à jour par Éric Brison il y a presque 13 ans

  • Statut changé de À analyser à Analysé
  • Solution proposée mis à jour (diff)

Mis à jour par Jérôme Augé il y a presque 13 ans

Je ne reproduit pas ce problème sur 3.2.9.

- Pouvez-vous joindre les éléments (ou détailler le contexte) pour reproduire ce problème ?

Ci-joint, les éléments avec lesquels j'ai essayé de reproduire le problème :
- Class.WDEV_4162.php
- DEV_4162.csv

Mis à jour par Jérôme Augé il y a presque 13 ans

C'est l'application du masque d'un contrôle de vue sur un état donné qui ne fonctionne pas.

Le problème est donc sur les masques qui sont positionnés par un contrôle de vue sur un état (et non un masque positionné directement sur un état) : c'est cette indirection du masque via un contrôle de vue qui n'est pas correctement gérée lors du changement d'état.

Mis à jour par Éric Brison il y a presque 13 ans

  • Solution proposée mis à jour (diff)

Mis à jour par Jérôme Augé il y a presque 13 ans

  • % réalisé changé de 0 à 100

Mis à jour par Éric Brison il y a presque 13 ans

  • Statut changé de Analysé à Intégré

Appliqué par commit commit:cb418a7e383bbd0d8c33847d2772d9c38370bd96.

Mis à jour par Jérôme Augé il y a presque 13 ans

  • % réalisé changé de 100 à 80
[24-Jul-2013 15:06:25 UTC] {DOC1000} "-2" mask is not found , cannot apply it to "Foo" document
[24-Jul-2013 15:06:31 UTC] {DOC1000} "-1" mask is not found , cannot apply it to "Foo" document

Mis à jour par Jérôme Augé il y a presque 13 ans

  • % réalisé changé de 80 à 100
Actions

Formats disponibles : Atom PDF