From 84bad05807d28b50d9bb4595367b26b2d0510244 Mon Sep 17 00:00:00 2001 From: Roberto Rosario Date: Sun, 8 Dec 2019 14:54:48 -0400 Subject: [PATCH] Make setting overriding more clear Add better text explanation. Change the column to a check mark widget. Helps GitLab issue #702. Signed-off-by: Roberto Rosario --- HISTORY.rst | 3 +++ mayan/apps/smart_settings/apps.py | 6 +++--- mayan/apps/smart_settings/classes.py | 7 +++++++ 3 files changed, 13 insertions(+), 3 deletions(-) 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)