From ff7091cd8036ec5295d67e9c1c46df6a85d1d343 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Mon, 20 Mar 2017 01:44:39 -0400 Subject: [PATCH] Make sure the smart setting instance value cache is valid before display its serialize version. Signed-off-by: Roberto Rosario --- mayan/apps/smart_settings/classes.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index b7d399a94e..472d37bb51 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -84,19 +84,29 @@ class Setting(object): def __unicode__(self): return unicode(self.global_name) + def cache_value(self): + self.raw_value = getattr(settings, self.global_name, self.default) + self.yaml = Setting.serialize_value(self.raw_value) + self.loaded = True + def invalidate_cache(self): self.loaded = False @property def serialized_value(self): + """ + YAML serialize value of the setting. + Used for UI display. + """ + if not self.loaded: + self.cache_value() + return self.yaml @property def value(self): if not self.loaded: - self.raw_value = getattr(settings, self.global_name, self.default) - self.yaml = Setting.serialize_value(self.raw_value) - self.loaded = True + self.cache_value() return self.raw_value