mamweb/treenode/admin.py

89 lines
2.2 KiB
Python
Raw Normal View History

2021-11-07 10:25:34 +01:00
from django.contrib import admin
from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter
from seminar.models.treenode import *
2021-11-07 10:25:34 +01:00
# Polymorfismus pro stromy
# TODO: Inlines podle https://django-polymorphic.readthedocs.io/en/stable/admin.html
@admin.register(TreeNode)
2021-11-07 10:25:34 +01:00
class TreeNodeAdmin(PolymorphicParentModelAdmin):
base_model = TreeNode
child_models = [
RocnikNode,
CisloNode,
MezicisloNode,
TemaVCisleNode,
UlohaZadaniNode,
PohadkaNode,
UlohaVzorakNode,
TextNode,
CastNode,
OrgTextNode,
]
actions = ['aktualizuj_nazvy']
# XXX: nejspíš je to totální DB HOG, nechcete to použít moc často.
def aktualizuj_nazvy(self, request, queryset):
newqs = queryset.get_real_instances()
for tn in newqs:
tn.aktualizuj_nazev()
tn.save()
self.message_user(request, "Názvy aktualizovány.")
aktualizuj_nazvy.short_description = "Aktualizuj vybraným TreeNodům názvy"
2021-11-07 10:25:34 +01:00
@admin.register(RocnikNode)
2021-11-07 10:25:34 +01:00
class RocnikNodeAdmin(PolymorphicChildModelAdmin):
base_model = RocnikNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(CisloNode)
2021-11-07 10:25:34 +01:00
class CisloNodeAdmin(PolymorphicChildModelAdmin):
base_model = CisloNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(MezicisloNode)
2021-11-07 10:25:34 +01:00
class MezicisloNodeAdmin(PolymorphicChildModelAdmin):
base_model = MezicisloNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(TemaVCisleNode)
2021-11-07 10:25:34 +01:00
class TemaVCisleNodeAdmin(PolymorphicChildModelAdmin):
base_model = TemaVCisleNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(UlohaZadaniNode)
2021-11-07 10:25:34 +01:00
class UlohaZadaniNodeAdmin(PolymorphicChildModelAdmin):
base_model = UlohaZadaniNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(PohadkaNode)
2021-11-07 10:25:34 +01:00
class PohadkaNodeAdmin(PolymorphicChildModelAdmin):
base_model = PohadkaNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(UlohaVzorakNode)
2021-11-07 10:25:34 +01:00
class UlohaVzorakNodeAdmin(PolymorphicChildModelAdmin):
base_model = UlohaVzorakNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(TextNode)
2021-11-07 10:25:34 +01:00
class TextNodeAdmin(PolymorphicChildModelAdmin):
base_model = TextNode
show_in_index = True
2021-11-07 10:25:34 +01:00
@admin.register(CastNode)
2021-11-07 10:25:34 +01:00
class TextNodeAdmin(PolymorphicChildModelAdmin):
base_model = CastNode
show_in_index = True
fields = ('nadpis',)
2021-11-07 10:25:34 +01:00
@admin.register(OrgTextNode)
2021-11-07 10:25:34 +01:00
class TextNodeAdmin(PolymorphicChildModelAdmin):
base_model = OrgTextNode
show_in_index = True
2021-11-07 10:25:34 +01:00