This commit is contained in:
Ross
2021-02-23 21:12:50 +00:00
parent 38a2165893
commit 7f4dbfec51
12 changed files with 153 additions and 24 deletions
+3
View File
@@ -65,6 +65,8 @@ class LongTable(tables.Table):
#series = tables.ManyToManyColumn(verbose_name="Exams")
exams = tables.ManyToManyColumn(verbose_name="Exams")
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
class Meta:
model = Long
template_name = "django_tables2/bootstrap4.html"
@@ -99,6 +101,7 @@ class LongSeriesTable(tables.Table):
delete = tables.LinkColumn(
"longs:long_series_delete", text="Delete", args=[A("pk")], orderable=False
)
selection = tables.CheckBoxColumn(accessor="pk", orderable=False)
class Meta:
model = LongSeries
+34 -2
View File
@@ -17,10 +17,10 @@
</div>
<p><a href="{% url 'longs:mark_overview' pk=exam.pk %}"><button>Mark exam</button></a></p>
<ol id="full-question-list">
<ol id="full-question-list" class="sortable">
{% for question in questions.all %}
<li data-question-id={{question.pk}}>
<li data-question_pk={{question.pk}}>
History: {{ question.history}}
<br />
{% for series in question.series.all %}
@@ -44,6 +44,7 @@
<a href="{% url 'longs:exam_json_recreate' pk=exam.pk %}">Refresh JSON cache</a>
<button id='button-open-access'>Make questions open access</button>
<button id='button-closed-access'>Make questions closed access</button>
<button id='button-edit-order'>Edit exam order</button>
</div>
<script type="text/javascript">
@@ -141,6 +142,37 @@
console.log('[Done]');
})
})
$("#button-edit-order").click(function () {
$(this).remove();
sortable('.sortable');
$("#full-question-list").append($("<button>Save exam order</button>").click(() => {
new_order = [];
$("#full-question-list li").each((n, el) => {
new_order.push(el.dataset.question_pk)
})
$.ajax({
url: "{% url 'longs:exam_json_edit' pk=exam.pk %}",
data: {
csrfmiddlewaretoken: "{{ csrf_token }}",
set_exam_order: JSON.stringify(new_order),
},
type: "POST",
dataType: "json",
})
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
.done(function (data) {
console.log(data);
if (data.status == "success") {
toastr.info('Exam order changed.')
}
})
.always(function () {
console.log('[Done]');
})
}));
});
});
</script>
{% endblock %}
+1 -1
View File
@@ -931,4 +931,4 @@ def exam_scores_cid_user(request, pk, sk):
)
LongExamViews = ExamViews(Exam, "longs", "long", loadJsonAnswer)
LongExamViews = ExamViews(Exam, Long, "longs", "long", loadJsonAnswer)