144 lines
6.3 KiB
Markdown
144 lines
6.3 KiB
Markdown
---
|
|
gitea: none
|
|
include_toc: true
|
|
---
|
|
|
|
# Une famille
|
|
|
|
## Synopsis
|
|
|
|
Une famille est un conteneur de variables et de sous-famille.
|
|
|
|
⚠️ Une famille sans sous-famille ni sous-variable sera automatiquement supprimée.
|
|
|
|
## Paramètres
|
|
|
|
| Paramètre | Commentaires |
|
|
|-----------|--------------|
|
|
| **name**<br/>`string`<br/>`mandatory` | Nom de la famille.<br/>C'est avec ce nom qu'on va pouvoir interagir avec la famille.<br/>Il est préférable de suivre la [convention sur les noms de variable](convention.md). |
|
|
| **type**, **\_type**<br/>`string` | Type de la famille.<br/>Le type n'est pas obligatoire même si parfois c'est nécessaire de le faire pour aider le moteur.<br/>**Valeurs possible :**<br/>- `family` ← par defaut<br/>- `leadership`<br/>- `dynamic`<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "type" il est possible d'utiliser l'attribut "\_type". |
|
|
| **description**, **\_description**<br/>`string` | La description de la famille.<br/>Information utilisateur permettant de comprendre l'utilité de la famille.<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "description" il est possible d'utiliser l'attribut "\_description". |
|
|
| **help**, **\_help**<br/>`string` | Aide complémentaire associée à la famille.<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "help" il est possible d'utiliser l'attribut "\_help". |
|
|
| **mode**, **\_mode**<br/>`string` | Mode de la famille<br/>Le mode par défaut d'une famille est le mode le plus petit des familles parentes, les variables enfants ou des familles enfants qui sont contenus dans cette famille.<br/> Ce mode permet aussi de définir le mode par défaut des variables ou des familes inclusent dans cette famille.<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "mode" il est possible l'attribut "\_mode". |
|
|
| **hidden**, **\_hidden**<br/>`boolean` ou [`calcul`](../condition/README.md) | Famille invisible.<br/>Permet de cacher une famille ainsi que les variables ou les familles inclusent dans cette famille.<br/>Cela signifie que la famille ne sera plus visible pour l'utilisateur mais sera visible pour un calcul.<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "hidden" il est possible l'attribut "\_hidden". |
|
|
| **disabled**, **\_disabled**<br/>`boolean` ou [`calcul`](../condition/README.md) | Famille désactivée.<br/>Permet de désactiver une famille ainsi que les variables ou les familles inclusent dans cette famille.<br/>Cela signifie que la famille ne sera plus visible pour l'utilisateur mais également pour un calcul.<br/>📝 Si une sous-famille ou une sous-variable a déjà le nom "disabled" il est possible l'attribut "\_disabled". |
|
|
|
|
## Famille crée dynamiquement
|
|
|
|
Pour créer une famille dynamiquement, il faut créer une famille fictive lié à une variable.
|
|
Le nom et la description de la famille et des variables qu'elle contient sera en réalité le prefix du nouveau nom/description. Le suffix viendra de la valeur de la variable liée.
|
|
|
|
Bien évidement si le contenu de variable liée venait a évoluer, de nouvelles familles dynamiques apparaitront ou disparaîtront.
|
|
|
|
A noter que :
|
|
|
|
- la variable liée à la famille doit être obligatoirement une variable multiple
|
|
- il n'est pas possible de mettre une simple famille dans une famille dynamique
|
|
- il est possible de mettre une famille meneuse dans une famille dynamique
|
|
|
|
## Variable meneuse ou suiveuse
|
|
|
|
Une famille meneuse a un attribut type à "leadership". Le type est obligatoire.
|
|
|
|
### Un famille meneuse
|
|
|
|
Les variables meneuses et suiveuses sont placées dans un famille meneuse.
|
|
|
|
Une famille meneuse ne peut pas contenir d'autre famille.
|
|
|
|
Le mode par défaut de la famille meneuse est le mode de la variable meneuse.
|
|
|
|
### Variable meneuse
|
|
|
|
Une variable meneuse est une variable qui va guider la longueur d'autres variables (appelé variables suiveuses).
|
|
|
|
Une variable meneuse est une [variable](../variable/README.md) qui est obligatoirement de type multiple.
|
|
|
|
Une variable meneuse peut être obligatoire.
|
|
|
|
Le mode par défaut correspond au plus petit mode définit pour les variables suiveuses.
|
|
|
|
### Variable suiveuse
|
|
|
|
Une variable suiveuse est une variable donc la longueur n'est pas déterminé par elle-même, mais est identique à celle de la variable meneuse dont elle dépend.
|
|
|
|
Une variable suiveuse est une variable placer juste derrière une variable meneuse ou une autre variable suiveuse.
|
|
|
|
L'ordre de définition des variables suiveuses est important.
|
|
|
|
Cette variable peut être de type multiple. Dans ce cas, pour un index de la variable meneuse determiné, il est possible de mettre plusieurs valeurs à une même variable.
|
|
|
|
Une variable suiveuse peut être obligatoire. Cela signifie que lorsqu'une variable meneuse est renseigné, il faut obligatoirement que la variable suiveuse est également une valeur à l'index considéré.
|
|
Si aucune valeur n'est définit pour la variable meneuse, aucune valeur n'est a spécifié pour la variable suiveuse.
|
|
|
|
Le mode par défaut d'une variable suiveuse correspond au mode de la variable meneuse.
|
|
|
|
Si une variable meneuse est caché ou désactivé, les variables suiveuses le seront également.
|
|
|
|
## Exemple
|
|
|
|
### Famille simple
|
|
|
|
```yml
|
|
---
|
|
version: '1.0'
|
|
my_family:
|
|
type: family
|
|
description: This is a great family
|
|
help: This is the help of a great family
|
|
mode: expert
|
|
```
|
|
|
|
### Famille crée dynamiquement
|
|
|
|
```yml
|
|
---
|
|
version: '1.0'
|
|
varname:
|
|
multi: true
|
|
default:
|
|
- val1
|
|
- val2
|
|
my_dyn_family_:
|
|
type: dynamic
|
|
variable: rougail.varname
|
|
description: 'Describe '
|
|
my_dyn_var_:
|
|
type: string
|
|
```
|
|
|
|
Créera dynamiquement deux familles :
|
|
|
|
- "rougail.my\_dyn\_family\_val1" avec la description "Describe val1"
|
|
- "rougail.my\_dyn\_family\_val2" avec la description "Describe val2"
|
|
|
|
Dans la famille dynamique "rougail.my\_dyn\_family\_val1" on retrouvera une variable "my\_dyn\_var\_val1".
|
|
|
|
### Variable meneuse ou suiveuse
|
|
|
|
#### Définition des variables meneuse et suiveuse
|
|
|
|
Voici un exemple de définition d'une variable meneuse et de deux variables meneuses :
|
|
|
|
```yml
|
|
---
|
|
version: '1.0'
|
|
family:
|
|
type: leadership
|
|
leader:
|
|
multi: true
|
|
follower1:
|
|
follower2:
|
|
multi: true
|
|
```
|
|
|
|
#### Ajout d'une nouvelle variable suiveuse
|
|
|
|
Pour ajouter une nouvelle variable suiveuse, dans un nouveau dictionnaire, il suffit de définir une ou des nouvelles variables dans la famille meneuse :
|
|
|
|
```yml
|
|
---
|
|
version: '1.0'
|
|
family:
|
|
follower3:
|
|
```
|