Enhance exam scores user template with question filtering and improved score display

This commit is contained in:
Ross
2026-01-19 12:49:34 +00:00
parent d4d747517c
commit f149a88bd6
@@ -7,9 +7,29 @@
<div class="col-md-8">
<div class="card">
<div class="card-body p-0">
<div class="p-2 d-flex align-items-center justify-content-between">
<div class="small text-muted">Filter questions by marks</div>
<div>
<select id="filter-score" class="form-select form-select-sm" style="min-width:120px;">
$("#hide-viewer").on('click', function(){ $('.viewer-block .viewer-body').toggle(); });
// Filter questions by score
$("#filter-score").on('change', function(){
const val = $(this).val();
$(".list-group-item[data-score]").each(function(){
const s = $(this).data('score');
if(val === 'all' || String(s) === String(val)) $(this).show(); else $(this).hide();
});
});
$(".view-question-link").on("click", function (e) {
<option value="0">0</option>
</select>
</div>
</div>
<ul class="list-group list-group-flush">
{% for ans, score, correct_answer in answers_and_marks %}
<li class="list-group-item d-flex justify-content-between align-items-start">
<li class="list-group-item d-flex justify-content-between align-items-start" data-score="{{ score }}">
<div class="d-flex align-items-start">
<div class="me-3">
<span class="badge bg-secondary">{{ forloop.counter }}</span>
@@ -19,13 +39,23 @@
<div class="small text-muted">Correct answer: {% if exam.publish_results %}<span class="correct-answer">{{ correct_answer }}</span>{% else %}—{% endif %}</div>
<div class="mt-2"><pre class="mb-0">{{ ans }}</pre></div>
{% if exam.publish_results or view_all_results %}
<div class="small mt-2 text-muted">Marks: <span class="answer-score">{{ score }}</span></div>
<div class="small mt-2">
Marks:
{% if score|int >= 2 %}
<span class="badge bg-success ms-1">{{ score }}</span>
{% elif score|int == 1 %}
<span class="badge bg-warning text-dark ms-1">{{ score }}</span>
{% else %}
<span class="badge bg-secondary ms-1">{{ score }}</span>
{% endif %}
</div>
{% endif %}
</div>
</div>
<div class="text-end ms-3">
{% if exam.publish_results %}
<button type="button" class="btn btn-sm btn-outline-primary view-question-button" data-qn={{forloop.counter0}}>View</button>
<button type="button" class="btn btn-sm btn-outline-primary view-question-link" data-qn={{forloop.counter0}}>View</button>
{% else %}
<button type="button" class="btn btn-sm btn-outline-secondary" disabled>View</button>
{% endif %}
@@ -75,6 +105,8 @@
.anatomy .card.sticky-top { min-width: 600px; }
}
.anatomy .viewer-block .viewer-body { overflow: auto; }
.viewer-block .answers { background: #f8f9fa; padding: .5rem; border-radius: .25rem; }
.viewer-block .answers pre { margin: 0; white-space: pre-wrap; }
.dicom-viewer, .dicom-viewer .canvas-panel, .dicom-viewer .cornerstone-element { max-width: 100%; box-sizing: border-box; }
.dicom-viewer canvas { max-width: 100% !important; width: 100% !important; height: auto !important; display: block; }
#single-dicom-viewer { width: 100%; }