From 79d8143c7e733ddc81be362ac6a14f0b9d9ba7ae Mon Sep 17 00:00:00 2001 From: Ross Date: Thu, 26 Nov 2020 21:35:06 +0000 Subject: [PATCH] more fixes --- anatomy/models.py | 9 +++++ anatomy/templates/anatomy/exam_overview.html | 5 ++- .../templates/anatomy/exam_scores_user.html | 12 ++++--- anatomy/views.py | 33 ++++++++++++------- 4 files changed, 41 insertions(+), 18 deletions(-) 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 %} -
  1. {{ question }}thumbail
  2. +
  3. {{ question.description }}: {{ question.GetPrimaryAnswer }}thumbail +
    +Exams: {{ question.GetExams }} / Modality: {{ question.modality }} +
  4. {% 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: + +
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, }, )