diff --git a/HISTORY.rst b/HISTORY.rst index 4ab51384f0..c53ac0b7bd 100644 --- a/HISTORY.rst +++ b/HISTORY.rst @@ -10,6 +10,9 @@ - Add test for GitLab issue #702 - Don't set SourceColumns to the attribute name when no help text is defined. +- Make it clear when a setting is being overrided by an environment + variable. Add better text explanation. Change the column to a check + mark widget. 3.3.3 (2019-12-05) ================== diff --git a/mayan/apps/smart_settings/apps.py b/mayan/apps/smart_settings/apps.py index 32d2a69950..cb94eea4e2 100644 --- a/mayan/apps/smart_settings/apps.py +++ b/mayan/apps/smart_settings/apps.py @@ -3,6 +3,7 @@ from __future__ import unicode_literals from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.apps import MayanAppConfig +from mayan.apps.common.html_widgets import TwoStateWidget from mayan.apps.common.menus import menu_secondary, menu_setup, menu_object from mayan.apps.navigation.classes import SourceColumn @@ -35,11 +36,10 @@ class SmartSettingsApp(MayanAppConfig): func=lambda context: setting_widget(context['object']) ) SourceColumn( - source=Setting, label=_('Value'), attribute='serialized_value' + attribute='serialized_value', label=_('Value'), source=Setting ) SourceColumn( - source=Setting, label=_('Overrided by environment variable?'), - func=lambda context: _('Yes') if context['object'].environment_variable else _('No') + attribute='is_overrided', source=Setting, widget=TwoStateWidget ) menu_object.bind_links( diff --git a/mayan/apps/smart_settings/classes.py b/mayan/apps/smart_settings/classes.py index 59595aeb02..d4d47497da 100644 --- a/mayan/apps/smart_settings/classes.py +++ b/mayan/apps/smart_settings/classes.py @@ -16,6 +16,7 @@ from django.utils.functional import Promise from django.utils.encoding import ( force_bytes, force_text, python_2_unicode_compatible ) +from django.utils.translation import ugettext_lazy as _ from mayan.apps.common.serialization import yaml_dump, yaml_load @@ -343,6 +344,12 @@ class Setting(object): def invalidate_cache(self): self.loaded = False + def is_overrided(self): + return self.environment_variable + + is_overrided.short_description = _('Overrided') + is_overrided.help_text = 'Is this settings being overrided by an environment variable?' + def migrate(self): self.namespace.migrate(setting=self)