move a user more UserAnswer features to base class

This commit is contained in:
Ross
2023-05-15 11:23:06 +01:00
parent d05752b2dc
commit 664e29937d
6 changed files with 14 additions and 20 deletions
+1 -3
View File
@@ -469,6 +469,7 @@ class Exam(ExamBase):
@reversion.register @reversion.register
class UserAnswer(UserAnswerBase): class UserAnswer(UserAnswerBase):
"""User answers by candidate""" """User answers by candidate"""
app_name = "anatomy"
question = models.ForeignKey( question = models.ForeignKey(
AnatomyQuestion, related_name="cid_user_answers", on_delete=models.CASCADE AnatomyQuestion, related_name="cid_user_answers", on_delete=models.CASCADE
@@ -515,9 +516,6 @@ class UserAnswer(UserAnswerBase):
self.answer_compare = s self.answer_compare = s
def get_absolute_url(self):
return reverse("anatomy:user_answer_view", kwargs={"pk": self.pk})
# def get_compare_string(self): # def get_compare_string(self):
# # strip here should be unneccasry (providing clean is now working) # # strip here should be unneccasry (providing clean is now working)
# s = self.answer.lower().strip() # s = self.answer.lower().strip()
+8
View File
@@ -410,6 +410,11 @@ class UserAnswerBase(models.Model):
abstract = True abstract = True
ordering = ["cid"] ordering = ["cid"]
def __str__(self) -> str:
return "{}/{}/{}".format(self.get_candidate_name(), self.exam, self.question.pk)
def get_candidate_name(self) -> str: def get_candidate_name(self) -> str:
if self.cid is not None: if self.cid is not None:
return str(self.cid) return str(self.cid)
@@ -422,6 +427,9 @@ class UserAnswerBase(models.Model):
else: else:
return str(self.user.id) return str(self.user.id)
def get_absolute_url(self):
return reverse(f"{self.app_name}:user_answer_view", kwargs={"pk": self.pk})
class NoteType(models.Model): class NoteType(models.Model):
note_type = models.CharField(max_length=200) note_type = models.CharField(max_length=200)
+1 -4
View File
@@ -755,6 +755,7 @@ class Exam(ExamBase):
@reversion.register @reversion.register
class UserAnswer(UserAnswerBase): class UserAnswer(UserAnswerBase):
"""User answers by candidate""" """User answers by candidate"""
app_name = "longs"
question = models.ForeignKey( question = models.ForeignKey(
Long, related_name="cid_user_answers", on_delete=models.CASCADE Long, related_name="cid_user_answers", on_delete=models.CASCADE
@@ -813,8 +814,6 @@ class UserAnswer(UserAnswerBase):
# "AnswerMarks", related_name="user_answer", on_delete=models.SET_NULL, null=True, blank=True # "AnswerMarks", related_name="user_answer", on_delete=models.SET_NULL, null=True, blank=True
# ) # )
def __str__(self): def __str__(self):
try: try:
exam = self.exam exam = self.exam
@@ -879,8 +878,6 @@ class UserAnswer(UserAnswerBase):
return True return True
return False return False
def get_absolute_url(self):
return reverse("longs:user_answer_view", kwargs={"pk": self.pk})
+1 -4
View File
@@ -184,6 +184,7 @@ class Exam(ExamBase):
@reversion.register @reversion.register
class UserAnswer(UserAnswerBase): class UserAnswer(UserAnswerBase):
"""User answers by candidate""" """User answers by candidate"""
app_name = "physics"
question = models.ForeignKey( question = models.ForeignKey(
Question, related_name="cid_user_answers", on_delete=models.CASCADE Question, related_name="cid_user_answers", on_delete=models.CASCADE
@@ -207,10 +208,6 @@ class UserAnswer(UserAnswerBase):
Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True
) )
def __str__(self):
return "{}/{}/{}".format(self.cid, self.exam, self.question.pk)
def get_answers(self): def get_answers(self):
return (self.a, self.b, self.c, self.d, self.e) return (self.a, self.b, self.c, self.d, self.e)
+2 -6
View File
@@ -771,6 +771,7 @@ class Exam(ExamBase):
@reversion.register @reversion.register
class UserAnswer(UserAnswerBase): class UserAnswer(UserAnswerBase):
"""User answers by candidate""" """User answers by candidate"""
app_name = "rapids"
question = models.ForeignKey( question = models.ForeignKey(
Rapid, related_name="cid_user_answers", on_delete=models.CASCADE Rapid, related_name="cid_user_answers", on_delete=models.CASCADE
@@ -816,9 +817,7 @@ class UserAnswer(UserAnswerBase):
def __str__(self): def __str__(self):
name = self.cid name = self.get_candidate_name()
if self.user is not None:
name = self.user.username
try: try:
exam = self.exam exam = self.exam
@@ -859,9 +858,6 @@ class UserAnswer(UserAnswerBase):
else: else:
return self.answer return self.answer
def get_absolute_url(self):
return reverse("rapids:user_answer_view", kwargs={"pk": self.pk})
def get_answer_callstate(self): def get_answer_callstate(self):
if not self.callstate: if not self.callstate:
return "" return ""
+1 -3
View File
@@ -207,6 +207,7 @@ class Exam(ExamBase):
@reversion.register @reversion.register
class UserAnswer(UserAnswerBase): class UserAnswer(UserAnswerBase):
"""User answers by candidate""" """User answers by candidate"""
app_name = "sbas"
question = models.ForeignKey( question = models.ForeignKey(
Question, related_name="cid_user_answers", on_delete=models.CASCADE Question, related_name="cid_user_answers", on_delete=models.CASCADE
@@ -230,9 +231,6 @@ class UserAnswer(UserAnswerBase):
Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True Exam, related_name="cid_user_answers", on_delete=models.CASCADE, null=True
) )
def __str__(self):
return "{}/{}/{}".format(self.cid, self.exam, self.question.pk)
def get_answer_string(self): def get_answer_string(self):
return self.answer return self.answer