From 02f9e5091ee77d4a5d245649eb3e3019bc743f3d Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Sun, 4 Oct 2020 15:11:44 +0200 Subject: [PATCH] dynamic variable and calculation --- doc/auto.rst | 23 ++ doc/fill.rst | 277 ++++++++++++++++++ doc/variable.rst | 13 + src/rougail/annotator.py | 22 +- src/rougail/data/rougail.dtd | 2 +- src/rougail/path.py | 4 + src/rougail/tiramisureflector.py | 4 +- tests/flattener_dicos/01fill_base/00-base.xml | 4 +- .../01fill_base/tiramisu/base.py | 2 +- .../01fill_base_hidden/00-base.xml | 28 ++ .../__init__.py | 0 .../01fill_base_hidden/makedict/base.json | 1 + .../tiramisu/__init__.py | 0 .../01fill_base_hidden/tiramisu/base.py | 9 + .../01fill_information/tiramisu/base.py | 2 +- .../01fill_information_unknown/00-base.xml | 23 ++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 8 + .../01fill_number/tiramisu/base.py | 2 +- .../10autosave_hidden/tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../10leadership_append/tiramisu/base.py | 2 +- .../10leadership_auto/tiramisu/base.py | 2 +- .../10leadership_autoleader/tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../10leadership_multi/tiramisu/base.py | 2 +- .../10load_leadership/tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../tiramisu/base.py | 2 +- .../10valid_enum_variable/tiramisu/base.py | 2 +- .../00-base.xml | 0 .../__init__.py | 0 .../makedict/base.json | 0 .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 0 .../20family_dynamic_fill_dynamic/00-base.xml | 25 ++ .../20family_dynamic_fill_dynamic/__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 12 + .../00-base.xml | 25 ++ .../__init__.py | 0 .../makedict/base.json | 1 + .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 12 + .../00-base.xml | 0 .../30mandatory_withoutvalue_fill/__init__.py | 0 .../makedict/base.json | 0 .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 2 +- .../00-base.xml | 0 .../30mandatory_withvalue_fill/__init__.py | 0 .../makedict/base.json | 0 .../tiramisu/__init__.py | 0 .../tiramisu/base.py | 2 +- .../40ifin_leadershipauto/tiramisu/base.py | 2 +- .../60action_external/tiramisu/base.py | 2 +- .../00-base.xml | 25 ++ .../__init__.py | 0 .../80family_dynamic_with_suffix/00-base.xml | 25 ++ .../80family_dynamic_with_suffix/__init__.py | 0 67 files changed, 553 insertions(+), 36 deletions(-) create mode 100644 doc/auto.rst create mode 100644 doc/fill.rst create mode 100644 doc/variable.rst create mode 100644 tests/flattener_dicos/01fill_base_hidden/00-base.xml rename tests/flattener_dicos/{20family_dynamic_calc => 01fill_base_hidden}/__init__.py (100%) create mode 100644 tests/flattener_dicos/01fill_base_hidden/makedict/base.json rename tests/flattener_dicos/{20family_dynamic_calc => 01fill_base_hidden}/tiramisu/__init__.py (100%) create mode 100644 tests/flattener_dicos/01fill_base_hidden/tiramisu/base.py create mode 100644 tests/flattener_dicos/01fill_information_unknown/00-base.xml rename tests/flattener_dicos/{30mandatory_withoutvaluecalc => 01fill_information_unknown}/__init__.py (100%) create mode 100644 tests/flattener_dicos/01fill_information_unknown/makedict/base.json rename tests/flattener_dicos/{30mandatory_withoutvaluecalc => 01fill_information_unknown}/tiramisu/__init__.py (100%) create mode 100644 tests/flattener_dicos/01fill_information_unknown/tiramisu/base.py rename tests/flattener_dicos/{20family_dynamic_calc => 20family_dynamic_fill}/00-base.xml (100%) rename tests/flattener_dicos/{30mandatory_withvaluecalc => 20family_dynamic_fill}/__init__.py (100%) rename tests/flattener_dicos/{20family_dynamic_calc => 20family_dynamic_fill}/makedict/base.json (100%) rename tests/flattener_dicos/{30mandatory_withvaluecalc => 20family_dynamic_fill}/tiramisu/__init__.py (100%) rename tests/flattener_dicos/{20family_dynamic_calc => 20family_dynamic_fill}/tiramisu/base.py (100%) create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic/00-base.xml create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic/__init__.py create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic/makedict/base.json create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic/tiramisu/__init__.py create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic/tiramisu/base.py create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic_suffix/00-base.xml create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic_suffix/__init__.py create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic_suffix/makedict/base.json create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic_suffix/tiramisu/__init__.py create mode 100644 tests/flattener_dicos/20family_dynamic_fill_dynamic_suffix/tiramisu/base.py rename tests/flattener_dicos/{30mandatory_withoutvaluecalc => 30mandatory_withoutvalue_fill}/00-base.xml (100%) create mode 100644 tests/flattener_dicos/30mandatory_withoutvalue_fill/__init__.py rename tests/flattener_dicos/{30mandatory_withoutvaluecalc => 30mandatory_withoutvalue_fill}/makedict/base.json (100%) create mode 100644 tests/flattener_dicos/30mandatory_withoutvalue_fill/tiramisu/__init__.py rename tests/flattener_dicos/{30mandatory_withoutvaluecalc => 30mandatory_withoutvalue_fill}/tiramisu/base.py (73%) rename tests/flattener_dicos/{30mandatory_withvaluecalc => 30mandatory_withvalue_fill}/00-base.xml (100%) create mode 100644 tests/flattener_dicos/30mandatory_withvalue_fill/__init__.py rename tests/flattener_dicos/{30mandatory_withvaluecalc => 30mandatory_withvalue_fill}/makedict/base.json (100%) create mode 100644 tests/flattener_dicos/30mandatory_withvalue_fill/tiramisu/__init__.py rename tests/flattener_dicos/{30mandatory_withvaluecalc => 30mandatory_withvalue_fill}/tiramisu/base.py (68%) create mode 100644 tests/flattener_dicos/80family_dynamic_fill_dynamic_suffix_value/00-base.xml create mode 100644 tests/flattener_dicos/80family_dynamic_fill_dynamic_suffix_value/__init__.py create mode 100644 tests/flattener_dicos/80family_dynamic_with_suffix/00-base.xml create mode 100644 tests/flattener_dicos/80family_dynamic_with_suffix/__init__.py diff --git a/doc/auto.rst b/doc/auto.rst new file mode 100644 index 00000000..322719f9 --- /dev/null +++ b/doc/auto.rst @@ -0,0 +1,23 @@ +Valeur automatiquement modifiée +=============================== + +Une variable avec valeur automatiquement modifiée est une variable dont la valeur sera considéré comme modifié quand le serveur sera déployé. + +Voici un variable a valeur automatiquement modifiée : + + + +Dans ce cas la valeur est fixée à la valeur actuelle. +Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée. + +Valeur en lecture seule automatique +=================================== + +Une variable avec valeur en lecture seule automatique est une variable dont la valeur ne sera plus modifiable par l'utilisateur quand le serveur sera déployé. + +Voici un variable à valeur en lecture seule automatique : + + + +Dans ce cas la valeur est fixée à la valeur actuelle et elle ne sera plus modifiable par l'utilisateur. +Par exemple, si la valeur de cette variable est issue d'un calcul, la valeur ne sera plus recalculée. diff --git a/doc/fill.rst b/doc/fill.rst new file mode 100644 index 00000000..cdbf96f9 --- /dev/null +++ b/doc/fill.rst @@ -0,0 +1,277 @@ +Les variables calculées +======================= + +Une variable calculée est une variable donc sa valeur est le résultat d'une fonction python. + +Variable avec une valeur par défaut calculée +-------------------------------------------- + +Créons une variable de type "oui/non" donc la valeur est retournée par la fonction "return_no" : + + + + + + + + + + +Puis créons la fonction "return_no" : + + def return_no(): + return 'non' + +Dans ce cas, la valeur par défaut est la valeur retournée par la fonction (ici "non"), elle sera calculée tant que l'utilisateur n'a pas de spécifié une valeur à cette variable. + +Si l'utilisateur à définit une valeur par défaut à "my_calculated_variable" : + + + oui + + +Cette valeur par défaut sera complètement ignorée. + +Variable avec une valeur calculée +--------------------------------- + +En ajoutant le paramètre "hidden" à "True" dans la variable précédente, l'utilisateur n'aura plus la possibilité de modifié la valeur. La valeur de la variable sera donc systématiquement calculée : + +