Select Git revision
admin.py 2.27 KiB
from django.contrib import admin
from markdownx.admin import MarkdownxModelAdmin
from .forms import LectureGroupTypeFormset
from .models import (
Lecture,
LectureCategory,
LectureGroup,
LectureGroupType,
LectureLector,
LectureMaterial,
LectureRecording,
)
# Register your models here.
class IndexHiddenModelAdmin(MarkdownxModelAdmin):
def has_module_permission(self, request):
return False
class LectureGroupAdmin(MarkdownxModelAdmin):
autocomplete_fields = ("user_groups",)
search_fields = ("name",)
list_display = ("name", "priority")
class LectureRecordingInline(admin.StackedInline):
model = LectureRecording
extra = 1
class LectureMaterialInline(admin.StackedInline):
model = LectureMaterial
extra = 1
class LectureGroupTypeInline(admin.StackedInline):
model = LectureGroupType
autocomplete_fields = ("group",)
formset = LectureGroupTypeFormset
extra = 1
class LectureAdmin(MarkdownxModelAdmin):
inlines = (
LectureGroupTypeInline,
LectureRecordingInline,
LectureMaterialInline,
)
autocomplete_fields = ("lectors", "rsvp_users", "category")
search_fields = ("name", "description")
readonly_fields = ("rsvp_users",)
list_display = (
"name",
"timestamp",
"display_lecture_group_types",
)
@admin.display(description="Výukové skupiny")
def display_lecture_group_types(self, obj) -> str:
group_names = []
for lecture_group_type in obj.lecture_group_types.all():
group_names.append(str(lecture_group_type.group))
display_string = ", ".join(group_names)
if len(display_string) > 64:
display_string = display_string[:64] + "..."
return display_string
class LectureCategoryAdmin(MarkdownxModelAdmin):
search_fields = ("name",)
class LectureLectorAdmin(MarkdownxModelAdmin):
search_fields = ("name", "username")
for model in (
LectureMaterial,
LectureRecording,
LectureGroupType,
):
admin.site.register(model, IndexHiddenModelAdmin)
admin.site.register(LectureLector, LectureLectorAdmin)
admin.site.register(LectureCategory, LectureCategoryAdmin)
admin.site.register(Lecture, LectureAdmin)
admin.site.register(LectureGroup, LectureGroupAdmin)