From 895dd9dc3325a979fd69d8bc3fb662f41004ac32 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sat, 31 Dec 2016 02:21:23 -0400 Subject: [PATCH] Optimize setting retrieval. Remove support for path settings checking. Settings should be just a key, value storage. --- mayan/apps/smart_settings/apps.py | 7 ------- mayan/apps/smart_settings/classes.py | 12 +++++------- 2 files changed, 5 insertions(+), 14 deletions(-) diff --git a/mayan/apps/smart_settings/apps.py b/mayan/apps/smart_settings/apps.py index 78bd8b9da4..438538e6e4 100644 --- a/mayan/apps/smart_settings/apps.py +++ b/mayan/apps/smart_settings/apps.py @@ -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,) diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index b3ed387d99..37f74f7661 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -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)