Enhance question feedback in exam review by adding answers and feedback details for each part

This commit is contained in:
Ross
2025-11-10 13:17:19 +00:00
parent d176288607
commit eebbe8b759
2 changed files with 13 additions and 10 deletions
+9
View File
@@ -129,6 +129,15 @@ class Question(QuestionBase):
def get_questions(self):
return [self.a, self.b, self.c, self.d, self.e]
def get_questions_and_answers_and_feedback(self):
return [
(self.a, self.a_answer, self.a_feedback),
(self.b, self.b_answer, self.b_feedback),
(self.c, self.c_answer, self.c_feedback),
(self.d, self.d_answer, self.d_feedback),
(self.e, self.e_answer, self.e_feedback),
]
def get_unanswered_mark_and_text(self) -> tuple[int, tuple[str, str, str, str, str]]:
"""
@@ -7,21 +7,15 @@
<h6>Parts</h6>
<ul class="list-group">
{% if question.get_questions %}
{% for part in question.get_questions %}
{% for question, answer, feedback in question.get_questions_and_answers_and_feedback %}
<li class="list-group-item d-flex justify-content-between align-items-start">
<div>
<strong>Part {{ forloop.counter }}.</strong>
<span class="ms-2">{{ part }}</span>
<span class="ms-2">{{ question }}</span>
</div>
<div>
{# If we can determine the correct answer for this part show a badge - best-effort #}
{% if question.get_answers %}
{% with ans=question.get_answers|get_item:forloop.counter0 %}
{% if ans %}
<span class="badge bg-primary">Answer: {{ ans }}</span>
{% endif %}
{% endwith %}
{% endif %}
<span class="badge bg-primary">Answer: {{ answer }}</span>
<span class="ms-2">{{ feedback }}</span>
</div>
</li>
{% endfor %}