You can not select more than 25 topics Topics must start with a letter or number, can include dashes ('-') and can be up to 35 characters long.

101 lines
2.7 KiB

from django.contrib import admin
4 months ago
from django.db import models
from django.forms import widgets
from polymorphic.admin import PolymorphicParentModelAdmin, PolymorphicChildModelAdmin, PolymorphicChildModelFilter
from .models import TreeNode, RocnikNode, CisloNode, MezicisloNode, TemaVCisleNode, UlohaZadaniNode, PohadkaNode, UlohaVzorakNode, TextNode, CastNode, OrgTextNode
from .models.pomocne import Text, Obrazek
# 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
4 months ago
class TextAdminInline(admin.TabularInline):
model = Text
4 months ago
formfield_overrides = {
models.TextField: {'widget': widgets.TextInput}
}
exclude = ['text_zkraceny_set', 'text_zkraceny']
admin.site.register(Text)
admin.site.register(Obrazek)