72 lines
2.0 KiB
Python
72 lines
2.0 KiB
Python
from django.contrib import admin
|
|
|
|
from vbv_lernwelt.course.models import Course, CourseSession, CourseSessionUser
|
|
from vbv_lernwelt.learnpath.models import Circle
|
|
|
|
|
|
@admin.register(Course)
|
|
class CourseAdmin(admin.ModelAdmin):
|
|
list_display = [
|
|
"id",
|
|
"title",
|
|
"category_name",
|
|
"slug",
|
|
]
|
|
|
|
|
|
@admin.register(CourseSession)
|
|
class CourseSessionAdmin(admin.ModelAdmin):
|
|
date_hierarchy = "created_at"
|
|
list_display = [
|
|
"title",
|
|
"course",
|
|
"start_date",
|
|
"end_date",
|
|
"created_at",
|
|
"updated_at",
|
|
]
|
|
|
|
|
|
@admin.register(CourseSessionUser)
|
|
class CourseSessionUserAdmin(admin.ModelAdmin):
|
|
date_hierarchy = "created_at"
|
|
list_display = [
|
|
"course_session",
|
|
"user",
|
|
"created_at",
|
|
"updated_at",
|
|
]
|
|
search_fields = [
|
|
"user__first_name",
|
|
"user__last_name",
|
|
"user__email",
|
|
"course_session__title",
|
|
]
|
|
list_filter = [
|
|
"course_session__course",
|
|
"course_session",
|
|
]
|
|
|
|
fieldsets = [
|
|
(None, {"fields": ("user", "course_session")}),
|
|
(
|
|
"Expert/Trainer",
|
|
{
|
|
"fields": ("expert",),
|
|
"description": "Expert/Trainer kann erst ausgewählt werden, wenn der Kurs ausgewählt und bereits einmal gespeichert wurde.",
|
|
},
|
|
),
|
|
]
|
|
|
|
def formfield_for_manytomany(self, db_field, request, **kwargs):
|
|
if db_field.name == "expert":
|
|
if request.resolver_match.kwargs.get("object_id"):
|
|
object_id = int(request.resolver_match.kwargs.get("object_id"))
|
|
csu = CourseSessionUser.objects.get(id=object_id)
|
|
kwargs["queryset"] = Circle.objects.descendant_of(
|
|
csu.course_session.course.coursepage
|
|
)
|
|
else:
|
|
kwargs["queryset"] = Circle.objects.none()
|
|
return super().formfield_for_manytomany(db_field, request, **kwargs)
|