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
@@ -0,0 +1,21 @@
# Generated by Django 3.2.13 on 2022-05-18 18:30
from django.conf import settings
from django.db import migrations, models
import django.db.models.deletion
class Migration(migrations.Migration):
dependencies = [
migrations.swappable_dependency(settings.AUTH_USER_MODEL),
('rapids', '0052_rapidimage_filename'),
]
operations = [
migrations.AddField(
model_name='ciduseranswer',
name='user',
field=models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.CASCADE, to=settings.AUTH_USER_MODEL),
),
]
+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