Refactor exam overview: enhance question display with improved layout and feedback visibility
This commit is contained in:
@@ -7,70 +7,101 @@
|
|||||||
{% block content %}
|
{% block content %}
|
||||||
|
|
||||||
{% load thumbnail %}
|
{% load thumbnail %}
|
||||||
<div class="physics">
|
<div class="container physics my-3">
|
||||||
|
|
||||||
This exam will be available to take <a href="{% url 'physics:exam_start' pk=exam.pk %}">here</a> (when active).
|
<p class="mb-3">This exam will be available to take <a href="{% url 'physics:exam_start' pk=exam.pk %}">here</a> (when active).</p>
|
||||||
|
|
||||||
{% autoescape off %}
|
<div class="card">
|
||||||
<ol id="full-question-list-physics">
|
<div class="card-header d-flex justify-content-between align-items-center">
|
||||||
|
<h5 class="mb-0">Questions <small class="text-muted">({{ questions.count }})</small></h5>
|
||||||
|
<div class="text-muted small">Exam: {{ exam.title }}</div>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<ul class="list-group list-group-flush" id="full-question-list-physics">
|
||||||
{% for question in questions.all %}
|
{% for question in questions.all %}
|
||||||
|
<li class="list-group-item">
|
||||||
|
<div class="d-flex align-items-start">
|
||||||
|
<div class="me-3">
|
||||||
|
<span class="badge bg-secondary">{{ forloop.counter }}</span>
|
||||||
|
</div>
|
||||||
|
<div class="flex-grow-1">
|
||||||
|
<div class="fw-bold mb-2">{{ question.stem|safe }}</div>
|
||||||
|
|
||||||
<li>
|
<div class="mb-2">
|
||||||
{{ question.stem }}
|
<ol type="a" class="mb-0">
|
||||||
<ol type="a" class="abcde">
|
<li class="d-flex justify-content-between align-items-start py-1">
|
||||||
<li class="question-a">
|
<div><span class="me-2">a)</span><span>{{ question.a }}</span></div>
|
||||||
<span class="question-text">{{ question.a }}</span>: <span class="question-answer">{{ question.a_answer }}</span>
|
<div class="text-end">
|
||||||
{% if question.a_feedback %}
|
<div class="text-primary fw-semibold">{{ question.a_answer }}</div>
|
||||||
<span class="question-feedback">{{question.a_feedback}}</span>
|
{% if question.a_feedback %}
|
||||||
{% endif %}
|
<div class="text-muted small">Feedback: {{ question.a_feedback }}</div>
|
||||||
</li>
|
{% endif %}
|
||||||
<li class="question-b">
|
</div>
|
||||||
<span class="question-text">{{ question.b }}</span>: <span class="question-answer">{{ question.b_answer }}</span>
|
</li>
|
||||||
{% if question.b_feedback %}
|
<li class="d-flex justify-content-between align-items-start py-1">
|
||||||
<span class="question-feedback">{{question.b_feedback}}</span>
|
<div><span class="me-2">b)</span><span>{{ question.b }}</span></div>
|
||||||
{% endif %}
|
<div class="text-end">
|
||||||
</li>
|
<div class="text-primary fw-semibold">{{ question.b_answer }}</div>
|
||||||
<li class="question-c">
|
{% if question.b_feedback %}
|
||||||
<span class="question-text">{{ question.c }}</span>: <span class="question-answer">{{ question.c_answer }}</span>
|
<div class="text-muted small">Feedback: {{ question.b_feedback }}</div>
|
||||||
{% if question.c_feedback %}
|
{% endif %}
|
||||||
<span class="question-feedback">{{question.c_feedback}}</span>
|
</div>
|
||||||
{% endif %}
|
</li>
|
||||||
</li>
|
<li class="d-flex justify-content-between align-items-start py-1">
|
||||||
<li class="question-d">
|
<div><span class="me-2">c)</span><span>{{ question.c }}</span></div>
|
||||||
<span class="question-text">{{ question.d }}</span>: <span class="question-answer">{{ question.d_answer }}</span>
|
<div class="text-end">
|
||||||
{% if question.d_feedback %}
|
<div class="text-primary fw-semibold">{{ question.c_answer }}</div>
|
||||||
<span class="question-feedback">{{question.d_feedback}}</span>
|
{% if question.c_feedback %}
|
||||||
{% endif %}
|
<div class="text-muted small">Feedback: {{ question.c_feedback }}</div>
|
||||||
</li>
|
{% endif %}
|
||||||
<li class="question-e">
|
</div>
|
||||||
<span class="question-text">{{ question.e }}</span>: <span class="question-answer">{{ question.e_answer }}</span>
|
</li>
|
||||||
{% if question.e_feedback %}
|
<li class="d-flex justify-content-between align-items-start py-1">
|
||||||
<span class="question-feedback">{{question.e_feedback}}</span>
|
<div><span class="me-2">d)</span><span>{{ question.d }}</span></div>
|
||||||
{% endif %}
|
<div class="text-end">
|
||||||
</li>
|
<div class="text-primary fw-semibold">{{ question.d_answer }}</div>
|
||||||
</ol>
|
{% if question.d_feedback %}
|
||||||
Category: {{ question.category }}, <a href="{% url 'physics:question_detail' pk=question.pk %}">View [id: {{question.pk}}]</a> <a
|
<div class="text-muted small">Feedback: {{ question.d_feedback }}</div>
|
||||||
href="{% url 'admin:physics_question_change' question.id %}">Edit</a>
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
<li class="d-flex justify-content-between align-items-start py-1">
|
||||||
|
<div><span class="me-2">e)</span><span>{{ question.e }}</span></div>
|
||||||
|
<div class="text-end">
|
||||||
|
<div class="text-primary fw-semibold">{{ question.e_answer }}</div>
|
||||||
|
{% if question.e_feedback %}
|
||||||
|
<div class="text-muted small">Feedback: {{ question.e_feedback }}</div>
|
||||||
|
{% endif %}
|
||||||
|
</div>
|
||||||
|
</li>
|
||||||
|
</ol>
|
||||||
|
</div>
|
||||||
|
|
||||||
|
<div class="small text-muted">
|
||||||
|
Category: {{ question.category }}
|
||||||
|
— <a href="{% url 'physics:question_detail' pk=question.pk %}">View</a>
|
||||||
|
<a href="{% url 'admin:physics_question_change' question.id %}" class="ms-2">Edit</a>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
|
</div>
|
||||||
</li>
|
</li>
|
||||||
|
{% empty %}
|
||||||
|
<li class="list-group-item text-muted">No questions available.</li>
|
||||||
{% endfor %}
|
{% endfor %}
|
||||||
</ol>
|
</ul>
|
||||||
{% endautoescape %}
|
</div>
|
||||||
|
|
||||||
</div>
|
</div>
|
||||||
|
|
||||||
{% include 'exam_overview_js.html' %}
|
{% include 'exam_overview_js.html' %}
|
||||||
|
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
|
|
||||||
{% block css %}
|
{% block css %}
|
||||||
<style>
|
<style>
|
||||||
.question-answer {
|
/* Small visual tweaks on top of Bootstrap */
|
||||||
font-weight: bolder;
|
.question-feedback { opacity: 0.7; }
|
||||||
}
|
.list-group-item ol { margin: 0; padding-left: 1.4rem; }
|
||||||
.question-feedback {
|
.list-group-item li { list-style-position: inside; }
|
||||||
opacity: 50%;
|
|
||||||
float: right
|
|
||||||
}
|
|
||||||
.question-feedback::before {
|
|
||||||
content: "Feedback: ";
|
|
||||||
}
|
|
||||||
</style>
|
</style>
|
||||||
{% endblock %}
|
{% endblock %}
|
||||||
Reference in New Issue
Block a user