Files
penracourses/generic/templates/generic/exam_scores_base.html
T
Ross e2c8f751f2 .
2022-06-26 22:45:52 +01:00

128 lines
4.9 KiB
HTML

{% extends exam.app_name|add:'/exams.html' %}
{% block content %}
<div id="stats-plot">{{plot|safe}}</div>
<div class="">
<h2>{{ exam.name }}</h2>
{% if cached_scores %}
User answer scores are cached, if you update or change an answer you will need to <a href="{% url exam.app_name|add:':exam_scores_refresh' exam.pk %}">refresh the scores</a>.
{% endif %}
{% if unmarked %}
<div class="alert alert-warning" role="alert">
The following questions need marking
{% for exam_index in unmarked %}
<a href="{% url exam.app_name|add:':mark' exam.pk exam_index %}">{{ exam_index|add:1 }}</a>
{% endfor %}
</div>
{% endif %}
</div>
<div id="stats-block">
<h3>Stats</h3>
Candidates: {{cids|length}}<br />
Max score: {{max_score}}<br />
Mean: {{mean}}, Median {{median}}, Mode {{mode}}
</div>
<div>
<table class="table table-dark table-striped table-hover table-sm cid-score-table">
<tr>
<th>Candidate ID</th>
<th>Score</th>
<th>Normalised Score</th>
</tr>
{% for cid in cids %}
<tr>
{% if cid|slice:":1" == "u" %}
<td>{{cids_user_id_map|get_item:cid}}</td>
{% else %}
<td><a href="{% url 'cid_scores_admin' cid|slice:'2:' %}">{{cid}}</a></td>
{% endif %}
<td>{{user_scores|get_item:cid}}</td>
<td>{{user_scores_normalised|get_item:cid}}</td>
</tr>
{% endfor %}
</table>
</div>
<div>
<h3>Answers as a table</h3>
<table class="table table-dark table-striped table-hover table-sm col-sm">
<thead class="thead-dark">
<tr>
<th>Candidate</th>
{% for cid in cids %}
{% comment %} <th><a href="{% url exam.app_name|add:':exam_scores_cid_user' exam.pk cid %}">{{cid}}</a></th> {% endcomment %}
<th><a href="">{{cids_user_id_map|get_item:cid}}</a></th>
{% endfor %}
</tr>
</thead>
{% block table_answers %}
{% endblock table_answers %}
{% comment %} {% for question in questions %}
<tr>
<td><a href="{% url exam.app_name|add:':mark' exam_pk=exam.pk sk=forloop.counter0 %}">Question {{forloop.counter}}</a>
{% if question.normal %}
[N]
{% else %}
[A]
{% endif %}
</td>
{% for cid in cids %}
{% with by_question|get_item:question|get_item:cid as ans_score %}
<td class="user-answer-score-{{ans_score.1}}" title="answer score: {{ans_score.1}} [{{ans_score.2}}]">{{ans_score.0}}</td>
{% endwith %}
{% endfor %}
</tr>
{% endfor %} {% endcomment %}
<tr>
<td>Score:</td>
{% for cid in cids %}
<td>{{user_scores|get_item:cid}}</td>
{% endfor %}
</tr>
</table>
{% block breakdown %}{% endblock breakdown %}
<details>
<summary>Email results</summary>
User results emailed: {{exam.exam_results_emailed|default:"Never"}}<br/>
<button id="email-results-button" title="Email results to users and their supervisors">Email user results</button>
<button id="email-results-check-button" title="Check the status of emailed results">Check email status</button>
</details>
</div>
<script>
$(document).ready(() => {
$("#email-results-button").click((evt) => {
if (confirm("This will email results, please make sure scores have been refreshed before continuing")) {
let additional_email = prompt("Please enter an additional email to send to (user and supervisor will automatically be used if available) if required");
let url = "{% url exam.app_name|add:':exam_report_email' exam_id=exam.pk %}";
if ( additional_email != null ) {
url = url + "?additional_email="+encodeURI(additional_email)
}
window.location = url;
}
evt.preventDefault();
})
$("#email-results-check-button").click((evt) => {
window.location = "{% url exam.app_name|add:':exam_report_email_status' exam_id=exam.pk %}";
})
})
</script>
{% endblock %}