79 lines
1.7 KiB
Python
79 lines
1.7 KiB
Python
from django.contrib import admin
|
|
|
|
from . import models
|
|
|
|
|
|
class EnsembleAccessInline(admin.StackedInline):
|
|
model = models.EnsembleAccess
|
|
extra = 0
|
|
|
|
|
|
class CollectionAdmin(admin.ModelAdmin):
|
|
list_display = ["name", "location", "storage", "prefix"]
|
|
inlines = [EnsembleAccessInline]
|
|
|
|
|
|
admin.site.register(models.Collection, CollectionAdmin)
|
|
|
|
|
|
class ItemInline(admin.TabularInline):
|
|
model = models.ProjectItem
|
|
extra = 0
|
|
|
|
|
|
class DocInline(admin.TabularInline):
|
|
model = models.Document
|
|
extra = 0
|
|
|
|
|
|
class MetaInline(admin.TabularInline):
|
|
model = models.WorkMeta
|
|
extra = 0
|
|
|
|
|
|
class WorkAdmin(admin.ModelAdmin):
|
|
list_display = ["name", "composer", "edition", "identifier", "running_time"]
|
|
list_filter = ["collection"]
|
|
search_fields = ["name", "composer"]
|
|
inlines = [MetaInline, DocInline, ItemInline]
|
|
|
|
|
|
admin.site.register(models.Work, WorkAdmin)
|
|
|
|
|
|
class SectionInline(admin.TabularInline):
|
|
model = models.Section
|
|
fields = ["tag", "start", "end", "page"]
|
|
|
|
|
|
class DocumentAdmin(admin.ModelAdmin):
|
|
list_display = ["work", "__str__"]
|
|
list_filter = ["work__collection"]
|
|
inlines = [SectionInline]
|
|
|
|
|
|
admin.site.register(models.Document, DocumentAdmin)
|
|
|
|
|
|
class ItemAdmin(admin.ModelAdmin):
|
|
list_display = ["project", "work", "order"]
|
|
list_filter = ["project"]
|
|
|
|
|
|
admin.site.register(models.ProjectItem, ItemAdmin)
|
|
|
|
|
|
class EnsembleAccessAdmin(admin.ModelAdmin):
|
|
list_display = ["ensemble", "collection", "access_type"]
|
|
list_filter = ["ensemble"]
|
|
|
|
|
|
admin.site.register(models.EnsembleAccess, EnsembleAccessAdmin)
|
|
|
|
|
|
class OrchestrationAdmin(admin.ModelAdmin):
|
|
list_display = ["name", "instruments"]
|
|
|
|
|
|
admin.site.register(models.Orchestration, OrchestrationAdmin)
|