diff --git a/anatomy/models.py b/anatomy/models.py
index a9eb1786..0c911b3b 100644
--- a/anatomy/models.py
+++ b/anatomy/models.py
@@ -109,6 +109,15 @@ class AnatomyQuestion(models.Model):
return "{} ({}) [{}, {}]".format(a.answer, exams, self.modality,
self.structure)
+ def GetPrimaryAnswer(self):
+ return self.answers.all().first().answer
+
+ def GetExams(self):
+ e = self.exams.all().values_list("name", flat=True)
+ exams = ", ".join(e)
+ return exams
+
+
def GetUnmarkedAnswersString(self):
unmarked_answers = self.GetUnmarkedAnswers()
diff --git a/anatomy/templates/anatomy/exam_overview.html b/anatomy/templates/anatomy/exam_overview.html
index dcba616a..f8020a77 100644
--- a/anatomy/templates/anatomy/exam_overview.html
+++ b/anatomy/templates/anatomy/exam_overview.html
@@ -12,7 +12,10 @@
{% for question in questions.all %}
-- {{ question }}

+- {{ question.description }}: {{ question.GetPrimaryAnswer }}
+
+Exams: {{ question.GetExams }} / Modality: {{ question.modality }}
+
{% endfor %}
JSON
diff --git a/anatomy/templates/anatomy/exam_scores_user.html b/anatomy/templates/anatomy/exam_scores_user.html
index 3bca3b1b..9e30e089 100644
--- a/anatomy/templates/anatomy/exam_scores_user.html
+++ b/anatomy/templates/anatomy/exam_scores_user.html
@@ -2,12 +2,14 @@
{% block content %}
-
{{ exam.name }}
-
Candidate: {{ user_names|get_item:user }}
-
- Answers: {% for ans, score in answers_and_marks %}
+
Exam: {{ exam.name }}
+
Candidate: {{ cid }}
+ Answers:
+
{% for ans, score, correct_answer in answers_and_marks %}
+ - Question {{forloop.counter}}: {{ correct_answer }}
{{ans}} ({{score}}),
{% endfor %}
-
Total mark: {{ score }}
+
+
Total mark: {{ total_score }}
{% endblock %}
diff --git a/anatomy/views.py b/anatomy/views.py
index 8de6c5da..9b32db60 100644
--- a/anatomy/views.py
+++ b/anatomy/views.py
@@ -549,16 +549,23 @@ def exam_scores_cid(request, pk):
user_scores[user] = sum(user_answers_marks[user])
user_scores_list = list(user_scores.values())
- mean = statistics.mean(user_scores_list)
- median = statistics.median(user_scores_list)
- try:
- mode = statistics.mode(user_scores_list)
- except statistics.StatisticsError:
- mode = "No unique mode"
- df = user_scores_list
- fig = px.histogram(df, x=0)
- fig_html = fig.to_html()
+ if len(user_scores_list) < 1:
+ mean = 0
+ median = 0
+ mode = 0
+ fig_html = ""
+ else:
+ mean = statistics.mean(user_scores_list)
+ median = statistics.median(user_scores_list)
+ try:
+ mode = statistics.mode(user_scores_list)
+ except statistics.StatisticsError:
+ mode = "No unique mode"
+
+ df = user_scores_list
+ fig = px.histogram(df, x=0)
+ fig_html = fig.to_html()
total = len(questions)
@@ -592,6 +599,7 @@ def exam_scores_cid_user(request, pk, sk):
answers_marks = []
answers = []
+
for q in questions:
# Get user answer
s = q.cid_user_answers.filter(cid=cid)
@@ -608,11 +616,12 @@ def exam_scores_cid_user(request, pk, sk):
a = 1
else:
a = 0
+ correct_answer = q.GetPrimaryAnswer()
answers.append(ans)
answers_marks.append(a)
- answers_and_marks.append((ans, a))
+ answers_and_marks.append((ans, a, correct_answer))
- score = sum(answers_marks)
+ total_score = sum(answers_marks)
total = len(questions)
@@ -625,7 +634,7 @@ def exam_scores_cid_user(request, pk, sk):
"questions": questions,
"answers": answers,
"answers_marks": answers_marks,
- "score": score,
+ "total_score": total_score,
"answers_and_marks": answers_and_marks,
},
)