diff --git a/longs/views.py b/longs/views.py index f9af2591..e0e75e16 100755 --- a/longs/views.py +++ b/longs/views.py @@ -468,6 +468,10 @@ class LongUpdate(RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin return context 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()) self.object = form.save(commit=False) self.object.save() @@ -486,6 +490,14 @@ class LongUpdate(RevisionMixin, LoginRequiredMixin, AuthorOrCheckerRequiredMixin response = super().form_valid(form) series_formset.instance = self.object series_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/rapids/templates/rapids/exam_overview.html b/rapids/templates/rapids/exam_overview.html index ac755ea1..b1aeac41 100644 --- a/rapids/templates/rapids/exam_overview.html +++ b/rapids/templates/rapids/exam_overview.html @@ -188,6 +188,10 @@ $(this).remove(); sortable('.sortable'); + $("#full-question-list li").each((n, el) => { + el.append($("[DELETE]")); + }) + $("#full-question-list").append($("").click(() => { new_order = []; $("#full-question-list li").each((n, el) => { diff --git a/rapids/templates/rapids/question_display_block.html b/rapids/templates/rapids/question_display_block.html index a723e855..a6b697a4 100755 --- a/rapids/templates/rapids/question_display_block.html +++ b/rapids/templates/rapids/question_display_block.html @@ -1,5 +1,5 @@