Repository: inventree/InvenTree

Issue:
Plugin configuration values are limited to 200 chars, which is not enough for apprise
### Please verify that this bug has NOT been raised before.

- [X] I checked and didn't find a similar issue

### Describe the bug*

I ran into a problem while configuring inventree-apprise, where the required configuration field is not long enough (reported at the plugin here: https://github.com/matmair/inventree-apprise/issues/1). In short the MS Teams integration requires a long URI with several tokens which does not fit into the 200 chars limit of the configuration field.

### Steps to Reproduce

Add `inventree-apprise` and attempt to configure a MS Teams plugin by setting `NOTIFICATION_APPRISE_URL` using a URI longer than 200 chars. The value will be cut at 200 chars, rendering the config invalid.

### Expected behaviour

the string will fit into the config value

### Deployment Method

- [X] Docker
- [ ] Bare metal

### Version Information

0.12.3 with inventree-apprise 1.0

### Please verify if you can reproduce this bug on the demo site.

- [X] I can reproduce this bug on the demo site.

### Relevant log output

_No response_


Discussion:
The following line would need to be changed to allow more than 200 chars. https://github.com/inventree/InvenTree/blob/54e0e47c6ae98ac920f4496e65b12b3551c89d93/InvenTree/common/models.py#L585 

Resolving patch:
diff --git a/InvenTree/common/migrations/0021_auto_20230805_1748.py b/InvenTree/common/migrations/0021_auto_20230805_1748.py
new file mode 100644
--- /dev/null
+++ b/InvenTree/common/migrations/0021_auto_20230805_1748.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.20 on 2023-08-05 17:48
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('common', '0020_customunit'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='inventreesetting',
+            name='value',
+            field=models.CharField(blank=True, help_text='Settings value', max_length=2000),
+        ),
+        migrations.AlterField(
+            model_name='inventreeusersetting',
+            name='value',
+            field=models.CharField(blank=True, help_text='Settings value', max_length=2000),
+        ),
+    ]
diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py
--- a/InvenTree/common/models.py
+++ b/InvenTree/common/models.py
@@ -582,7 +582,7 @@ def set_setting(cls, key, value, change_user, create=True, **kwargs):
 
     key = models.CharField(max_length=50, blank=False, unique=False, help_text=_('Settings key (must be unique - case insensitive)'))
 
-    value = models.CharField(max_length=200, blank=True, unique=False, help_text=_('Settings value'))
+    value = models.CharField(max_length=2000, blank=True, unique=False, help_text=_('Settings value'))
 
     @property
     def name(self):
diff --git a/InvenTree/plugin/migrations/0007_auto_20230805_1748.py b/InvenTree/plugin/migrations/0007_auto_20230805_1748.py
new file mode 100644
--- /dev/null
+++ b/InvenTree/plugin/migrations/0007_auto_20230805_1748.py
@@ -0,0 +1,23 @@
+# Generated by Django 3.2.20 on 2023-08-05 17:48
+
+from django.db import migrations, models
+
+
+class Migration(migrations.Migration):
+
+    dependencies = [
+        ('plugin', '0006_pluginconfig_metadata'),
+    ]
+
+    operations = [
+        migrations.AlterField(
+            model_name='notificationusersetting',
+            name='value',
+            field=models.CharField(blank=True, help_text='Settings value', max_length=2000),
+        ),
+        migrations.AlterField(
+            model_name='pluginsetting',
+            name='value',
+            field=models.CharField(blank=True, help_text='Settings value', max_length=2000),
+        ),
+    ]


Test patch: