.
This commit is contained in:
+19
-4
@@ -429,8 +429,7 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
# exam.get_exam_json()
|
# exam.get_exam_json()
|
||||||
|
|
||||||
# TODO: check if mememory leak?
|
# TODO: check if mememory leak?
|
||||||
t = threading.Thread(target=self.exam_json,
|
t = threading.Thread(target=self.exam_json, args=(request, pk))
|
||||||
args=(request, pk))
|
|
||||||
t.setDaemon(True)
|
t.setDaemon(True)
|
||||||
t.start()
|
t.start()
|
||||||
|
|
||||||
@@ -520,10 +519,26 @@ class ExamViews(View, LoginRequiredMixin):
|
|||||||
)
|
)
|
||||||
elif self.app_name == "rapids":
|
elif self.app_name == "rapids":
|
||||||
questions = (
|
questions = (
|
||||||
exam.exam_questions.select_related()
|
exam.exam_questions.select_related(
|
||||||
|
"images", "abnormality", "region", "examination"
|
||||||
|
)
|
||||||
.all()
|
.all()
|
||||||
.prefetch_related("images", "abnormality", "region", "examination")
|
.prefetch_related(
|
||||||
|
Prefetch(
|
||||||
|
"answers",
|
||||||
|
queryset=self.Answer.objects.filter(
|
||||||
|
proposed=False, status=self.Answer.MarkOptions.CORRECT
|
||||||
|
),
|
||||||
|
to_attr="prefetched_primary_answer"
|
||||||
|
# queryset=self.Answer.objects.filter(),
|
||||||
|
),
|
||||||
|
)
|
||||||
)
|
)
|
||||||
|
# questions = (
|
||||||
|
# exam.exam_questions.select_related()
|
||||||
|
# .all()
|
||||||
|
# .prefetch_related("images", "abnormality", "region", "examination")
|
||||||
|
# )
|
||||||
elif self.app_name == "physics":
|
elif self.app_name == "physics":
|
||||||
questions = (
|
questions = (
|
||||||
exam.exam_questions.select_related("category").all()
|
exam.exam_questions.select_related("category").all()
|
||||||
|
|||||||
+28
-12
@@ -237,19 +237,35 @@ class Rapid(models.Model):
|
|||||||
def get_primary_answer(self):
|
def get_primary_answer(self):
|
||||||
if self.normal:
|
if self.normal:
|
||||||
return "Normal"
|
return "Normal"
|
||||||
elif (
|
|
||||||
self.answers.filter(
|
|
||||||
proposed=False, status=Answer.MarkOptions.CORRECT
|
|
||||||
).count()
|
|
||||||
> 0
|
|
||||||
):
|
|
||||||
return (
|
|
||||||
self.answers.filter(proposed=False, status=Answer.MarkOptions.CORRECT)
|
|
||||||
.first()
|
|
||||||
.answer
|
|
||||||
)
|
|
||||||
else:
|
else:
|
||||||
return "None yet..."
|
if hasattr(self, "prefetched_primary_answer") and self.prefetched_primary_answer:
|
||||||
|
ans = self.prefetched_primary_answer[0]
|
||||||
|
else:
|
||||||
|
ans = self.answers.filter(
|
||||||
|
proposed=False, status=Answer.MarkOptions.CORRECT
|
||||||
|
).first()
|
||||||
|
|
||||||
|
if ans is None:
|
||||||
|
return "None yet..."
|
||||||
|
else:
|
||||||
|
return ans.answer
|
||||||
|
|
||||||
|
#def get_primary_answer(self):
|
||||||
|
# if self.normal:
|
||||||
|
# return "Normal"
|
||||||
|
# elif (
|
||||||
|
# self.answers.filter(
|
||||||
|
# proposed=False, status=Answer.MarkOptions.CORRECT
|
||||||
|
# ).count()
|
||||||
|
# > 0
|
||||||
|
# ):
|
||||||
|
# return (
|
||||||
|
# self.answers.filter(proposed=False, status=Answer.MarkOptions.CORRECT)
|
||||||
|
# .first()
|
||||||
|
# .answer
|
||||||
|
# )
|
||||||
|
# else:
|
||||||
|
# return "None yet..."
|
||||||
|
|
||||||
def get_exams(self):
|
def get_exams(self):
|
||||||
e = self.exams.all().values_list("name", flat=True)
|
e = self.exams.all().values_list("name", flat=True)
|
||||||
|
|||||||
Reference in New Issue
Block a user