35 lines
1.1 KiB
Python
35 lines
1.1 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,
|
|
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)
|