generalise a QuestionBase
This commit is contained in:
+21
-1
@@ -24,6 +24,7 @@ from django.contrib.auth.models import User
|
||||
from django.db.models.signals import post_save
|
||||
from django.dispatch import receiver
|
||||
|
||||
|
||||
class Plane(models.Model):
|
||||
plane = models.CharField(max_length=200, unique=True)
|
||||
|
||||
@@ -71,15 +72,29 @@ class QuestionBase(models.Model):
|
||||
default=False,
|
||||
)
|
||||
|
||||
created_date = models.DateTimeField(default=timezone.now)
|
||||
|
||||
open_access = models.BooleanField(
|
||||
help_text="If a question should be freely available to browse", default=True
|
||||
)
|
||||
|
||||
feedback = models.TextField(null=True, blank=True, help_text="Question Feedback")
|
||||
|
||||
notes = GenericRelation("generic.QuestionNote")
|
||||
|
||||
class Meta:
|
||||
abstract = True
|
||||
|
||||
def get_unanswered_mark_and_text(self) -> tuple(int, str):
|
||||
def get_unanswered_mark_and_text(self) -> tuple[ int, str ]:
|
||||
"""
|
||||
Override in models if needed
|
||||
"""
|
||||
return (0, "Not answered")
|
||||
|
||||
def get_primary_answer(self):
|
||||
"""If this makes sense in the question/answer context override"""
|
||||
return None
|
||||
|
||||
|
||||
class ExamBase(models.Model):
|
||||
name = models.CharField(max_length=200, help_text="Name of the exam")
|
||||
@@ -436,6 +451,11 @@ class UserAnswerBase(models.Model):
|
||||
def get_absolute_url(self):
|
||||
return reverse(f"{self.app_name}:user_answer_view", kwargs={"pk": self.pk})
|
||||
|
||||
def get_answer(self):
|
||||
"""might need overriding"""
|
||||
return self.answer
|
||||
|
||||
|
||||
class NoteType(models.Model):
|
||||
note_type = models.CharField(max_length=200)
|
||||
|
||||
|
||||
+1
-4
@@ -1803,10 +1803,7 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
answer_score = score
|
||||
ans = text
|
||||
else:
|
||||
if exam.app_name == "rapids" and user_answer.normal:
|
||||
ans = "Normal"
|
||||
else:
|
||||
ans = user_answer.answer
|
||||
ans = user_answer.get_answer()
|
||||
answer_score = user_answer.get_answer_score()
|
||||
|
||||
correct_answer = q.get_primary_answer()
|
||||
|
||||
Reference in New Issue
Block a user