Enhance exam review display to show correct answers and update result color descriptions for clarity
This commit is contained in:
@@ -1291,6 +1291,31 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
pct_val = pcts.get(k, 0.0) if isinstance(pcts, dict) else 0.0
|
||||
breakdown.append((k, v, pct_val))
|
||||
|
||||
# Determine the canonical correct answer representation for display.
|
||||
correct_answer = None
|
||||
try:
|
||||
if self.app_name == "sbas":
|
||||
correct_answer = q.get_correct_answer()
|
||||
elif self.app_name == "physics":
|
||||
correct_answer = q.get_answers()
|
||||
else:
|
||||
# get_primary_answer is used elsewhere as the generic primary answer
|
||||
try:
|
||||
correct_answer = q.get_primary_answer()
|
||||
except Exception:
|
||||
correct_answer = getattr(q, "best_answer", None)
|
||||
|
||||
# Normalise iterable answers into a readable string
|
||||
if isinstance(correct_answer, (list, tuple)):
|
||||
try:
|
||||
correct_answer = ", ".join([str(x) for x in correct_answer])
|
||||
except Exception:
|
||||
correct_answer = str(correct_answer)
|
||||
elif correct_answer is not None:
|
||||
correct_answer = str(correct_answer)
|
||||
except Exception:
|
||||
correct_answer = None
|
||||
|
||||
question_summaries.append(
|
||||
{
|
||||
"question": q,
|
||||
@@ -1299,6 +1324,7 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
"counts": counts,
|
||||
"pcts": pcts,
|
||||
"correct_pct": correct_pct,
|
||||
"correct_answer": correct_answer,
|
||||
"answered_pct": answered_pct,
|
||||
"colour": colour,
|
||||
"top_answer": top_answer,
|
||||
|
||||
Reference in New Issue
Block a user