Files
fet2020/fet2020/intern/admin.py
2022-03-17 08:39:39 +00:00

133 lines
3.1 KiB
Python

from django.contrib import admin
from django.db.models import F
from .models import TopicGroup, Topic, Documentation, Etherpad, FileUpload
from .forms import (
TopicGroupAdminForm,
TopicAdminForm,
DocumentationAdminForm,
EtherpadAdminForm,
FileUploadAdminForm,
)
class DocumentationInline(admin.TabularInline):
model = Documentation
form = DocumentationAdminForm
extra = 0
verbose_name = "Dokument"
verbose_name_plural = "Dokument-Übersicht"
class FileUploadInline(admin.TabularInline):
model = FileUpload
extra = 0
verbose_name = "Datei"
verbose_name_plural = "Dateien"
class EtherpadInline(admin.TabularInline):
model = Etherpad
extra = 0
verbose_name = "Etherpad"
verbose_name_plural = "Etherpads"
class TopicInline(admin.TabularInline):
model = Topic
form = TopicAdminForm
extra = 0
verbose_name = "Thema"
verbose_name_plural = "Themen"
show_change_link = True
class TopicGroupAdmin(admin.ModelAdmin):
form = TopicGroupAdminForm
model = TopicGroup
search_fields = ("title",)
inlines = (TopicInline,)
list_display = ["title", "order"]
ordering = [F("order").asc(nulls_last=True)]
def save_model(self, request, obj, form, change):
obj.created_by = request.user
super().save_model(request, obj, form, change)
class TopicAdmin(admin.ModelAdmin):
form = TopicAdminForm
model = Topic
search_fields = ("title",)
inlines = (DocumentationInline,)
list_filter = ["topic_group", "archive"]
list_display = ["title", "topic_group", "archive"]
ordering = ["archive"]
def save_model(self, request, obj, form, change):
obj.created_by = request.user
super().save_model(request, obj, form, change)
class DocumentationAdmin(admin.ModelAdmin):
form = DocumentationAdminForm
model = Documentation
inlines = (
EtherpadInline,
FileUploadInline,
)
list_display = [
"title",
"topic",
]
def save_model(self, request, obj, form, change):
obj.created_by = request.user
super().save_model(request, obj, form, change)
class EtherpadAdmin(admin.ModelAdmin):
form = EtherpadAdminForm
model = Etherpad
list_filter = [
"documentation",
]
list_display = [
"title",
"date",
"documentation",
]
ordering = ["-date"]
def save_model(self, request, obj, form, change):
obj.created_by = request.user
super().save_model(request, obj, form, change)
class FileUploadAdmin(admin.ModelAdmin):
form = FileUploadAdminForm
model = FileUpload
list_filter = [
"documentation",
]
list_display = [
"title",
"documentation",
]
def save_model(self, request, obj, form, change):
obj.created_by = request.user
super().save_model(request, obj, form, change)
admin.site.register(TopicGroup, TopicGroupAdmin)
admin.site.register(Topic, TopicAdmin)
admin.site.register(Documentation, DocumentationAdmin)
admin.site.register(Etherpad, EtherpadAdmin)
admin.site.register(FileUpload, FileUploadAdmin)