from django.contrib import admin from wagtail.models import Page from vbv_lernwelt.duedate.models import DueDate from vbv_lernwelt.learnpath.models import ( LearningContentAttendanceCourse, LearningContentTest, ) # Register your models here. @admin.register(DueDate) class DueDateAdmin(admin.ModelAdmin): date_hierarchy = "end" list_display = [ "title", "course_session", "start", "end", "unset" ] list_filter = ["course_session"] def formfield_for_foreignkey(self, db_field, request, **kwargs): if db_field.name == "page": if request.resolver_match.kwargs.get("object_id"): object_id = int(request.resolver_match.kwargs.get("object_id")) csd = DueDate.objects.get(id=object_id) kwargs["queryset"] = Page.objects.descendant_of( csd.course_session.course.coursepage ).exact_type(LearningContentAttendanceCourse, LearningContentTest) else: kwargs["queryset"] = Page.objects.none() return super().formfield_for_foreignkey(db_field, request, **kwargs)