from django.contrib import admin from wagtail.models import Page from vbv_lernwelt.duedate.models import DueDate from vbv_lernwelt.learnpath.models import ( LearningContentAttendanceCourse, LearningContentEdoniqTest, ) # Register your models here. @admin.register(DueDate) class DueDateAdmin(admin.ModelAdmin): date_hierarchy = "end" list_display = ["title", "course_session", "start", "end", "is_undefined"] list_filter = ["course_session"] readonly_fields = ["course_session", "page"] 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, LearningContentEdoniqTest) else: kwargs["queryset"] = Page.objects.none() return super().formfield_for_foreignkey(db_field, request, **kwargs)