Settings: Add support for post edit callbacks
Settings can be provided with a function via the new "post_edit_function" argument. This function will be called when the setting's value is updated. The function will only receive one argument: The instance of the setting being changed. Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
@@ -146,13 +146,14 @@ class Setting(object):
|
|||||||
path=settings.CONFIGURATION_LAST_GOOD_FILEPATH
|
path=settings.CONFIGURATION_LAST_GOOD_FILEPATH
|
||||||
)
|
)
|
||||||
|
|
||||||
def __init__(self, namespace, global_name, default, help_text=None, is_path=False):
|
def __init__(self, namespace, global_name, default, help_text=None, is_path=False, post_edit_function=None):
|
||||||
self.global_name = global_name
|
self.global_name = global_name
|
||||||
self.default = default
|
self.default = default
|
||||||
self.help_text = help_text
|
self.help_text = help_text
|
||||||
self.loaded = False
|
self.loaded = False
|
||||||
self.namespace = namespace
|
self.namespace = namespace
|
||||||
self.environment_variable = False
|
self.environment_variable = False
|
||||||
|
self.post_edit_function = post_edit_function
|
||||||
namespace._settings.append(self)
|
namespace._settings.append(self)
|
||||||
self.__class__._registry[global_name] = self
|
self.__class__._registry[global_name] = self
|
||||||
|
|
||||||
@@ -204,3 +205,5 @@ class Setting(object):
|
|||||||
# value is in YAML format
|
# value is in YAML format
|
||||||
self.yaml = value
|
self.yaml = value
|
||||||
self.raw_value = Setting.deserialize_value(value)
|
self.raw_value = Setting.deserialize_value(value)
|
||||||
|
if self.post_edit_function:
|
||||||
|
self.post_edit_function(setting=self)
|
||||||
|
|||||||
Reference in New Issue
Block a user