unique model settings

This commit is contained in:
Matthias 2021-07-22 23:39:19 +02:00
parent ce3f7b698d
commit c0d6ef80fc
2 changed files with 22 additions and 2 deletions

View File

@ -1,4 +1,4 @@
# Generated by Django 3.2.4 on 2021-07-19 22:57 # Generated by Django 3.2.4 on 2021-07-22 21:14
from django.conf import settings from django.conf import settings
from django.db import migrations, models from django.db import migrations, models
@ -17,8 +17,8 @@ class Migration(migrations.Migration):
name='InvenTreeUserSetting', name='InvenTreeUserSetting',
fields=[ fields=[
('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')), ('id', models.AutoField(auto_created=True, primary_key=True, serialize=False, verbose_name='ID')),
('key', models.CharField(help_text='Settings key (must be unique - case insensitive', max_length=50, unique=True)),
('value', models.CharField(blank=True, help_text='Settings value', max_length=200)), ('value', models.CharField(blank=True, help_text='Settings value', max_length=200)),
('key', models.CharField(help_text='Settings key (must be unique - case insensitive', max_length=50)),
('user', models.ForeignKey(blank=True, help_text='User', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')), ('user', models.ForeignKey(blank=True, help_text='User', null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL, verbose_name='User')),
], ],
options={ options={
@ -26,4 +26,8 @@ class Migration(migrations.Migration):
'verbose_name_plural': 'InvenTree User Settings', 'verbose_name_plural': 'InvenTree User Settings',
}, },
), ),
migrations.AddConstraint(
model_name='inventreeusersetting',
constraint=models.UniqueConstraint(fields=('key', 'user'), name='unique key and user'),
),
] ]

View File

@ -745,6 +745,12 @@ class InvenTreeSetting(BaseInvenTreeSetting):
verbose_name = "InvenTree Setting" verbose_name = "InvenTree Setting"
verbose_name_plural = "InvenTree Settings" verbose_name_plural = "InvenTree Settings"
key = models.CharField(
max_length=50,
blank=False,
unique=True,
help_text=_('Settings key (must be unique - case insensitive'),
)
class InvenTreeUserSetting(BaseInvenTreeSetting): class InvenTreeUserSetting(BaseInvenTreeSetting):
""" """
@ -763,6 +769,16 @@ class InvenTreeUserSetting(BaseInvenTreeSetting):
class Meta: class Meta:
verbose_name = "InvenTree User Setting" verbose_name = "InvenTree User Setting"
verbose_name_plural = "InvenTree User Settings" verbose_name_plural = "InvenTree User Settings"
constraints = [
models.UniqueConstraint(fields=['key', 'user'], name='unique key and user')
]
key = models.CharField(
max_length=50,
blank=False,
unique=False,
help_text=_('Settings key (must be unique - case insensitive'),
)
user = models.ForeignKey( user = models.ForeignKey(
User, User,