133 lines
3.1 KiB
Python
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)
|