vbv/server/vbv_lernwelt/duedate/admin.py

30 lines
1.2 KiB
Python

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)