2
0
mirror of https://github.com/inventree/inventree-docs.git synced 2025-04-28 21:56:49 +00:00
Matthias Mair a55a68d629
Update metadata
Closes #282
2022-05-25 22:30:33 +02:00

1.4 KiB

title
title
Settings Mixin

SettingsMixin

The SettingsMixin allows the plugin to save and load persistent settings to the database.

  • Plugin settings are stored against the individual plugin, and thus do not have to be unique
  • Plugin settings are stored using a "key:value" pair

Use the class constant SETTINGS for a dict of settings that should be added as global database settings.

The dict must be formatted similar to the following sample. Take a look at the settings defined in InvenTree.common.models.InvenTreeSetting for all possible parameters.

class PluginWithSettings(SettingsMixin, InvenTreePlugin):
    
    NAME = "PluginWithSettings"
    
    SETTINGS = {
        'API_ENABLE': {
            'name': 'API Functionality',
            'description': 'Enable remote API queries',
            'validator': bool,
            'default': True,
        },
        'API_KEY': {
            'name': 'API Key',
            'description': 'Security key for accessing remote API',
            'default': '',
        },
        'API_URL': {
            'name': _('API URL'),
            'description': _('Base URL for remote server'),
            'default': 'http://remote.url/api',
        },
    }

This mixin defines the helper functions plugin.get_setting and plugin.set_seting to access all plugin specific settings:

api_url = self.get_setting('API_URL')