This commit is contained in:
Ross
2022-02-24 19:23:17 +00:00
parent 7f04f984ea
commit fa578390da
2 changed files with 30 additions and 15 deletions
+24 -2
View File
@@ -131,9 +131,31 @@ class RapidForm(ModelForm):
instance = ModelForm.save(self, False) instance = ModelForm.save(self, False)
instance.save() instance.save()
for exam in self.cleaned_data["exams"]: old_exams = instance.exams
exam.exam_questions.add(instance)
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)
# # Prepare a 'save_m2m' method for the form,
# old_save_m2m = self.save_m2m
#
# def save_m2m():
# old_save_m2m()
# # This is where we actually link the pizza with toppings
# instance.exams.clear()
# for exam in self.cleaned_data["exams"]:
# instance.exams.add(exam)
#
# self.save_m2m = save_m2m
#
# # Do we need to save all changes now?
# # if commit:
# instance.save()
self.save_m2m() self.save_m2m()
return instance return instance
+6 -13
View File
@@ -370,19 +370,12 @@ class RapidUpdate(
answer_formset.save() answer_formset.save()
# restore exam orders # restore exam orders
#wanted_exams = form["exams"].data wanted_exams = form["exams"].data
#for exam in self.object.exams.all(): for exam in self.object.exams.all():
# # Only readd if exam is still added if exam in exam_orders and self.object in exam_orders[exam]:
# # There is probably a better way to do this print(exam_orders[exam])
# if str(exam.pk) in wanted_exams: exam.exam_questions.set(exam_orders[exam])
# if exam in exam_orders and self.object in exam_orders[exam]: exam.save()
# print(exam_orders[exam])
# exam.exam_questions.set(exam_orders[exam])
# exam.save()
# else: # Otherwise remove it
# if exam in exam_orders and self.object in exam_orders[exam]:
# exam.exam_questions.set(exam_orders[exam])
# exam.save()
return response return response
else: else: