Web M&M
https://mam.matfyz.cz
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.
178 lines
12 KiB
178 lines
12 KiB
1 year ago
|
# Generated by Django 2.2.28 on 2023-08-09 15:15
|
||
|
|
||
|
import datetime
|
||
|
from django.db import migrations, models
|
||
|
import django.db.models.deletion
|
||
|
from django.utils.timezone import utc
|
||
|
import django.utils.timezone
|
||
|
import taggit.managers
|
||
|
import tvorba.models
|
||
|
|
||
|
|
||
|
class Migration(migrations.Migration):
|
||
|
|
||
|
initial = True
|
||
|
|
||
|
dependencies = [
|
||
|
('taggit', '0004_alter_taggeditem_content_type_alter_taggeditem_tag'),
|
||
|
('contenttypes', '0002_remove_content_type_name'),
|
||
|
('personalni', '0002_organizator_osoba_prijemce_resitel_skola'),
|
||
|
('seminar', '0114_separace_personalniho'),
|
||
|
]
|
||
|
|
||
|
operations = [
|
||
|
migrations.SeparateDatabaseAndState(
|
||
|
state_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=tvorba.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')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'Číslo',
|
||
|
'verbose_name_plural': 'Čísla',
|
||
|
'db_table': 'mam_cisla',
|
||
|
'ordering': ['-rocnik__rocnik', '-poradi'],
|
||
|
},
|
||
|
),
|
||
|
migrations.CreateModel(
|
||
|
name='Deadline',
|
||
|
fields=[
|
||
|
('id', models.AutoField(primary_key=True, serialize=False)),
|
||
|
('deadline', models.DateTimeField(default=datetime.datetime(2023, 8, 9, 21, 59, 59, 999999, tzinfo=utc))),
|
||
|
('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')),
|
||
|
('cislo', models.ForeignKey(on_delete=django.db.models.deletion.CASCADE, related_name='deadline_v_cisle', to='tvorba.Cislo', verbose_name='deadline v čísle')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'Deadline',
|
||
|
'verbose_name_plural': 'Deadliny',
|
||
|
'db_table': 'mam_deadliny',
|
||
|
'ordering': ['deadline'],
|
||
|
},
|
||
|
),
|
||
|
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')),
|
||
|
('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')),
|
||
|
('autor', models.ForeignKey(blank=True, null=True, on_delete=django.db.models.deletion.SET_NULL, related_name='autor_problemu_problem', 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_problem', 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_problem', to='personalni.Organizator', verbose_name='opravovatelé')),
|
||
|
('polymorphic_ctype', models.ForeignKey(editable=False, null=True, on_delete=django.db.models.deletion.CASCADE, related_name='polymorphic_tvorba.problem_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í')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'Problém',
|
||
|
'verbose_name_plural': 'Problémy',
|
||
|
'db_table': 'mam_problemy',
|
||
|
'ordering': ['nazev'],
|
||
|
},
|
||
|
),
|
||
|
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': 'mam_rocniky',
|
||
|
'ordering': ['-rocnik'],
|
||
|
},
|
||
|
),
|
||
|
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': 'mam_vysledkovky',
|
||
|
},
|
||
|
),
|
||
|
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': 'mam_pohadky',
|
||
|
'ordering': ['vytvoreno'],
|
||
|
},
|
||
|
),
|
||
|
migrations.AddField(
|
||
|
model_name='cislo',
|
||
|
name='rocnik',
|
||
|
field=models.ForeignKey(on_delete=django.db.models.deletion.PROTECT, related_name='cisla', to='tvorba.Rocnik', verbose_name='ročník'),
|
||
|
),
|
||
|
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_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')),
|
||
|
('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_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í')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'Úloha',
|
||
|
'verbose_name_plural': 'Úlohy',
|
||
|
'db_table': 'mam_ulohy',
|
||
|
},
|
||
|
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')),
|
||
|
('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')),
|
||
|
('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')),
|
||
|
],
|
||
|
options={
|
||
|
'verbose_name': 'Téma',
|
||
|
'verbose_name_plural': 'Témata',
|
||
|
'db_table': 'mam_temata',
|
||
|
},
|
||
|
bases=('tvorba.problem',),
|
||
|
),
|
||
|
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')),
|
||
|
('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': 'mam_clanky',
|
||
|
},
|
||
|
bases=('tvorba.problem',),
|
||
|
),
|
||
|
],
|
||
|
database_operations=[],
|
||
|
),
|
||
|
]
|