# Les variables à choix ## Une variable à choix Il est possible d'imposer une liste de valeur pour une variable particulière : ```xml val1 val2 val3 ``` En YAML : ```yml - variable: name: my_variable type: choice choice: - text: val1 - text: val2 - text: val3 ``` Dans ce cas, seules les valeurs proposées sont possibles pour cette variable. Cette variable n'est pas obligatoire dont il est possible de mettre la valeur "None". Si la variable est obligatoire ou si une valeur est précisée (la variable passe obligatoire) alors la valeur "None" n'est plus autorisé : ```xml val1 val2 val3 val1 ``` En YAML : ```yml - variable: name: my_variable type: choice choice: - text: val1 - text: val2 - text: val3 value: - text: val1 ``` ## Un variable à choix typée Par défaut les choix sont de type "string". Il est possible de préciser des nombres, des booléens ou la valeur None : ```xml val1 val2 3 True ``` En YAML : ```yml - variable: name: my_variable type: choice choice: - text: val1 - type: string text: val2 - type: number text: 3 - type: boolean text: true - type: 'nil' ``` Comme vu précédement ajouter la valeur None n'est pas utile parce qu'elle est automatiquement ajouté si la variable n'est pas obligatoire. ## Ajouter une option à une variable à choix existante Pour ajouter un choix à une variable à choix existante, rien de plus simple, juste redéfinir la variable en ajoutant le choix voulu : ```xml val4 ``` En YAML : ```yml - variable: name: my_variable redefine: true choice: - text: val4 ``` ## Redéfinir une option à choix Si on veut supprimer un choix ou redéfinir complètement la liste, il faut redéfinir cette variable et ajouter l'attribut "remove_choice" à "True" : ```xml val1 val2 ``` En YAML : ```yml - variable: name: my_variable redefine: true remove_choice: true choice: - text: val1 - text: val2 ``` Dans ce cas toutes les anciens choix ne seront plus possible. Seuls les nouveaux le seront. ## Un variable à choix provenant d'une variable Une variable à valeur multiple peut servir de source des choix : ```xml other_variable ``` En YAML : ```yml - variable: name: my_variable type: choice choice: - type: variable text: other_variable ``` Dans ce cas, toutes les valeurs de la variable seront des choix utilisables par l'utilisateur. Seul un choice de type "variable" est possible par variable. ## Un variable à choix provenant d'une fonction ```xml 0 10 9 ``` En YAML : ```yml - variable: name: my_variable type: choice choice: - type: function name: range param: - type: number text: 0 - type: number text: 10 value: - type: number text: 9 ```