From 7cb029e7c39773b6567ad9437ff73fc1d04fb6ee Mon Sep 17 00:00:00 2001 From: Oliver Date: Sat, 1 Jan 2022 22:20:21 +1100 Subject: [PATCH] Refactor: Rename "GLOBAL_SETTINGS" to "SETTINGS" --- .../management/commands/clean_settings.py | 17 +++++++++++------ InvenTree/common/models.py | 16 ++++++++-------- InvenTree/common/tests.py | 8 ++++---- InvenTree/plugin/admin.py | 5 +++-- InvenTree/plugin/registry.py | 4 ++-- InvenTree/users/models.py | 3 ++- 6 files changed, 30 insertions(+), 23 deletions(-) diff --git a/InvenTree/InvenTree/management/commands/clean_settings.py b/InvenTree/InvenTree/management/commands/clean_settings.py index e0fd09e6c7..283416de29 100644 --- a/InvenTree/InvenTree/management/commands/clean_settings.py +++ b/InvenTree/InvenTree/management/commands/clean_settings.py @@ -2,9 +2,14 @@ Custom management command to cleanup old settings that are not defined anymore """ +import logging + from django.core.management.base import BaseCommand +logger = logging.getLogger('inventree') + + class Command(BaseCommand): """ Cleanup old (undefined) settings in the database @@ -12,27 +17,27 @@ class Command(BaseCommand): def handle(self, *args, **kwargs): - print("Collecting settings") + logger.info("Collecting settings") from common.models import InvenTreeSetting, InvenTreeUserSetting # general settings db_settings = InvenTreeSetting.objects.all() - model_settings = InvenTreeSetting.GLOBAL_SETTINGS + model_settings = InvenTreeSetting.SETTINGS # check if key exist and delete if not for setting in db_settings: if setting.key not in model_settings: setting.delete() - print(f"deleted setting '{setting.key}'") + logger.info(f"deleted setting '{setting.key}'") # user settings db_settings = InvenTreeUserSetting.objects.all() - model_settings = InvenTreeUserSetting.GLOBAL_SETTINGS + model_settings = InvenTreeUserSetting.SETTINGS # check if key exist and delete if not for setting in db_settings: if setting.key not in model_settings: setting.delete() - print(f"deleted user setting '{setting.key}'") + logger.info(f"deleted user setting '{setting.key}'") - print("checked all settings") + logger.info("checked all settings") diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 0babfaa8e3..ecddd17de8 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -53,7 +53,7 @@ class BaseInvenTreeSetting(models.Model): single values (e.g. one-off settings values). """ - GLOBAL_SETTINGS = {} + SETTINGS = {} class Meta: abstract = True @@ -98,13 +98,13 @@ class BaseInvenTreeSetting(models.Model): settings[setting.key.upper()] = setting.value # Specify any "default" values which are not in the database - for key in cls.GLOBAL_SETTINGS.keys(): + for key in cls.SETTINGS.keys(): if key.upper() not in settings: settings[key.upper()] = cls.get_setting_default(key) if exclude_hidden: - hidden = cls.GLOBAL_SETTINGS[key].get('hidden', False) + hidden = cls.SETTINGS[key].get('hidden', False) if hidden: # Remove hidden items @@ -133,11 +133,11 @@ class BaseInvenTreeSetting(models.Model): Return the 'definition' of a particular settings value, as a dict object. - The 'settings' dict can be passed as a kwarg - - If not passed, look for cls.GLOBAL_SETTINGS + - If not passed, look for cls.SETTINGS - Returns an empty dict if the key is not found """ - settings = kwargs.get('settings', cls.GLOBAL_SETTINGS) + settings = kwargs.get('settings', cls.SETTINGS) key = str(key).strip().upper() @@ -594,7 +594,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): The keys must be upper-case """ - GLOBAL_SETTINGS = { + SETTINGS = { 'SERVER_RESTART_REQUIRED': { 'name': _('Restart required'), @@ -1009,7 +1009,7 @@ class InvenTreeSetting(BaseInvenTreeSetting): Return True if this setting requires a server restart after changing """ - options = InvenTreeSetting.GLOBAL_SETTINGS.get(self.key, None) + options = InvenTreeSetting.SETTINGS.get(self.key, None) if options: return options.get('requires_restart', False) @@ -1022,7 +1022,7 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): An InvenTreeSetting object with a usercontext """ - GLOBAL_SETTINGS = { + SETTINGS = { 'HOMEPAGE_PART_STARRED': { 'name': _('Show subscribed parts'), 'description': _('Show subscribed parts on the homepage'), diff --git a/InvenTree/common/tests.py b/InvenTree/common/tests.py index c20dc5d126..8bd5b6ffba 100644 --- a/InvenTree/common/tests.py +++ b/InvenTree/common/tests.py @@ -49,9 +49,9 @@ class SettingsTest(TestCase): - Ensure that every global setting has a description. """ - for key in InvenTreeSetting.GLOBAL_SETTINGS.keys(): + for key in InvenTreeSetting.SETTINGS.keys(): - setting = InvenTreeSetting.GLOBAL_SETTINGS[key] + setting = InvenTreeSetting.SETTINGS[key] name = setting.get('name', None) @@ -64,14 +64,14 @@ class SettingsTest(TestCase): raise ValueError(f'Missing GLOBAL_SETTING description for {key}') if not key == key.upper(): - raise ValueError(f"GLOBAL_SETTINGS key '{key}' is not uppercase") + raise ValueError(f"SETTINGS key '{key}' is not uppercase") def test_defaults(self): """ Populate the settings with default values """ - for key in InvenTreeSetting.GLOBAL_SETTINGS.keys(): + for key in InvenTreeSetting.SETTINGS.keys(): value = InvenTreeSetting.get_setting_default(key) diff --git a/InvenTree/plugin/admin.py b/InvenTree/plugin/admin.py index 4bd4664212..839dac305a 100644 --- a/InvenTree/plugin/admin.py +++ b/InvenTree/plugin/admin.py @@ -40,7 +40,7 @@ class PluginSettingInline(admin.TabularInline): Inline admin class for PluginSetting """ - model = models.PluginSetting + model = models.PluginSetting class PluginConfigAdmin(admin.ModelAdmin): @@ -49,6 +49,7 @@ class PluginConfigAdmin(admin.ModelAdmin): list_display = ['name', 'key', '__str__', 'active', ] list_filter = ['active'] actions = [plugin_activate, plugin_deactivate, ] - inlines = [PluginSettingInline,] + inlines = [PluginSettingInline, ] + admin.site.register(models.PluginConfig, PluginConfigAdmin) diff --git a/InvenTree/plugin/registry.py b/InvenTree/plugin/registry.py index d858d6c7f0..79892616c4 100644 --- a/InvenTree/plugin/registry.py +++ b/InvenTree/plugin/registry.py @@ -256,7 +256,7 @@ class Plugins: self.mixins_globalsettings[slug] = plugin_setting # Add to settings dir - InvenTreeSetting.GLOBAL_SETTINGS.update(plugin_setting) + InvenTreeSetting.SETTINGS.update(plugin_setting) def deactivate_integration_globalsettings(self): from common.models import InvenTreeSetting @@ -268,7 +268,7 @@ class Plugins: # remove settings for setting in plugin_settings: - InvenTreeSetting.GLOBAL_SETTINGS.pop(setting) + InvenTreeSetting.SETTINGS.pop(setting) # clear cache self.mixins_globalsettings = {} diff --git a/InvenTree/users/models.py b/InvenTree/users/models.py index 5f2109da82..490f87f75a 100644 --- a/InvenTree/users/models.py +++ b/InvenTree/users/models.py @@ -76,7 +76,8 @@ class RuleSet(models.Model): 'otp_totp_totpdevice', 'otp_static_statictoken', 'otp_static_staticdevice', - 'plugin_pluginconfig' + 'plugin_pluginconfig', + 'plugin_pluginsetting', ], 'part_category': [ 'part_partcategory',