From 843526bf2798a2aabf376e74909d8d048e7b7af9 Mon Sep 17 00:00:00 2001 From: Claude Paroz Date: Wed, 19 Jul 2017 10:44:12 +0200 Subject: [PATCH] Klass.name must be unique --- stages/migrations/0021_klass_name_unique.py | 21 +++++++++++++++++++++ stages/models.py | 4 ++-- 2 files changed, 23 insertions(+), 2 deletions(-) create mode 100644 stages/migrations/0021_klass_name_unique.py diff --git a/stages/migrations/0021_klass_name_unique.py b/stages/migrations/0021_klass_name_unique.py new file mode 100644 index 0000000..e636592 --- /dev/null +++ b/stages/migrations/0021_klass_name_unique.py @@ -0,0 +1,21 @@ +from django.db import migrations, models + + +class Migration(migrations.Migration): + + dependencies = [ + ('stages', '0020_remove_old_ext_id'), + ] + + operations = [ + migrations.AlterField( + model_name='klass', + name='name', + field=models.CharField(max_length=10, unique=True, verbose_name='Nom'), + ), + migrations.AlterField( + model_name='student', + name='klass', + field=models.ForeignKey(blank=True, null=True, on_delete=models.deletion.PROTECT, to='stages.Klass', verbose_name='Classe'), + ), + ] diff --git a/stages/models.py b/stages/models.py index 79dd209..9744aca 100644 --- a/stages/models.py +++ b/stages/models.py @@ -45,7 +45,7 @@ class Level(models.Model): class Klass(models.Model): - name = models.CharField(max_length=10, verbose_name='Nom') + name = models.CharField(max_length=10, verbose_name='Nom', unique=True) section = models.ForeignKey(Section, verbose_name='Filière', on_delete=models.PROTECT) level = models.ForeignKey(Level, verbose_name='Niveau', on_delete=models.PROTECT) teacher = models.ForeignKey('Teacher', blank=True, null=True, @@ -125,7 +125,7 @@ class Student(models.Model): instructor = models.ForeignKey('CorpContact', null=True, blank=True, on_delete=models.SET_NULL, verbose_name='FEE/FPP') klass = models.ForeignKey(Klass, verbose_name='Classe', blank=True, null=True, - on_delete=models.SET_NULL) + on_delete=models.PROTECT) archived = models.BooleanField(default=False, verbose_name='Archivé') archived_text = models.TextField(blank=True)