This commit is contained in:
Ross
2021-12-18 09:14:41 +00:00
parent 61c806594a
commit 2cc73e62ff
6 changed files with 296 additions and 158 deletions
+27 -27
View File
@@ -16,12 +16,14 @@ from generic.models import CidUser, ExamBase, QuestionNote
import reversion
class Category(models.Model):
category = models.CharField(max_length=200)
def __str__(self):
return self.category
class Question(models.Model):
stem = models.TextField(
blank=False,
@@ -34,9 +36,7 @@ class Question(models.Model):
blank=False,
help_text="The question text",
)
a_answer = models.BooleanField(
help_text=answer_help_text, default=True
)
a_answer = models.BooleanField(help_text=answer_help_text, default=True)
a_feedback = models.TextField(
blank=True,
help_text="Feedback for answer",
@@ -46,9 +46,7 @@ class Question(models.Model):
blank=False,
help_text="The question text",
)
b_answer = models.BooleanField(
help_text=answer_help_text, default=True
)
b_answer = models.BooleanField(help_text=answer_help_text, default=True)
b_feedback = models.TextField(
blank=True,
help_text="Feedback for answer",
@@ -58,9 +56,7 @@ class Question(models.Model):
blank=False,
help_text="The question text",
)
c_answer = models.BooleanField(
help_text=answer_help_text, default=True
)
c_answer = models.BooleanField(help_text=answer_help_text, default=True)
c_feedback = models.TextField(
blank=True,
help_text="Feedback for answer",
@@ -70,9 +66,7 @@ class Question(models.Model):
blank=False,
help_text="The question text",
)
d_answer = models.BooleanField(
help_text=answer_help_text, default=True
)
d_answer = models.BooleanField(help_text=answer_help_text, default=True)
d_feedback = models.TextField(
blank=True,
help_text="Feedback for answer",
@@ -82,9 +76,7 @@ class Question(models.Model):
blank=False,
help_text="The question text",
)
e_answer = models.BooleanField(
help_text=answer_help_text, default=True
)
e_answer = models.BooleanField(help_text=answer_help_text, default=True)
e_feedback = models.TextField(
blank=True,
help_text="Feedback for answer",
@@ -124,7 +116,13 @@ class Question(models.Model):
return reverse("physics:question_detail", kwargs={"pk": self.pk})
def get_answers(self):
return [self.a_answer, self.b_answer, self.c_answer, self.d_answer, self.e_answer]
return [
self.a_answer,
self.b_answer,
self.c_answer,
self.d_answer,
self.e_answer,
]
def get_answers_js(self):
return str(self.get_answers()).lower()
@@ -136,10 +134,8 @@ class Question(models.Model):
@reversion.register
class Exam(ExamBase):
app_name = "physics"
exam_questions = SortedManyToManyField(
Question, related_name="exams", blank="true"
)
exam_questions = SortedManyToManyField(Question, related_name="exams", blank="true")
time_limit = models.IntegerField(
help_text="Exam time limit (in seconds)",
@@ -149,12 +145,16 @@ class Exam(ExamBase):
recreate_json = None
author = models.ManyToManyField(settings.AUTH_USER_MODEL,
blank=True,
help_text='Author of exam',
related_name="physics_exam_author")
author = models.ManyToManyField(
settings.AUTH_USER_MODEL,
blank=True,
help_text="Author of exam",
related_name="physics_exam_author",
)
valid_users = models.ManyToManyField(CidUser, blank=True, related_name="physics_exams")
valid_users = models.ManyToManyField(
CidUser, blank=True, related_name="physics_exams"
)
def get_take_url(self):
return reverse("physics:exam_start", kwargs={"pk": self.pk})
@@ -189,7 +189,7 @@ class CidUserAnswer(models.Model):
def get_answers(self):
return (self.a, self.b, self.c, self.d, self.e)
def get_answer_scores(self):
def get_answer_score(self):
q = self.question
if self.a == q.a_answer:
@@ -217,4 +217,4 @@ class CidUserAnswer(models.Model):
else:
score_e = 0
return (score_a, score_b, score_c, score_d, score_e)
return (score_a, score_b, score_c, score_d, score_e)