From 66dff08472f9113fc60cd6df42c55fcf575aee57 Mon Sep 17 00:00:00 2001 From: Ross Date: Tue, 3 May 2022 20:05:24 +0100 Subject: [PATCH] . --- anatomy/forms.py | 6 ++++-- generic/forms.py | 7 +++++++ longs/forms.py | 5 +++-- rapids/forms.py | 15 ++------------- rapids/views.py | 13 ++++++------- 5 files changed, 22 insertions(+), 24 deletions(-) diff --git a/anatomy/forms.py b/anatomy/forms.py index dcfc9526..58c9f976 100644 --- a/anatomy/forms.py +++ b/anatomy/forms.py @@ -8,6 +8,8 @@ from django.forms import ( ) from django.forms import inlineformset_factory +from generic.forms import ExamFormMixin + from .models import ( Answer, CidUserAnswer, @@ -201,7 +203,7 @@ class BodyPartForm(ModelForm): fields = ["bodypart"] -class ExamForm(ModelForm): +class ExamForm(ExamFormMixin, ModelForm): class Meta: model = Exam fields = [ @@ -213,4 +215,4 @@ class ExamForm(ModelForm): "active", "publish_results", "archive", - ] + ] \ No newline at end of file diff --git a/generic/forms.py b/generic/forms.py index 9ee89d8a..2d8b705a 100755 --- a/generic/forms.py +++ b/generic/forms.py @@ -46,6 +46,13 @@ from sbas.models import CidUserAnswer as SbasCidUserAnswer from sbas.models import Exam as SbasExam from sbas.models import Question as SbasQuestion +class ExamFormMixin: + def save(self, commit=True): + instance = ModelForm.save(self, False) + instance.save() + + return instance + class ExaminationForm(ModelForm): class Meta: model = Examination diff --git a/longs/forms.py b/longs/forms.py index 3085a5ad..b9a0540b 100755 --- a/longs/forms.py +++ b/longs/forms.py @@ -7,6 +7,7 @@ from django.forms import ( CharField, ) from django.forms import inlineformset_factory +from generic.forms import ExamFormMixin from longs.models import ( # Examination, @@ -265,7 +266,7 @@ LongSeriesImageFormSet = inlineformset_factory( ) -class ExamForm(ModelForm): +class ExamForm(ExamFormMixin, ModelForm): class Meta: model = Exam fields = [ @@ -278,4 +279,4 @@ class ExamForm(ModelForm): "publish_results", "double_mark", "archive", - ] + ] \ No newline at end of file diff --git a/rapids/forms.py b/rapids/forms.py index 6d3c7083..e0063ccb 100755 --- a/rapids/forms.py +++ b/rapids/forms.py @@ -7,6 +7,7 @@ from django.forms import ( CharField, ) from django.forms import inlineformset_factory +from generic.forms import ExamFormMixin from rapids.models import ( Abnormality, @@ -227,7 +228,7 @@ AnswerUpdateFormSet = inlineformset_factory( # This should be made generic? -class ExamForm(ModelForm): +class ExamForm(ExamFormMixin, ModelForm): class Meta: model = Exam fields = [ @@ -243,15 +244,3 @@ class ExamForm(ModelForm): "cid_user_groups", "author", ] - - def __init__(self, *args, **kwargs): - ModelForm.__init__(self, *args, **kwargs) - super(ExamForm, self).__init__(*args, **kwargs) - - def save(self, commit=True): - instance = ModelForm.save(self, False) - instance.save() - - self.save_m2m() - - return instance \ No newline at end of file diff --git a/rapids/views.py b/rapids/views.py index 55d45ea9..f5e5aa16 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -836,12 +836,12 @@ class ExamCreate(RevisionMixin, LoginRequiredMixin, CreateView): model = Exam form_class = ExamForm -# def form_valid(self, form): -# self.object = form.save(commit=False) -# self.object.save() -# -# form.instance.author.add(self.request.user.id) -# return super().form_valid(form) + def form_valid(self, form): + self.object = form.save(commit=False) + self.object.save() + + form.instance.author.add(self.request.user.id) + return super().form_valid(form) class ExamUpdate( @@ -855,7 +855,6 @@ class ExamUpdate( self.object.save() form.instance.author.add(self.request.user.id) - return super().form_valid(form)