2
0
mirror of https://github.com/inventree/inventree-docs.git synced 2025-10-10 02:42:18 +00:00
Files
.github
_includes
ci
docs
app
assets
build
buy
extend
plugins
action.md
api.md
app.md
barcode.md
event.md
label.md
locate.md
navigation.md
panel.md
schedule.md
settings.md
urls.md
api.md
how_to_plugin.md
integrate.md
plugins.md
python.md
themes.md
javascripts
part
releases
report
sell
settings
start
stock
stylesheets
webfonts
contribute.md
credits.md
demo.md
faq.md
features.md
hooks.py
index.md
privacy.md
terminology.md
.gitignore
LICENSE
README.md
main.py
mkdocs.yml
readthedocs.yml
requirements.txt
inventree-docs/docs/extend/plugins/settings.md
Matthias Mair a55a68d629 Update metadata
Closes 
2022-05-25 22:30:33 +02:00

49 lines
1.4 KiB
Markdown

---
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.
``` python
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:
```python
api_url = self.get_setting('API_URL')
```