diff --git a/docs/extend/plugins/settings.md b/docs/extend/plugins/settings.md index 8309b77..4caec78 100644 --- a/docs/extend/plugins/settings.md +++ b/docs/extend/plugins/settings.md @@ -11,7 +11,7 @@ The *SettingsMixin* allows the plugin to save and load persistent settings to th 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. +The dict must be formatted similar to the following sample that shows how to use validator choices and default. Take a look at the settings defined in `InvenTree.common.models.InvenTreeSetting` for all possible parameters. ``` python @@ -36,13 +36,31 @@ class PluginWithSettings(SettingsMixin, InvenTreePlugin): 'description': _('Base URL for remote server'), 'default': 'http://remote.url/api', }, + 'CONNECTION': { + 'name': _('Printer Interface'), + 'description': _('Select local or network printer'), + 'choices': [('local','Local printer e.g. USB'),('network','Network printer with IP address')], + 'default': 'local', + }, + 'NUMBER': { + 'name': _('A Name'), + 'description': _('Descripe me here'), + 'default': 6, + 'validator': [ + int, + MinValueValidator(2), + MaxValueValidator(25) + ] + }, } ``` 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') +api_url = self.get_setting('API_URL', cache = False) +self.set_setting('API_URL', 'some value') ``` +`get_setting` has an additional parameter which lets control if the value is taken directly from the database or from the cache. If it is left away `False` ist the default that means the value is taken directly from the database.