This commit is contained in:
Ross
2021-09-21 18:34:07 +01:00
parent 0e3ca7df71
commit d30feb34ac
3 changed files with 30 additions and 26 deletions
+29 -23
View File
@@ -129,8 +129,8 @@ class AnatomyQuestion(models.Model):
def __str__(self):
# Get first answer
return "{} [{}, {}]".format(
self.get_primary_answer(), self.modality, self.structure
return "{}: {} [{}, {}]".format(
self.question_type, self.get_primary_answer(), self.modality, self.structure
)
# Get associated exams
e = self.exams.all().values_list("name", flat=True)
@@ -170,12 +170,13 @@ class AnatomyQuestion(models.Model):
def get_unmarked_answers(self, exam_pk=None):
if exam_pk is None:
user_answers = set(
[i.answer_compare for i in self.cid_user_answers.all()]
)
user_answers = set([i.answer_compare for i in self.cid_user_answers.all()])
else:
user_answers = set(
[i.answer_compare for i in self.cid_user_answers.filter(exam__id=exam_pk)]
[
i.answer_compare
for i in self.cid_user_answers.filter(exam__id=exam_pk)
]
)
unmarked_answers = user_answers - self.get_marked_answers()
@@ -193,24 +194,23 @@ class AnatomyQuestion(models.Model):
if i.status != i.MarkOptions.UNMARKED
]
)
#correct_answers = set(
# correct_answers = set(
# [i.answer.get_compare_string() for i in self.answers.all()]
#)
#half_mark_answers = set(
# )
# half_mark_answers = set(
# [i.answer.get_compare_string() for i in self.half_mark_answers.all()]
#)
#incorrect_answers = set(
# )
# incorrect_answers = set(
# [i.answer.get_compare_string() for i in self.incorrect_answers.all()]
#)
# )
#marked_answers = correct_answers | half_mark_answers | incorrect_answers
#return marked_answers
# marked_answers = correct_answers | half_mark_answers | incorrect_answers
# return marked_answers
def get_annotations(self):
return self.image_annotations
@reversion.register
class Answer(models.Model):
question = models.ForeignKey(
@@ -243,7 +243,7 @@ class Answer(models.Model):
self.answer = self.answer.strip()
s = self.answer.lower()
s = s.translate(str.maketrans('', '', string.punctuation))
s = s.translate(str.maketrans("", "", string.punctuation))
self.answer_compare = s
@@ -292,10 +292,12 @@ class Exam(ExamBase):
help_text="Exam time limit (in seconds)", default=5400
)
author = models.ManyToManyField(settings.AUTH_USER_MODEL,
blank=True,
help_text='Author of exam',
related_name="anatomy_exam_author")
author = models.ManyToManyField(
settings.AUTH_USER_MODEL,
blank=True,
help_text="Author of exam",
related_name="anatomy_exam_author",
)
def get_exam_json(self):
questions = self.exam_questions.all()
@@ -342,7 +344,11 @@ class CidUserAnswer(models.Model):
answer_compare = models.TextField(max_length=500, blank=True)
cid = models.BigIntegerField(blank=True, null=True, help_text="Candidate ID (limitied by BigIntegerField size)")
cid = models.BigIntegerField(
blank=True,
null=True,
help_text="Candidate ID (limitied by BigIntegerField size)",
)
# Each user answer is associated with a particular exam
exam = models.ForeignKey(
@@ -370,7 +376,7 @@ class CidUserAnswer(models.Model):
self.answer = self.answer.strip()
s = self.answer.lower()
s = s.translate(str.maketrans('', '', string.punctuation))
s = s.translate(str.maketrans("", "", string.punctuation))
self.answer_compare = s
@@ -416,4 +422,4 @@ class CidUserAnswer(models.Model):
mark = 0
else:
mark = "unmarked"
return mark
return mark
@@ -18,9 +18,6 @@ User: {{user}}
{{ form.author }}
</div>
{% endif %}
{{view.question}}
{{view.question.pk}}
<div class="fieldWrapper">
{{ form.content_type.errors }}
+1
View File
@@ -213,6 +213,7 @@ class AddQuestionNote(CreateView):
"object_id" : pk }
def get_context_data(self, **kwargs):
# This can also be accessed via view.**** in the template
context = super(AddQuestionNote, self).get_context_data(**kwargs)
context['question'] = self.question
return context