From 9a61bd3c6cbc421250b0572d449d65afe7f7d931 Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 24 Feb 2022 19:30:26 +0000 Subject: [PATCH] . --- anatomy/forms.py | 11 +++++++++-- anatomy/views.py | 18 +++++++++--------- rapids/views.py | 6 +++--- 3 files changed, 21 insertions(+), 14 deletions(-) diff --git a/anatomy/forms.py b/anatomy/forms.py index bfd8b7f9..9bbbaff2 100644 --- a/anatomy/forms.py +++ b/anatomy/forms.py @@ -113,8 +113,15 @@ class AnatomyQuestionForm(ModelForm): instance = ModelForm.save(self, False) instance.save() - for exam in self.cleaned_data["exams"]: - exam.exam_questions.add(instance) + old_exams = instance.exams.all() + + new_exams = self.cleaned_data["exams"] + + for exam in old_exams: + if exam in new_exams: + exam.exam_questions.add(instance) + else: + exam.exam_questions.remove(instance) self.save_m2m() diff --git a/anatomy/views.py b/anatomy/views.py index 1fc3f997..3891b746 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -855,10 +855,10 @@ class AnatomyQuestionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateV def form_valid(self, form): # save exam orders (there must be a better way to do this) - exam_orders = {} - for exam in self.object.exams.all(): - exam_orders[exam] = list(exam.exam_questions.all()) - print(exam_orders[exam]) + #exam_orders = {} + #for exam in self.object.exams.all(): + # exam_orders[exam] = list(exam.exam_questions.all()) + # print(exam_orders[exam]) self.object = form.save(commit=False) self.object.save() @@ -874,11 +874,11 @@ class AnatomyQuestionUpdate(RevisionMixin, AuthorOrCheckerRequiredMixin, UpdateV formset.save() # restore exam orders - for exam in self.object.exams.all(): - if exam in exam_orders and self.object in exam_orders[exam]: - print(exam_orders[exam]) - exam.exam_questions.set(exam_orders[exam]) - exam.save() + #for exam in self.object.exams.all(): + # if exam in exam_orders and self.object in exam_orders[exam]: + # print(exam_orders[exam]) + # exam.exam_questions.set(exam_orders[exam]) + # exam.save() return response else: diff --git a/rapids/views.py b/rapids/views.py index e868d2a7..d035d900 100755 --- a/rapids/views.py +++ b/rapids/views.py @@ -349,9 +349,9 @@ class RapidUpdate( def form_valid(self, form): # save exam orders (there must be a better way to do this) - exam_orders = {} - for exam in self.object.exams.all(): - exam_orders[exam] = list(exam.exam_questions.all()) + #exam_orders = {} + #for exam in self.object.exams.all(): + # exam_orders[exam] = list(exam.exam_questions.all()) self.object = form.save(commit=False) self.object.save()