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.

106 lines
2.8 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
3 weeks ago
from .models import TreeNode, RocnikNode, CisloNode, MezicisloNode, TemaVCisleNode, UlohaZadaniNode, PohadkaNode, UlohaVzorakNode, TextNode, CastNode, OrgTextNode, ReseniNode
from .models 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,
3 weeks ago
ReseniNode,
]
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
3 weeks ago
@admin.register(ReseniNode)
class ReseniNodeAdmin(PolymorphicChildModelAdmin):
base_model = ReseniNode
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)