Optimize setting retrieval. Remove support for path settings checking.

Settings should be just a key, value storage.
This commit is contained in:
Roberto Rosario
2016-12-31 02:21:23 -04:00
parent 4f889fc21d
commit 895dd9dc33
2 changed files with 5 additions and 14 deletions

View File

@@ -3,7 +3,6 @@ from __future__ import unicode_literals
from django.utils.translation import ugettext_lazy as _
from common import MayanAppConfig, menu_setup, menu_object
from common.widgets import exists_widget
from navigation import SourceColumn
from .classes import Namespace, Setting
@@ -33,12 +32,6 @@ class SmartSettingsApp(MayanAppConfig):
SourceColumn(
source=Setting, label=_('Value'), attribute='serialized_value'
)
SourceColumn(
source=Setting, label=_('Found in path'),
func=lambda context: exists_widget(
context['object'].value
) if context['object'].is_path else _('n/a')
)
menu_object.bind_links(
links=(link_namespace_detail,), sources=(Namespace,)

View File

@@ -69,8 +69,8 @@ class Setting(object):
self.global_name = global_name
self.default = default
self.help_text = help_text
self.is_path = is_path
self.yaml = None
self.raw_value = getattr(settings, self.global_name, self.default)
self.yaml = Setting.serialize_value(self.raw_value)
namespace.settings.append(self)
def __unicode__(self):
@@ -78,16 +78,14 @@ class Setting(object):
@property
def serialized_value(self):
self.yaml = Setting.serialize_value(
getattr(settings, self.global_name, self.default)
)
return self.yaml
@property
def value(self):
return Setting.deserialize_value(self.serialized_value)
return self.raw_value
@value.setter
def value(self, value):
# value is in YAML format
self.yaml = value
self.raw_value = Setting.deserialize_value(value)