89 lines
2.4 KiB
Python
89 lines
2.4 KiB
Python
from django.contrib import admin
|
||
from django.db.models import F
|
||
|
||
from .models import TopicGroup, Topic, Documentation, Document, FileUpload
|
||
from .forms import TopicGroupAdminForm, TopicAdminForm, DocumentationAdminForm, DocumentAdminForm
|
||
|
||
|
||
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 = "Dokument"
|
||
verbose_name_plural = "Dokumentensammlung"
|
||
|
||
|
||
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
|
||
|
||
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 DocumentAdmin(admin.ModelAdmin):
|
||
form = DocumentAdminForm
|
||
model = Document
|
||
|
||
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)
|
||
|
||
|
||
admin.site.register(TopicGroup, TopicGroupAdmin)
|
||
admin.site.register(Topic, TopicAdmin)
|
||
#admin.site.register(Documentation, DocumentationAdmin)
|
||
admin.site.register(Document, DocumentAdmin)
|