From dfb1e503d81d159ebe0d7cb964dc6fde95292290 Mon Sep 17 00:00:00 2001 From: Piotr Gawron <piotr.gawron@uni.lu> Date: Thu, 9 Feb 2017 17:48:30 +0100 Subject: [PATCH] duplicates in screening numbers is disabled --- smash/web/forms.py | 8 ++++++++ smash/web/models.py | 14 ++++++++++++-- 2 files changed, 20 insertions(+), 2 deletions(-) diff --git a/smash/web/forms.py b/smash/web/forms.py index 7834007e..d989cf65 100644 --- a/smash/web/forms.py +++ b/smash/web/forms.py @@ -20,6 +20,14 @@ class SubjectAddForm(ModelForm): model = Subject fields = '__all__' + def clean(self): + subject = self.cleaned_data + + subjects_from_db = Subject.objects.filter(screening_number=subject['screening_number']) + + if len(subjects_from_db): + self.add_error('screening_number', "Screening number already in use") + class SubjectDetailForm(ModelForm): class Meta: diff --git a/smash/web/models.py b/smash/web/models.py index 9c1234bc..0115708b 100644 --- a/smash/web/models.py +++ b/smash/web/models.py @@ -71,10 +71,11 @@ class Subject(models.Model): verbose_name='Last name' ) languages = models.ManyToManyField(Language, + blank=True, verbose_name='Known languages' ) phone_number = models.CharField(max_length=20, - null=True, + null=True, blank=True, verbose_name='Phone number' ) @@ -95,28 +96,34 @@ class Subject(models.Model): ) date_born = models.DateField( null=True, - blank=True, + blank=True, verbose_name='Date of birth (YYYY-MM-DD)' ) address = models.CharField(max_length=255, + blank=True, verbose_name='Address' ) postal_code = models.CharField(max_length=7, + blank=True, verbose_name='Postal code' ) city = models.CharField(max_length=50, + blank=True, verbose_name='City' ) country = models.CharField(max_length=50, verbose_name='Country' ) screening_number = models.CharField(max_length=50, + blank=True, verbose_name='Screening number' ) nd_number = models.CharField(max_length=6, + blank=True, verbose_name='ND number' ) mpower_id = models.CharField(max_length=20, + blank=True, verbose_name='MPower ID' ) status = models.CharField(max_length=3, choices=STATUS_CHOICES, @@ -124,6 +131,7 @@ class Subject(models.Model): default='NCO' ) comments = models.CharField(max_length=2000, + blank=True, verbose_name='Comments' ) date_added = models.DateField(verbose_name='Added on', @@ -131,10 +139,12 @@ class Subject(models.Model): ) referral = models.CharField(max_length=128, null=True, + blank=True, verbose_name='Referred by' ) diagnosis = models.CharField(max_length=128, null=True, + blank=True, verbose_name='Diagnosis' ) year_of_diagnosis = models.IntegerField( -- GitLab