from django.contrib import admin

from shared.admin import MarkdownxGuardedModelAdmin

from .models import (
    Lecture,
    LectureGroup,
    LectureLector,
    LectureMaterial,
    LectureRecording,
)

# Register your models here.


class IndexHiddenModelAdmin(MarkdownxGuardedModelAdmin):
    def has_module_permission(self, request):
        return False


class LectureGroupAdmin(MarkdownxGuardedModelAdmin):
    autocomplete_fields = ("user_groups",)
    search_fields = ("name",)


class LectureLectorInline(admin.StackedInline):
    model = LectureLector
    extra = 1


class LectureRecordingInline(admin.TabularInline):
    model = LectureRecording
    extra = 1


class LectureMaterialInline(admin.StackedInline):
    model = LectureMaterial
    extra = 1


class LectureAdmin(MarkdownxGuardedModelAdmin):
    inlines = (
        LectureLectorInline,
        LectureRecordingInline,
        LectureMaterialInline,
    )

    autocomplete_fields = ("groups",)
    search_fields = ("name", "description")
    list_display = (
        "name",
        "timestamp",
    )


for model in (
    LectureLector,
    LectureMaterial,
    LectureRecording,
):
    admin.site.register(model, IndexHiddenModelAdmin)

admin.site.register(Lecture, LectureAdmin)
admin.site.register(LectureGroup, LectureGroupAdmin)