Directives optionnelles
Les libellés des regles optionnelles sont des attributs d'objets
directives, l'attribut tag
. Cet
attribut tag n'est pas obligatoire, puisqu'il ne renseigne que les
règles optionnnelles. Mais il est obligatoire si la règle est optionnelle.
Depuis l'ead, il est possible de manipuler les directives optionnelles (activation/désactivation).
L'api des directives optionnelles est renseignée par une interface
../api/public/era.noyau.models.IOptionalDirective-class.html
La liste des tags pendant le lancement de l'application est stockée
dans le library store
../api/public/era.noyau.models.LibraryStore-class.html
Comportement d'une directive dans la matrice de flux
Dans le fichier constants.py
il y a
deux constantes intéressantes ici :
DIRECTIVE_OPTIONAL = 1 DIRECTIVE_ACTIVE = 2
Ensuite, dans la classe Directive
de
fwobjects.py
, il faut regarder
l'attribut attrs
. Si directive.attrs = 0
,
alors la directive n'est ni optionnelle, ni active.
Valeur autorisées pour attrs
Pour savoir si une directive est optionnelle ou active, faire un
directive.is_active()
ou un directive.is_optional()
.
attrs=0
: pas optionnelleattrs=1
: optionnelle mais pas activeattrs=3
: optionnelle et active
Attention : la valeur 2 correspond à non optionnelle mais active, ce
qui n'a pas de sens. Les valeurs autorisées sont donc [0,1,3]
Prise en compte de l'activation
A la sauvegarde du modèle, si une directive est optionelle (attrs != 0), elle va regarder dans le library_store si son tag est actif.
if self.attrs !=0 and libray_store.tags[self.tag]: self.attrs = 3
../api/public/era.noyau.fwobjects.Directive-class.html#save