From 43f3fc9c6390ed2ad7516b964f3b5a63a6676d7e Mon Sep 17 00:00:00 2001 From: Ross Date: Fri, 15 Jan 2021 00:10:07 +0000 Subject: [PATCH] maintain question order when editing --- anatomy/views.py | 17 ++++++++++++++++- physics/views.py | 2 +- 2 files changed, 17 insertions(+), 2 deletions(-) diff --git a/anatomy/views.py b/anatomy/views.py index 8aab1d2b..d57f25c5 100644 --- a/anatomy/views.py +++ b/anatomy/views.py @@ -719,7 +719,7 @@ def exam_scores_cid(request, pk): fig = px.histogram( df, x=0, - title="Distribution of scores", + title="{}: distribution of scores".format(exam), labels={"0": "Score"}, height=400, width=600, @@ -1021,9 +1021,16 @@ class AnatomyQuestionUpdate(LoginRequiredMixin, UpdateView): 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]) + self.object = form.save(commit=False) self.object.save() + form.instance.author.add(self.request.user.id) context = self.get_context_data(form=form) @@ -1033,6 +1040,14 @@ class AnatomyQuestionUpdate(LoginRequiredMixin, UpdateView): response = super().form_valid(form) formset.instance = self.object 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() + return response else: return super().form_invalid(form) diff --git a/physics/views.py b/physics/views.py index a79ba6c5..b0638a5b 100644 --- a/physics/views.py +++ b/physics/views.py @@ -186,7 +186,7 @@ def exam_scores_cid(request, pk): fig = px.histogram( df, x=0, - title="Distribution of scores", + title="{}: distribution of scores".format(exam), labels={"0": "Score"}, height=400, width=600,