# Generated by Django 4.2.16 on 2024-10-30 11:37
import datetime
from django . db import migrations , models
import django . db . models . deletion
import django . utils . timezone
import various . models
import tvorba . models
import taggit . managers
def nastav_nove_contenttypes ( apps , schema_editor ) :
ContentType = apps . get_model ( ' contenttypes ' , ' ContentType ' )
for m in ( ' zmrazenavysledkovka ' , ' deadline ' , ' cislo ' , ' rocnik ' , ' pohadka ' , ' tema ' , ' problem ' , ' problemy_opravovatele ' , ' uloha ' , ' clanek ' ) :
ContentType . objects . filter ( app_label = ' seminar ' , model = m ) . update ( app_label = ' tvorba ' )
def nastav_stare_contenttypes ( apps , schema_editor ) :
ContentType = apps . get_model ( ' contenttypes ' , ' ContentType ' )
for m in ( ' zmrazenavysledkovka ' , ' deadline ' , ' cislo ' , ' rocnik ' , ' pohadka ' , ' tema ' , ' problem ' , ' problemy_opravovatele ' , ' uloha ' , ' clanek ' ) :
ContentType . objects . filter ( app_label = ' tvorba ' , model = m ) . update ( app_label = ' seminar ' )
class Migration ( migrations . Migration ) :
initial = True
dependencies = [
( ' seminar ' , ' 0137_tvorba_unmanage ' ) ,
]
operations = [
migrations . CreateModel (
name = ' Cislo ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' poradi ' , models . CharField ( db_index = True , help_text = ' Většinou jen " 1 " , vyjímečně " 7-8 " , lexikograficky určuje pořadí v ročníku! ' , max_length = 32 , verbose_name = ' název čísla ' ) ) ,
( ' datum_vydani ' , models . DateField ( blank = True , help_text = ' Datum vydání finální verze ' , null = True , verbose_name = ' datum vydání ' ) ) ,
( ' verejne_db ' , models . BooleanField ( db_column = ' verejne ' , default = False , verbose_name = ' číslo zveřejněno ' ) ) ,
( ' poznamka ' , models . TextField ( blank = True , help_text = ' Neveřejná poznámka k číslu (plain text) ' , verbose_name = ' neveřejná poznámka ' ) ) ,
( ' pdf ' , models . FileField ( blank = True , help_text = ' PDF čísla, které si mohou řešitelé stáhnout ' , null = True , storage = various . models . OverwriteStorage ( ) , upload_to = tvorba . models . cislo_pdf_filename , verbose_name = ' pdf ' ) ) ,
( ' titulka_nahled ' , models . ImageField ( blank = True , help_text = ' Obrázek titulní strany, generuje se automaticky ' , null = True , upload_to = tvorba . models . cislo_png_filename , verbose_name = ' Obrázek titulní strany ' ) ) ,
( ' rocnik ' , models . ForeignKey ( on_delete = django . db . models . deletion . PROTECT , related_name = ' cisla ' , to = ' tvorba.rocnik ' , verbose_name = ' ročník ' ) ) ,
] ,
options = {
' verbose_name ' : ' Číslo ' ,
' verbose_name_plural ' : ' Čísla ' ,
' db_table ' : ' seminar_cisla ' ,
' ordering ' : [ ' -rocnik__rocnik ' , ' -poradi ' ] ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Deadline ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' deadline ' , models . DateTimeField ( default = datetime . datetime ( 2024 , 10 , 30 , 22 , 59 , 59 , 999999 , tzinfo = datetime . timezone . utc ) ) ) ,
( ' cislo ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , related_name = ' deadline_v_cisle ' , to = ' tvorba.cislo ' , verbose_name = ' deadline v čísle ' ) ) ,
( ' typ ' , models . CharField ( choices = [ ( ' cisla ' , ' Deadline celého čísla ' ) , ( ' prvni ' , ' První deadline ' ) , ( ' prvniasous ' , ' Sousový a první deadline ' ) , ( ' sous ' , ' Sousový deadline ' ) ] , max_length = 32 , verbose_name = ' typ deadlinu ' ) ) ,
( ' verejna_vysledkovka ' , models . BooleanField ( db_column = ' verejna_vysledkovka ' , default = False , verbose_name = ' veřejná výsledkovka ' ) ) ,
] ,
options = {
' verbose_name ' : ' Deadline ' ,
' verbose_name_plural ' : ' Deadliny ' ,
' db_table ' : ' seminar_deadliny ' ,
' ordering ' : [ ' deadline ' ] ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Pohadka ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' vytvoreno ' , models . DateTimeField ( blank = True , default = django . utils . timezone . now , editable = False , verbose_name = ' Vytvořeno ' ) ) ,
( ' autor ' , models . ForeignKey ( null = True , on_delete = django . db . models . deletion . SET_NULL , to = ' personalni.organizator ' , verbose_name = ' Autor pohádky ' ) ) ,
] ,
options = {
' verbose_name ' : ' Pohádka ' ,
' verbose_name_plural ' : ' Pohádky ' ,
' db_table ' : ' seminar_pohadky ' ,
' ordering ' : [ ' vytvoreno ' ] ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Problem ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' nazev ' , models . CharField ( max_length = 256 , verbose_name = ' název ' ) ) ,
( ' stav ' , models . CharField ( choices = [ ( ' navrh ' , ' Návrh ' ) , ( ' zadany ' , ' Zadaný ' ) , ( ' vyreseny ' , ' Vyřešený ' ) , ( ' smazany ' , ' Smazaný ' ) ] , default = ' navrh ' , max_length = 32 , verbose_name = ' stav problému ' ) ) ,
( ' autor ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' autor_problemu_ %(class)s ' , to = ' personalni.organizator ' , verbose_name = ' autor problému ' ) ) ,
( ' garant ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' garant_problemu_ %(class)s ' , to = ' personalni.organizator ' , verbose_name = ' garant zadaného problému ' ) ) ,
( ' nadproblem ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . SET_NULL , related_name = ' podproblem ' , to = ' tvorba.problem ' , verbose_name = ' nadřazený problém ' ) ) ,
( ' opravovatele ' , models . ManyToManyField ( blank = True , related_name = ' opravovatele_ %(class)s ' , through = ' tvorba.Problemy_Opravovatele ' , to = ' personalni.organizator ' , verbose_name = ' opravovatelé ' ) ) ,
( ' polymorphic_ctype ' , models . ForeignKey ( editable = False , null = True , on_delete = django . db . models . deletion . CASCADE , related_name = ' polymorphic_ %(app_label)s . %(class)s _set+ ' , to = ' contenttypes.contenttype ' ) ) ,
( ' zamereni ' , taggit . managers . TaggableManager ( blank = True , help_text = ' Zaměření M/F/I/O problému, příp. další tagy ' , through = ' taggit.TaggedItem ' , to = ' taggit.Tag ' , verbose_name = ' zaměření ' ) ) ,
( ' poznamka ' , models . TextField ( blank = True , help_text = ' Neveřejný návrh úlohy, návrh řešení, text zadání, poznámky ... ' , verbose_name = ' org poznámky (HTML) ' ) ) ,
( ' kod ' , models . CharField ( blank = True , default = ' ' , help_text = ' Číslo/kód úlohy v čísle nebo kód tématu/článku/seriálu v ročníku ' , max_length = 32 , verbose_name = ' lokální kód ' ) ) ,
( ' vytvoreno ' , models . DateTimeField ( blank = True , default = django . utils . timezone . now , editable = False , verbose_name = ' vytvořeno ' ) ) ,
] ,
options = {
' verbose_name ' : ' Problém ' ,
' verbose_name_plural ' : ' Problémy ' ,
' db_table ' : ' seminar_problemy ' ,
' ordering ' : [ ' nazev ' ] ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Problemy_Opravovatele ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' problem ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , to = ' tvorba.problem ' ) ) ,
( ' organizator ' , models . ForeignKey ( on_delete = django . db . models . deletion . CASCADE , to = ' personalni.organizator ' ) ) ,
] ,
options = {
' db_table ' : ' seminar_problemy_opravovatele ' ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Rocnik ' ,
fields = [
( ' id ' , models . AutoField ( primary_key = True , serialize = False ) ) ,
( ' prvni_rok ' , models . IntegerField ( db_index = True , unique = True , verbose_name = ' první rok ' ) ) ,
( ' rocnik ' , models . IntegerField ( db_index = True , unique = True , verbose_name = ' číslo ročníku ' ) ) ,
( ' exportovat ' , models . BooleanField ( db_column = ' exportovat ' , default = False , help_text = ' Exportuje se jen podle tohoto flagu (ne veřejnosti), a to jen čísla s veřejnou výsledkovkou ' , verbose_name = ' export do AESOPa ' ) ) ,
] ,
options = {
' verbose_name ' : ' Ročník ' ,
' verbose_name_plural ' : ' Ročníky ' ,
' db_table ' : ' seminar_rocniky ' ,
' ordering ' : [ ' -rocnik ' ] ,
' managed ' : False ,
} ,
) ,
migrations . CreateModel (
name = ' Clanek ' ,
fields = [
( ' problem_ptr ' , models . OneToOneField ( auto_created = True , on_delete = django . db . models . deletion . CASCADE , parent_link = True , primary_key = True , serialize = False , to = ' tvorba.problem ' ) ) ,
( ' strana ' , models . PositiveIntegerField ( blank = True , null = True , verbose_name = ' první strana ' ) ) ,
( ' cislo ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . PROTECT , related_name = ' vydane_clanky ' , to = ' tvorba.cislo ' , verbose_name = ' číslo vydání ' ) ) ,
] ,
options = {
' verbose_name ' : ' Článek ' ,
' verbose_name_plural ' : ' Články ' ,
' db_table ' : ' seminar_clanky ' ,
' managed ' : False ,
} ,
bases = ( ' tvorba.problem ' , ) ,
) ,
migrations . CreateModel (
name = ' Tema ' ,
fields = [
( ' problem_ptr ' , models . OneToOneField ( auto_created = True , on_delete = django . db . models . deletion . CASCADE , parent_link = True , primary_key = True , serialize = False , to = ' tvorba.problem ' ) ) ,
( ' tema_typ ' , models . CharField ( choices = [ ( ' tema ' , ' Téma ' ) , ( ' serial ' , ' Seriál ' ) ] , default = ' tema ' , max_length = 16 , verbose_name = ' Typ tématu ' ) ) ,
( ' rocnik ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . PROTECT , related_name = ' temata ' , to = ' tvorba.rocnik ' , verbose_name = ' ročník ' ) ) ,
( ' abstrakt ' , models . TextField ( blank = True , verbose_name = ' Abstrakt na rozcestník ' ) ) ,
( ' obrazek ' , models . ImageField ( blank = True , null = True , upload_to = ' ' , verbose_name = ' Obrázek na rozcestník ' ) ) ,
] ,
options = {
' verbose_name ' : ' Téma ' ,
' verbose_name_plural ' : ' Témata ' ,
' db_table ' : ' seminar_temata ' ,
' managed ' : False ,
} ,
bases = ( ' tvorba.problem ' , ) ,
) ,
migrations . CreateModel (
name = ' Uloha ' ,
fields = [
( ' problem_ptr ' , models . OneToOneField ( auto_created = True , on_delete = django . db . models . deletion . CASCADE , parent_link = True , primary_key = True , serialize = False , to = ' tvorba.problem ' ) ) ,
( ' max_body ' , models . DecimalField ( blank = True , decimal_places = 1 , max_digits = 8 , null = True , verbose_name = ' maximum bodů ' ) ) ,
( ' cislo_zadani ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . PROTECT , related_name = ' zadane_ulohy ' , to = ' tvorba.cislo ' , verbose_name = ' číslo zadání ' ) ) ,
( ' cislo_reseni ' , models . ForeignKey ( blank = True , help_text = ' Číslo s řešením úlohy, jen pro úlohy ' , null = True , on_delete = django . db . models . deletion . PROTECT , related_name = ' resene_ulohy ' , to = ' tvorba.cislo ' , verbose_name = ' číslo řešení ' ) ) ,
( ' cislo_deadline ' , models . ForeignKey ( blank = True , null = True , on_delete = django . db . models . deletion . PROTECT , related_name = ' deadlinove_ulohy ' , to = ' tvorba.cislo ' , verbose_name = ' číslo deadlinu ' ) ) ,
] ,
options = {
' verbose_name ' : ' Úloha ' ,
' verbose_name_plural ' : ' Úlohy ' ,
' db_table ' : ' seminar_ulohy ' ,
' managed ' : False ,
} ,
bases = ( ' tvorba.problem ' , ) ,
) ,
migrations . CreateModel (
name = ' ZmrazenaVysledkovka ' ,
fields = [
( ' deadline ' , models . OneToOneField ( on_delete = django . db . models . deletion . CASCADE , primary_key = True , related_name = ' vysledkovka_v_deadlinu ' , serialize = False , to = ' tvorba.deadline ' ) ) ,
( ' html ' , models . TextField ( ) ) ,
] ,
options = {
' verbose_name ' : ' Zmražená výsledkovka ' ,
' verbose_name_plural ' : ' Zmražené výsledkovky ' ,
' db_table ' : ' seminar_vysledkovky ' ,
' managed ' : False ,
} ,
) ,
migrations . RunPython ( nastav_nove_contenttypes , nastav_stare_contenttypes ) ,
]