Make sure the smart setting instance value cache is valid before

display its serialize version.

Signed-off-by: Roberto Rosario <roberto.rosario.gonzalez@gmail.com>
This commit is contained in:
Roberto Rosario
2017-03-20 01:44:39 -04:00
parent 2d3f09266e
commit ff7091cd80

View File

@@ -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