From 47a1eff86bfc27e7ece65cf1846cfe7619b5e6d8 Mon Sep 17 00:00:00 2001
From: Piotr Gawron <piotr.gawron@uni.lu>
Date: Thu, 9 Feb 2017 18:25:22 +0100
Subject: [PATCH] screening number is autogenerated

---
 smash/web/forms.py | 17 +++++++++++++++++
 smash/web/views.py |  4 +++-
 2 files changed, 20 insertions(+), 1 deletion(-)

diff --git a/smash/web/forms.py b/smash/web/forms.py
index bc046b76..dfddccbb 100644
--- a/smash/web/forms.py
+++ b/smash/web/forms.py
@@ -28,6 +28,23 @@ class SubjectAddForm(ModelForm):
         if len(subjects_from_db):
             self.add_error('screening_number', "Screening number already in use")
 
+    def get_new_screening_number(self):
+        result = 1;
+        numbers = Subject.objects.values_list('screening_number')
+        for number_row in numbers:
+            try:
+                id = int(number_row[0])
+                result = max(result, id+1)
+            except:
+                pass
+        return result
+
+
+    def clean_screening_number(self):
+        if self.cleaned_data['screening_number']=="":
+            self.cleaned_data['screening_number'] = self.get_new_screening_number()
+
+        return self.cleaned_data['screening_number'];
 
 class SubjectDetailForm(ModelForm):
     class Meta:
diff --git a/smash/web/views.py b/smash/web/views.py
index 4bcd4617..367fc0a2 100644
--- a/smash/web/views.py
+++ b/smash/web/views.py
@@ -120,11 +120,13 @@ def subjects(request):
 
 	return wrap_response(request, 'subjects/index.html', context)
 
-
 def subject_add(request):
 	if request.method == 'POST':
 		form = SubjectAddForm(request.POST, request.FILES)
 		if form.is_valid():
+			screening_number = form.cleaned_data['screening_number']
+			if screening_number == '':
+				screening_number = get_new_screening_number()
 			form.save()
 			return redirect(subjects)
 	else:
-- 
GitLab