This commit is contained in:
Ross
2024-07-29 12:44:31 +01:00
parent cf48453e6f
commit 21f85c3cac
+30 -8
View File
@@ -58,9 +58,9 @@ admin.site.register(ExamCollection)
class ExamListFilter(admin.SimpleListFilter):
#title = "Long Exams"
#parameter_name = "exam"
#exam_model = None
# title = "Long Exams"
# parameter_name = "exam"
# exam_model = None
def __init__(self, request, params, model, model_admin):
self.parameter_name = self.related_field_name
@@ -71,43 +71,60 @@ class ExamListFilter(admin.SimpleListFilter):
def queryset(self, request, queryset):
if self.value():
#return queryset.filter(longs_exams__id=self.value())
# return queryset.filter(longs_exams__id=self.value())
kwargs = {f"{self.related_field_name}__id": self.value()}
return queryset.filter(**kwargs)
return queryset
class LongExamListFilter(ExamListFilter):
title = "Long Exams"
related_field_name = "longs_exams"
exam_model = LongExam
class RapidExamListFilter(ExamListFilter):
title = "Rapid Exams"
related_field_name = "rapids_exams"
exam_model = RapidExam
class AnatomyExamListFilter(ExamListFilter):
title = "Anatomy Exams"
related_field_name = "anatomy_exams"
exam_model = AnatomyExam
class PhysicsExamListFilter(ExamListFilter):
title = "Physics Exams"
related_field_name = "physics_exams"
exam_model = PhysicsExam
class SbasExamListFilter(ExamListFilter):
title = "Sbas Exams"
related_field_name = "sbas_exams"
exam_model = SbasExam
class AtlasExamListFilter(ExamListFilter):
title = "Atlas Exams"
related_field_name = "atlas_exams"
exam_model = AtlasExam
class CidUserExamAdmin(admin.ModelAdmin):
list_filter = ("cid_user", "user_user", "completed")
list_filter = (
"cid_user",
"user_user",
"completed",
LongExamListFilter,
RapidExamListFilter,
AnatomyExamListFilter,
PhysicsExamListFilter,
SbasExamListFilter,
AtlasExamListFilter,
)
def get_queryset(self, request):
qs = (
@@ -118,7 +135,6 @@ class CidUserExamAdmin(admin.ModelAdmin):
return qs
admin.site.register(CidUserExam, CidUserExamAdmin)
@@ -134,10 +150,16 @@ class ExamUserStatusAdmin(admin.ModelAdmin):
PhysicsExamListFilter,
SbasExamListFilter,
AtlasExamListFilter,
)
exclude = ("anatomy_exams", "longs_exams", "rapids_exams", "physics_exams", "sbas_exams", "atlas_exams")
exclude = (
"anatomy_exams",
"longs_exams",
"rapids_exams",
"physics_exams",
"sbas_exams",
"atlas_exams",
)
readonly_fields = ("cid_user_exam",)