.
This commit is contained in:
+19
-4
@@ -429,8 +429,7 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
# exam.get_exam_json()
|
||||
|
||||
# TODO: check if mememory leak?
|
||||
t = threading.Thread(target=self.exam_json,
|
||||
args=(request, pk))
|
||||
t = threading.Thread(target=self.exam_json, args=(request, pk))
|
||||
t.setDaemon(True)
|
||||
t.start()
|
||||
|
||||
@@ -520,10 +519,26 @@ class ExamViews(View, LoginRequiredMixin):
|
||||
)
|
||||
elif self.app_name == "rapids":
|
||||
questions = (
|
||||
exam.exam_questions.select_related()
|
||||
exam.exam_questions.select_related(
|
||||
"images", "abnormality", "region", "examination"
|
||||
)
|
||||
.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":
|
||||
questions = (
|
||||
exam.exam_questions.select_related("category").all()
|
||||
|
||||
+28
-12
@@ -237,19 +237,35 @@ class Rapid(models.Model):
|
||||
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..."
|
||||
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):
|
||||
e = self.exams.all().values_list("name", flat=True)
|
||||
|
||||
Reference in New Issue
Block a user