Files
penracourses/rapids/templates/rapids/exam_scores_user.html
T
2022-04-06 16:55:14 +01:00

85 lines
3.4 KiB
HTML

{% extends 'rapids/base.html' %}
{% block content %}
<div class="question-display-block">
<div class="hide-show">HIDE/SHOW</div>
<div class="inner-display-block">
Question <span class="question-number">1</span>
<div id="single-dicom-viewer" class="dicom-viewer" data-images="" data-annotations=''>
</div>
<div class="feedback"></div>
<div>
<details>
<summary>Answers:</summary><span class="answers"></span>
</details>
</div>
</div>
</div>
<div class="rapids">
<h2>Exam: {{ exam.name }}</h2>
<h3>Candidate: {{ cid }}</h3>
Answers:
<ul class="score-answer-list">{% for ans, score, correct_answer in answers_and_marks %}
<li class="user-answer-li">Question {{forloop.counter}} - Correct answer: <span class="correct-answer">{{ correct_answer }}</span></li>
<span class="user-answer-score user-answer-score-{{score}} rapid-ans">
<pre>{{ans}}</pre> ({{score}})
</span>
<span class="view-question-link" data-qn={{forloop.counter0}}>View</span>
{% endfor %}
</ul>
<br /> Total mark: {{ total_score }} / {{max_score}}
<br /> Normalised score: {{ normalised_score }}
<div>
<a href="{% url 'cid_scores' cid passcode %}">Other exams</a>
</div>
</div>
{% endblock %}
{% block js %}
<script>
$(document).ready(function () {
$(".hide-show").click((evt, el) => {
$(".inner-display-block").toggle();
})
$(".view-question-link").on("click", function (e) {
console.log("click", e)
question_number = e.currentTarget.dataset.qn;
$("#single-dicom-viewer").empty();
$.ajax({
url: `{% url 'rapids:question_review' pk=exam.pk %}`,
data: {
csrfmiddlewaretoken: "{{ csrf_token }}",
question_number: question_number
},
type: "POST",
dataType: "json",
})
// $.ajax().done(), $.ajax().fail(), $ajax().always() are upto you. Add/change accordingly
.done(function (data) {
console.log(data);
let event = new CustomEvent('loadDicomViewerUrls', {
"detail": { "images": data.images, "annotations": data.annotations }
});
window.dispatchEvent(event);
$(".question-display-block .answers").empty().append(data.answers.toString());
n = parseInt(question_number) + 1
$(".question-display-block .question-number").empty().append(n);
$(".question-display-block .feedback").empty().append(`Feedback: ${data.feedback}<br />`);
// show some message according to the response.
// For eg. A message box showing that the status has been changed
$(".inner-display-block").show();
})
.always(function () {
console.log('[Done]');
})
})
$(".view-question-link").first().click();
});
</script>
{% endblock %}