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