Refactor: Rename "GLOBAL_SETTINGS" to "SETTINGS"

This commit is contained in:
Oliver 2022-01-01 22:20:21 +11:00
parent 7f08c75a08
commit 7cb029e7c3
6 changed files with 30 additions and 23 deletions

View File

@ -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")

View File

@ -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'),

View File

@ -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)

View File

@ -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)

View File

@ -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 = {}

View File

@ -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',