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 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 Exam as LongsExam
from longs.models import Long
@@ -497,6 +501,7 @@ class UserGroupExamForm(ModelForm):
GROUP_TYPES = [
"anatomy_user_user_groups",
"rapid_user_user_groups",
"shorts_user_user_groups",
"longs_user_user_groups",
"physics_user_user_groups",
"sba_user_user_groups",
@@ -537,6 +542,11 @@ class UserGroupExamForm(ModelForm):
queryset=RapidsExam.objects.filter(archive=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(
required=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
).order_by("name")
exam_list = exam_list | self.Exam.objects.filter(
markers__id=request.user.id, exam_mode=True
).order_by("name")
@@ -1448,6 +1449,7 @@ class ExamViews(View, LoginRequiredMixin):
app_exam_map = {}
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["longs"] = user_user.user_longs_exams
app_exam_map["physics"] = user_user.user_physics_exams
@@ -1660,7 +1662,9 @@ class ExamViews(View, LoginRequiredMixin):
):
exams = self.Exam.objects.all()
filter = self.ExtraExamFilter(request.GET, queryset=exams)
print("1")
else:
print("2")
exams = self.Exam.objects.filter(
author__id=request.user.id
) | self.Exam.objects.filter(open_access=True)