From 940b20f5d9cb956c3d208b660d04d5c35b39fe47 Mon Sep 17 00:00:00 2001 From: Emmanuel Garette Date: Mon, 4 Sep 2023 19:19:04 +0200 Subject: [PATCH] add mode for leader variable --- src/rougail/annotator/family.py | 15 ++++++++------- src/rougail/annotator/group.py | 5 ++++- 2 files changed, 12 insertions(+), 8 deletions(-) diff --git a/src/rougail/annotator/family.py b/src/rougail/annotator/family.py index 294ca75d8..9ea37148c 100644 --- a/src/rougail/annotator/family.py +++ b/src/rougail/annotator/family.py @@ -227,21 +227,22 @@ class Annotator(Walk): if isinstance(variable, self.objectspace.family): if not hasattr(variable, 'mode'): variable.mode = self.objectspace.rougailconfig['default_family_mode'] - elif idx == 0 and is_leadership: - variable.mode = None - continue + #elif idx == 0 and is_leadership: + # variable.mode = None + # if variable.path == 'general.piwigo.users.piwigo_users': + # print(variable.path) + # continue else: self._change_variable_mode(variable, family_mode, is_leadership) if self.modes[min_variable_mode] > self.modes[variable.mode]: min_variable_mode = variable.mode - if not isinstance(family, (self.objectspace.family, self.objectspace.variables)) or \ - is_leadership: - # it's Variable, Service, ... and leadership + if not isinstance(family, (self.objectspace.family, self.objectspace.variables)): + # it's Variable, Service, ... return if not hasattr(family, 'mode'): # set the lower variable mode to family self._set_auto_mode(family, min_variable_mode) - if family.mode != min_variable_mode: + if not is_leadership and family.mode != min_variable_mode: msg = _(f'the family "{family.name}" is in "{family.mode}" mode but variables and ' f'families inside have the higher modes "{min_variable_mode}"') raise DictConsistencyError(msg, 62, family.xmlfiles) diff --git a/src/rougail/annotator/group.py b/src/rougail/annotator/group.py index c49c8f1f8..e0262d060 100644 --- a/src/rougail/annotator/group.py +++ b/src/rougail/annotator/group.py @@ -66,7 +66,10 @@ class Annotator(Walk): if variable.multi is not True: msg = _(f'the variable "{variable.name}" in a leadership must be multi') raise DictConsistencyError(msg, 32, variable.xmlfiles) - family.hidden = variable.hidden + if variable.hidden: + family.hidden = variable.hidden + elif family.hidden: + variable.hidden = family.hidden if variable.hidden: variable.frozen = True variable.force_default_on_freeze = True