From 34fbdec4d8f3b3346ecaceb91c7ec667d8d1f420 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Mon, 14 Mar 2022 10:23:40 +0100
Subject: [PATCH] don't validate screening number when screeing number is
 disabled

---
 CHANGELOG                              |  6 ++++++
 smash/web/forms/study_subject_forms.py |  2 +-
 smash/web/templates/_base.html         |  2 +-
 smash/web/tests/view/test_subjects.py  | 12 ++++++++++++
 4 files changed, 20 insertions(+), 2 deletions(-)

diff --git a/CHANGELOG b/CHANGELOG
index b05b262a..dc23629e 100644
--- a/CHANGELOG
+++ b/CHANGELOG
@@ -1,3 +1,9 @@
+smasch (1.1.0~beta.1-1) unstable; urgency=low
+
+  * bug fix: impossible to add subject when screening number is disabled (#501)
+
+ -- Piotr Gawron <piotr.gawron@uni.lu>  Mon, 4 Mar 2022 16:00:00 +0200
+
 smasch (1.1.0~beta.0-1) unstable; urgency=low
 
   * improvement: allow to assign empty value to email configuration option so
diff --git a/smash/web/forms/study_subject_forms.py b/smash/web/forms/study_subject_forms.py
index a2286417..78760cf6 100644
--- a/smash/web/forms/study_subject_forms.py
+++ b/smash/web/forms/study_subject_forms.py
@@ -347,7 +347,7 @@ def prepare_study_subject_fields(fields, study: Study):
 
 
 def validate_subject_screening_number(self, cleaned_data):
-    if self.study.columns.resign_reason:
+    if self.study.columns.resign_reason and self.study.columns.screening_number:
         subjects_from_db = StudySubject.objects.filter(screening_number=cleaned_data["screening_number"],
                                                        study=self.study)
         if len(subjects_from_db) > 0:
diff --git a/smash/web/templates/_base.html b/smash/web/templates/_base.html
index 5690dace..65e116c8 100644
--- a/smash/web/templates/_base.html
+++ b/smash/web/templates/_base.html
@@ -258,7 +258,7 @@ desired effect
         {% block footer %}
             <!-- To the right -->
             <div class="pull-right hidden-xs">
-                Version: <strong>1.1.0~beta.0</strong>
+                Version: <strong>1.1.0~beta.1</strong>
             </div>
 
             <!-- Default to the left -->
diff --git a/smash/web/tests/view/test_subjects.py b/smash/web/tests/view/test_subjects.py
index af737bc3..ca946bf9 100644
--- a/smash/web/tests/view/test_subjects.py
+++ b/smash/web/tests/view/test_subjects.py
@@ -399,3 +399,15 @@ class SubjectsViewTests(LoggedInTestCase):
         self.assertEqual(response.status_code, 302)
         updated_study_subject = StudySubject.objects.get(id=self.study_subject.id)
         self.assertTrue(updated_study_subject.subject.dead)
+
+    def test_subjects_add_when_screening_number_disabled(self):
+        self.study.columns.screening_number = False
+        self.study.columns.save()
+        self.worker.roles.all()[0].permissions.add(Permission.objects.get(codename="add_subject"))
+        self.worker.save()
+        form_data = self.create_add_form_data_for_study_subject()
+
+        count = StudySubject.objects.all().count()
+        self.client.post(reverse('web.views.subject_add', kwargs={'study_id': self.study.id}), data=form_data)
+
+        self.assertEqual(count + 1, StudySubject.objects.all().count())
-- 
GitLab