from django.contrib import admin from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter from seminar.models.treenode import * # Polymorfismus pro stromy # TODO: Inlines podle https://django-polymorphic.readthedocs.io/en/stable/admin.html @admin.register(TreeNode) 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" @admin.register(RocnikNode) class RocnikNodeAdmin(PolymorphicChildModelAdmin): base_model = RocnikNode show_in_index = True @admin.register(CisloNode) class CisloNodeAdmin(PolymorphicChildModelAdmin): base_model = CisloNode show_in_index = True @admin.register(MezicisloNode) class MezicisloNodeAdmin(PolymorphicChildModelAdmin): base_model = MezicisloNode show_in_index = True @admin.register(TemaVCisleNode) class TemaVCisleNodeAdmin(PolymorphicChildModelAdmin): base_model = TemaVCisleNode show_in_index = True @admin.register(UlohaZadaniNode) class UlohaZadaniNodeAdmin(PolymorphicChildModelAdmin): base_model = UlohaZadaniNode show_in_index = True @admin.register(PohadkaNode) class PohadkaNodeAdmin(PolymorphicChildModelAdmin): base_model = PohadkaNode show_in_index = True @admin.register(UlohaVzorakNode) class UlohaVzorakNodeAdmin(PolymorphicChildModelAdmin): base_model = UlohaVzorakNode show_in_index = True @admin.register(TextNode) class TextNodeAdmin(PolymorphicChildModelAdmin): base_model = TextNode show_in_index = True @admin.register(CastNode) class TextNodeAdmin(PolymorphicChildModelAdmin): base_model = CastNode show_in_index = True fields = ('nadpis',) @admin.register(OrgTextNode) class TextNodeAdmin(PolymorphicChildModelAdmin): base_model = OrgTextNode show_in_index = True