From c0d6ef80fc66367fdf018c4b61ce6fa71e426192 Mon Sep 17 00:00:00 2001 From: Matthias Date: Thu, 22 Jul 2021 23:39:19 +0200 Subject: [PATCH] unique model settings --- ...usersetting.py => 0011_auto_20210722_2114.py} | 8 ++++++-- InvenTree/common/models.py | 16 ++++++++++++++++ 2 files changed, 22 insertions(+), 2 deletions(-) rename InvenTree/common/migrations/{0011_inventreeusersetting.py => 0011_auto_20210722_2114.py} (78%) diff --git a/InvenTree/common/migrations/0011_inventreeusersetting.py b/InvenTree/common/migrations/0011_auto_20210722_2114.py similarity index 78% rename from InvenTree/common/migrations/0011_inventreeusersetting.py rename to InvenTree/common/migrations/0011_auto_20210722_2114.py index 0bec691041..388117f261 100644 --- a/InvenTree/common/migrations/0011_inventreeusersetting.py +++ b/InvenTree/common/migrations/0011_auto_20210722_2114.py @@ -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.db import migrations, models @@ -17,8 +17,8 @@ class Migration(migrations.Migration): name='InvenTreeUserSetting', fields=[ ('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)), + ('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')), ], options={ @@ -26,4 +26,8 @@ class Migration(migrations.Migration): 'verbose_name_plural': 'InvenTree User Settings', }, ), + migrations.AddConstraint( + model_name='inventreeusersetting', + constraint=models.UniqueConstraint(fields=('key', 'user'), name='unique key and user'), + ), ] diff --git a/InvenTree/common/models.py b/InvenTree/common/models.py index 8907299a44..bdaa73b142 100644 --- a/InvenTree/common/models.py +++ b/InvenTree/common/models.py @@ -745,6 +745,12 @@ class InvenTreeSetting(BaseInvenTreeSetting): verbose_name = "InvenTree Setting" 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): """ @@ -763,6 +769,16 @@ class InvenTreeUserSetting(BaseInvenTreeSetting): class Meta: verbose_name = "InvenTree User Setting" 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,