This commit is contained in:
Ross
2022-05-20 11:28:20 +01:00
parent 1daa25f3c6
commit 0373b22e78
4 changed files with 53 additions and 42 deletions
+12 -24
View File
@@ -708,6 +708,11 @@ class CidUserAnswer(models.Model):
help_text="Candidate ID (limitied by BigIntegerField size)",
)
user = models.ForeignKey(
settings.AUTH_USER_MODEL, on_delete=models.CASCADE, blank=True, null=True
)
# Each user answer is associated with a particular exam
exam = models.ForeignKey(
Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True
@@ -724,12 +729,17 @@ class CidUserAnswer(models.Model):
)
def __str__(self):
name = self.cid
if self.user is not None:
name = self.user.username
try:
exam = self.exam
except (Exam.DoesNotExist, KeyError) as e:
exam = "None"
return "{}/{}/{}: {}".format(
exam, self.cid, self.question.get_primary_answer(), self.answer
exam, name, self.question.get_primary_answer(), self.answer
)
def save(self, *args, **kwargs):
@@ -815,26 +825,4 @@ class CidUserAnswer(models.Model):
elif marked_ans.status == Answer.MarkOptions.INCORRECT:
mark = 0
return mark
if (
q.answers.filter(
answer_compare__iexact=ans, status=Answer.MarkOptions.CORRECT
).first()
is not None
):
mark = 1
elif (
q.answers.filter(
answer_compare__iexact=ans, status=Answer.MarkOptions.HALF_MARK
).first()
is not None
):
mark = 0.5
elif q.answers.filter(
answer_compare__iexact=ans, status=Answer.MarkOptions.INCORRECT
).first():
mark = 0
else:
mark = "unmarked"
return mark
return mark