rougail/doc/variable/choice.md

2.6 KiB

Les variables à choix

Une variable à choix

Il est possible d'imposer une liste de valeur pour une variable particulière :

<variable name="my_variable" type="choice">
  <choice>val1</choice>
  <choice>val2</choice>
  <choice>val3</choice>
</variable>

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é :

<variable name="my_variable" type="choice">
  <choice>val1</choice>
  <choice>val2</choice>
  <choice>val3</choice>
  <value>val1</value>
</variable>

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 :

<variable name="my_variable" type="choice">
  <choice>val1</choice>
  <choice type="string">val2</choice>
  <choice type="number">3</choice>
  <choice type="boolean">True</choice>
  <choice type="nil"/>
</variable>

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 :

<variable name="my_variable" redefine="True">
  <choice>val4</choice>
</variable>

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" :

<variable name="my_variable" redefine="True" remove_choice="True">
  <choice>val1</choice>
  <choice>val2</choice>
</variable>

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 :

<variable name="my_variable" type="choice">
  <choice type="variable">other_variable</choice>
</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

<variable name="my_variable" type="choice">
  <choice type="function" name="trange">
    <param type="number">0</param>
    <param type="number">10</param>
  </choice>
  <value type="number">9</value>
</variable>