Add Shorts exam models and integrate into UserGroupExamForm and ExamViews

This commit is contained in:
Ross
2025-09-01 22:00:04 +01:00
parent 964bce8233
commit 15c5b2e234
2 changed files with 14 additions and 0 deletions
+10
View File
@@ -54,6 +54,10 @@ from rapids.models import Exam as RapidsExam
from rapids.models import Rapid from rapids.models import Rapid
from rapids.models import Answer as RapidAnswer from rapids.models import Answer as RapidAnswer
from shorts.models import UserAnswer as ShortsUserAnswer
from shorts.models import Exam as ShortsExam
from shorts.models import Question as ShortsQuestion
from longs.models import UserAnswer as LongsUserAnswer from longs.models import UserAnswer as LongsUserAnswer
from longs.models import Exam as LongsExam from longs.models import Exam as LongsExam
from longs.models import Long from longs.models import Long
@@ -497,6 +501,7 @@ class UserGroupExamForm(ModelForm):
GROUP_TYPES = [ GROUP_TYPES = [
"anatomy_user_user_groups", "anatomy_user_user_groups",
"rapid_user_user_groups", "rapid_user_user_groups",
"shorts_user_user_groups",
"longs_user_user_groups", "longs_user_user_groups",
"physics_user_user_groups", "physics_user_user_groups",
"sba_user_user_groups", "sba_user_user_groups",
@@ -537,6 +542,11 @@ class UserGroupExamForm(ModelForm):
queryset=RapidsExam.objects.filter(archive=False), queryset=RapidsExam.objects.filter(archive=False),
widget=FilteredSelectMultiple(verbose_name="Rapid Exams", is_stacked=False), widget=FilteredSelectMultiple(verbose_name="Rapid Exams", is_stacked=False),
) )
self.fields["shorts_user_user_groups"] = ModelMultipleChoiceField(
required=False,
queryset=ShortsExam.objects.filter(archive=False),
widget=FilteredSelectMultiple(verbose_name="Shorts Exams", is_stacked=False),
)
self.fields["longs_user_user_groups"] = ModelMultipleChoiceField( self.fields["longs_user_user_groups"] = ModelMultipleChoiceField(
required=False, required=False,
queryset=LongsExam.objects.filter(archive=False), queryset=LongsExam.objects.filter(archive=False),
+4
View File
@@ -848,6 +848,7 @@ class ExamViews(View, LoginRequiredMixin):
author__id=request.user.id, exam_mode=True author__id=request.user.id, exam_mode=True
).order_by("name") ).order_by("name")
exam_list = exam_list | self.Exam.objects.filter( exam_list = exam_list | self.Exam.objects.filter(
markers__id=request.user.id, exam_mode=True markers__id=request.user.id, exam_mode=True
).order_by("name") ).order_by("name")
@@ -1448,6 +1449,7 @@ class ExamViews(View, LoginRequiredMixin):
app_exam_map = {} app_exam_map = {}
app_exam_map["rapids"] = user_user.user_rapid_exams app_exam_map["rapids"] = user_user.user_rapid_exams
app_exam_map["shorts"] = user_user.user_shorts_exams
app_exam_map["anatomy"] = user_user.user_anatomy_exams app_exam_map["anatomy"] = user_user.user_anatomy_exams
app_exam_map["longs"] = user_user.user_longs_exams app_exam_map["longs"] = user_user.user_longs_exams
app_exam_map["physics"] = user_user.user_physics_exams app_exam_map["physics"] = user_user.user_physics_exams
@@ -1660,7 +1662,9 @@ class ExamViews(View, LoginRequiredMixin):
): ):
exams = self.Exam.objects.all() exams = self.Exam.objects.all()
filter = self.ExtraExamFilter(request.GET, queryset=exams) filter = self.ExtraExamFilter(request.GET, queryset=exams)
print("1")
else: else:
print("2")
exams = self.Exam.objects.filter( exams = self.Exam.objects.filter(
author__id=request.user.id author__id=request.user.id
) | self.Exam.objects.filter(open_access=True) ) | self.Exam.objects.filter(open_access=True)