2
0
mirror of https://github.com/inventree/InvenTree.git synced 2025-04-29 12:06:44 +00:00

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 Custom management command to cleanup old settings that are not defined anymore
""" """
import logging
from django.core.management.base import BaseCommand from django.core.management.base import BaseCommand
logger = logging.getLogger('inventree')
class Command(BaseCommand): class Command(BaseCommand):
""" """
Cleanup old (undefined) settings in the database Cleanup old (undefined) settings in the database
@ -12,27 +17,27 @@ class Command(BaseCommand):
def handle(self, *args, **kwargs): def handle(self, *args, **kwargs):
print("Collecting settings") logger.info("Collecting settings")
from common.models import InvenTreeSetting, InvenTreeUserSetting from common.models import InvenTreeSetting, InvenTreeUserSetting
# general settings # general settings
db_settings = InvenTreeSetting.objects.all() db_settings = InvenTreeSetting.objects.all()
model_settings = InvenTreeSetting.GLOBAL_SETTINGS model_settings = InvenTreeSetting.SETTINGS
# check if key exist and delete if not # check if key exist and delete if not
for setting in db_settings: for setting in db_settings:
if setting.key not in model_settings: if setting.key not in model_settings:
setting.delete() setting.delete()
print(f"deleted setting '{setting.key}'") logger.info(f"deleted setting '{setting.key}'")
# user settings # user settings
db_settings = InvenTreeUserSetting.objects.all() db_settings = InvenTreeUserSetting.objects.all()
model_settings = InvenTreeUserSetting.GLOBAL_SETTINGS model_settings = InvenTreeUserSetting.SETTINGS
# check if key exist and delete if not # check if key exist and delete if not
for setting in db_settings: for setting in db_settings:
if setting.key not in model_settings: if setting.key not in model_settings:
setting.delete() 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). single values (e.g. one-off settings values).
""" """
GLOBAL_SETTINGS = {} SETTINGS = {}
class Meta: class Meta:
abstract = True abstract = True
@ -98,13 +98,13 @@ class BaseInvenTreeSetting(models.Model):
settings[setting.key.upper()] = setting.value settings[setting.key.upper()] = setting.value
# Specify any "default" values which are not in the database # 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: if key.upper() not in settings:
settings[key.upper()] = cls.get_setting_default(key) settings[key.upper()] = cls.get_setting_default(key)
if exclude_hidden: if exclude_hidden:
hidden = cls.GLOBAL_SETTINGS[key].get('hidden', False) hidden = cls.SETTINGS[key].get('hidden', False)
if hidden: if hidden:
# Remove hidden items # Remove hidden items
@ -133,11 +133,11 @@ class BaseInvenTreeSetting(models.Model):
Return the 'definition' of a particular settings value, as a dict object. Return the 'definition' of a particular settings value, as a dict object.
- The 'settings' dict can be passed as a kwarg - 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 - 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() key = str(key).strip().upper()
@ -594,7 +594,7 @@ class InvenTreeSetting(BaseInvenTreeSetting):
The keys must be upper-case The keys must be upper-case
""" """
GLOBAL_SETTINGS = { SETTINGS = {
'SERVER_RESTART_REQUIRED': { 'SERVER_RESTART_REQUIRED': {
'name': _('Restart required'), 'name': _('Restart required'),
@ -1009,7 +1009,7 @@ class InvenTreeSetting(BaseInvenTreeSetting):
Return True if this setting requires a server restart after changing 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: if options:
return options.get('requires_restart', False) return options.get('requires_restart', False)
@ -1022,7 +1022,7 @@ class InvenTreeUserSetting(BaseInvenTreeSetting):
An InvenTreeSetting object with a usercontext An InvenTreeSetting object with a usercontext
""" """
GLOBAL_SETTINGS = { SETTINGS = {
'HOMEPAGE_PART_STARRED': { 'HOMEPAGE_PART_STARRED': {
'name': _('Show subscribed parts'), 'name': _('Show subscribed parts'),
'description': _('Show subscribed parts on the homepage'), 'description': _('Show subscribed parts on the homepage'),

View File

@ -49,9 +49,9 @@ class SettingsTest(TestCase):
- Ensure that every global setting has a description. - 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) name = setting.get('name', None)
@ -64,14 +64,14 @@ class SettingsTest(TestCase):
raise ValueError(f'Missing GLOBAL_SETTING description for {key}') raise ValueError(f'Missing GLOBAL_SETTING description for {key}')
if not key == key.upper(): 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): def test_defaults(self):
""" """
Populate the settings with default values 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) value = InvenTreeSetting.get_setting_default(key)

View File

@ -40,7 +40,7 @@ class PluginSettingInline(admin.TabularInline):
Inline admin class for PluginSetting Inline admin class for PluginSetting
""" """
model = models.PluginSetting model = models.PluginSetting
class PluginConfigAdmin(admin.ModelAdmin): class PluginConfigAdmin(admin.ModelAdmin):
@ -49,6 +49,7 @@ class PluginConfigAdmin(admin.ModelAdmin):
list_display = ['name', 'key', '__str__', 'active', ] list_display = ['name', 'key', '__str__', 'active', ]
list_filter = ['active'] list_filter = ['active']
actions = [plugin_activate, plugin_deactivate, ] actions = [plugin_activate, plugin_deactivate, ]
inlines = [PluginSettingInline,] inlines = [PluginSettingInline, ]
admin.site.register(models.PluginConfig, PluginConfigAdmin) admin.site.register(models.PluginConfig, PluginConfigAdmin)

View File

@ -256,7 +256,7 @@ class Plugins:
self.mixins_globalsettings[slug] = plugin_setting self.mixins_globalsettings[slug] = plugin_setting
# Add to settings dir # Add to settings dir
InvenTreeSetting.GLOBAL_SETTINGS.update(plugin_setting) InvenTreeSetting.SETTINGS.update(plugin_setting)
def deactivate_integration_globalsettings(self): def deactivate_integration_globalsettings(self):
from common.models import InvenTreeSetting from common.models import InvenTreeSetting
@ -268,7 +268,7 @@ class Plugins:
# remove settings # remove settings
for setting in plugin_settings: for setting in plugin_settings:
InvenTreeSetting.GLOBAL_SETTINGS.pop(setting) InvenTreeSetting.SETTINGS.pop(setting)
# clear cache # clear cache
self.mixins_globalsettings = {} self.mixins_globalsettings = {}

View File

@ -76,7 +76,8 @@ class RuleSet(models.Model):
'otp_totp_totpdevice', 'otp_totp_totpdevice',
'otp_static_statictoken', 'otp_static_statictoken',
'otp_static_staticdevice', 'otp_static_staticdevice',
'plugin_pluginconfig' 'plugin_pluginconfig',
'plugin_pluginsetting',
], ],
'part_category': [ 'part_category': [
'part_partcategory', 'part_partcategory',