do not change Config contexts properties when reload in MetaConfig (fixes #7)
This commit is contained in:
@ -28,7 +28,7 @@ from .error import PropertiesOptionError, ConfigError, ConflictError, \
|
||||
from .option import SynDynOptionDescription, DynOptionDescription, Leadership
|
||||
from .option.baseoption import BaseOption, valid_name
|
||||
from .setting import OptionBag, ConfigBag, Settings, undefined
|
||||
from .storage import get_storages, gen_storage_id, get_default_values_storages
|
||||
from .storage import get_storages, gen_storage_id, get_default_values_storages, list_sessions
|
||||
from .value import Values
|
||||
from .i18n import _
|
||||
|
||||
@ -1247,6 +1247,7 @@ class KernelMetaConfig(KernelMixConfig):
|
||||
raise ConflictError(_('config name must be uniq in '
|
||||
'groupconfig for {0}').format(session_id))
|
||||
assert type_ in ('config', 'metaconfig'), _('unknown type {}').format(type_)
|
||||
new = not persistent or session_id not in list_sessions()
|
||||
if type_ == 'config':
|
||||
config = KernelConfig(self._impl_descr,
|
||||
session_id=session_id,
|
||||
@ -1257,8 +1258,9 @@ class KernelMetaConfig(KernelMixConfig):
|
||||
session_id=session_id,
|
||||
persistent=persistent)
|
||||
# Copy context properties/permissives
|
||||
config.cfgimpl_get_settings().set_context_properties(self.cfgimpl_get_settings().get_context_properties(), config)
|
||||
config.cfgimpl_get_settings().set_context_permissives(self.cfgimpl_get_settings().get_context_permissives())
|
||||
if new:
|
||||
config.cfgimpl_get_settings().set_context_properties(self.cfgimpl_get_settings().get_context_properties(), config)
|
||||
config.cfgimpl_get_settings().set_context_permissives(self.cfgimpl_get_settings().get_context_permissives())
|
||||
|
||||
config._impl_meta = weakref.ref(self)
|
||||
self._impl_children.append(config)
|
||||
|
Reference in New Issue
Block a user