vault backup: 2025-12-26 02:09:22
All checks were successful
Deploy Quartz site to GitHub Pages / build (push) Successful in 2m29s
All checks were successful
Deploy Quartz site to GitHub Pages / build (push) Successful in 2m29s
This commit is contained in:
29
stroma/quiz/views/get_session_questions_view.py
Normal file
29
stroma/quiz/views/get_session_questions_view.py
Normal file
@@ -0,0 +1,29 @@
|
||||
from django.db.models import Q
|
||||
from quiz.models import Question
|
||||
|
||||
|
||||
def get_session_questions(session):
|
||||
"""Helper to get filtered questions for a session"""
|
||||
questions = Question.objects.all()
|
||||
|
||||
if session.course:
|
||||
questions = questions.filter(exam__course=session.course)
|
||||
|
||||
if session.tags.exists():
|
||||
questions = questions.filter(tags__in=session.tags.all())
|
||||
|
||||
if session.exams.exists():
|
||||
questions = questions.filter(exam__in=session.exams.all())
|
||||
|
||||
if session.question_types:
|
||||
q_objs = Q()
|
||||
if 'single' in session.question_types:
|
||||
q_objs |= ~Q(correct_answer__contains=',')
|
||||
if 'multi' in session.question_types:
|
||||
q_objs |= Q(correct_answer__contains=',')
|
||||
|
||||
if q_objs:
|
||||
questions = questions.filter(q_objs)
|
||||
|
||||
return questions.distinct()
|
||||
|
||||
Reference in New Issue
Block a user