Merge branch 'develop' into dist/risotto/risotto-2.8.0/develop
This commit is contained in:
commit
11294fdd61
@ -108,7 +108,7 @@ class GroupAnnotator:
|
||||
self.manage_follower(namespace,
|
||||
leader_family_name,
|
||||
variable,
|
||||
leader_name,
|
||||
leadership_name,
|
||||
follower_names,
|
||||
leader_space,
|
||||
leader_is_hidden,
|
||||
@ -126,8 +126,13 @@ class GroupAnnotator:
|
||||
# leader_is_hidden = True
|
||||
else:
|
||||
leader_space = self.objectspace.Leadership(variable.xmlfiles)
|
||||
if hasattr(group, 'name'):
|
||||
leadership_name = group.name
|
||||
else:
|
||||
leadership_name = leader_name
|
||||
leader_is_hidden = self.manage_leader(leader_space,
|
||||
leader_family_name,
|
||||
leadership_name,
|
||||
leader_name,
|
||||
namespace,
|
||||
variable,
|
||||
@ -142,6 +147,7 @@ class GroupAnnotator:
|
||||
def manage_leader(self,
|
||||
leader_space: 'Leadership',
|
||||
leader_family_name: str,
|
||||
leadership_name: str,
|
||||
leader_name: str,
|
||||
namespace: str,
|
||||
variable: 'Variable',
|
||||
@ -152,7 +158,7 @@ class GroupAnnotator:
|
||||
if variable.multi is not True:
|
||||
raise DictConsistencyError(_('the variable {} in a group must be multi').format(variable.name))
|
||||
leader_space.variable = []
|
||||
leader_space.name = leader_name
|
||||
leader_space.name = leadership_name
|
||||
leader_space.hidden = variable.hidden
|
||||
if variable.hidden:
|
||||
leader_is_hidden = True
|
||||
@ -167,9 +173,9 @@ class GroupAnnotator:
|
||||
leader_space.doc = variable.description
|
||||
else:
|
||||
leader_space.doc = variable.name
|
||||
leader_path = namespace + '.' + leader_family_name + '.' + leader_name
|
||||
leadership_path = namespace + '.' + leader_family_name + '.' + leadership_name
|
||||
self.objectspace.paths.add_family(namespace,
|
||||
leader_path,
|
||||
leadership_path,
|
||||
leader_space,
|
||||
)
|
||||
leader_family = self.objectspace.space.variables[namespace].family[leader_family_name]
|
||||
|
@ -131,6 +131,7 @@
|
||||
|
||||
<!ELEMENT group (follower+)>
|
||||
<!ATTLIST group leader CDATA #REQUIRED>
|
||||
<!ATTLIST group name CDATA #IMPLIED>
|
||||
<!ATTLIST group description CDATA #IMPLIED>
|
||||
|
||||
<!ELEMENT param (#PCDATA)>
|
||||
|
27
tests/dictionaries/10load_leadership_name/00-base.xml
Normal file
27
tests/dictionaries/10load_leadership_name/00-base.xml
Normal file
@ -0,0 +1,27 @@
|
||||
<?xml version="1.0" encoding="utf-8"?>
|
||||
<rougail>
|
||||
<variables>
|
||||
<family name='general'>
|
||||
<variable name='mode_conteneur_actif' type='oui/non' description="No change">
|
||||
<value>non</value>
|
||||
</variable>
|
||||
</family>
|
||||
<family name='general1'>
|
||||
<variable name='leader' type='string' description="leader" multi="True"/>
|
||||
<variable name='follower1' type='string' description="follower1"/>
|
||||
<variable name='follower2' type='string' description="follower2"/>
|
||||
</family>
|
||||
</variables>
|
||||
<constraints>
|
||||
<fill name='calc_val' target='follower1'>
|
||||
<param name='valeur'>valfill</param>
|
||||
</fill>
|
||||
<fill name='calc_val' target='follower2'>
|
||||
<param type='variable'>follower1</param>
|
||||
</fill>
|
||||
<group leader='leader' name="other_name">
|
||||
<follower>follower1</follower>
|
||||
<follower>follower2</follower>
|
||||
</group>
|
||||
</constraints>
|
||||
</rougail>
|
@ -0,0 +1 @@
|
||||
{"rougail.general.mode_conteneur_actif": "non", "rougail.general1.other_name.leader": [], "rougail.general1.other_name.follower1": [], "rougail.general1.other_name.follower2": []}
|
19
tests/dictionaries/10load_leadership_name/tiramisu/base.py
Normal file
19
tests/dictionaries/10load_leadership_name/tiramisu/base.py
Normal file
@ -0,0 +1,19 @@
|
||||
import imp
|
||||
func = imp.load_source('func', 'tests/dictionaries/../eosfunc/test.py')
|
||||
for key, value in dict(locals()).items():
|
||||
if key != ['imp', 'func']:
|
||||
setattr(func, key, value)
|
||||
try:
|
||||
from tiramisu3 import *
|
||||
except:
|
||||
from tiramisu import *
|
||||
from rougail.tiramisu import ConvertDynOptionDescription
|
||||
option_3 = ChoiceOption(properties=frozenset({'mandatory', 'normal'}), name='mode_conteneur_actif', doc='No change', multi=False, default='non', values=('oui', 'non'))
|
||||
option_2 = OptionDescription(name='general', doc='general', properties=frozenset({'normal'}), children=[option_3])
|
||||
option_6 = StrOption(name='leader', doc='leader', multi=True)
|
||||
option_7 = StrOption(properties=frozenset({'normal'}), name='follower1', doc='follower1', multi=True, default=Calculation(func.calc_val, Params((), kwargs={'valeur': ParamValue("valfill")})))
|
||||
option_8 = StrOption(properties=frozenset({'normal'}), name='follower2', doc='follower2', multi=True, default=Calculation(func.calc_val, Params((ParamOption(option_7, notraisepropertyerror=False, todict=False)), kwargs={})))
|
||||
option_5 = Leadership(name='other_name', doc='leader', properties=frozenset({'normal'}), children=[option_6, option_7, option_8])
|
||||
option_4 = OptionDescription(name='general1', doc='general1', properties=frozenset({'normal'}), children=[option_5])
|
||||
option_1 = OptionDescription(name='rougail', doc='rougail', children=[option_2, option_4])
|
||||
option_0 = OptionDescription(name='baseoption', doc='baseoption', children=[option_1])
|
Loading…
Reference in New Issue
Block a user