Merge branch 'migrations_shuffle' of ssh://gimli.ms.mff.cuni.cz/akce/mam/git/mamweb into migrations_shuffle
This commit is contained in:
commit
14fdf6cb53
2 changed files with 21 additions and 10 deletions
|
@ -254,12 +254,19 @@ def check_novinky():
|
|||
|
||||
def check_pohadka():
|
||||
old_query = "SELECT * FROM seminar_pohadky ORDER BY id"
|
||||
new_query = """SELECT sp.id AS id, sp.autor_id AS autor_id, sp.vytvoreno AS vytvoreno, snp.treenode_ptr_id AS treenode_ptr_id, st.na_web AS text
|
||||
new_query = """SELECT sp.id AS id, sp.autor_id AS autor_id, sp.vytvoreno AS vytvoreno, snp.treenode_ptr_id AS treenode_ptr_id, st.na_web AS text,
|
||||
zn_pred.uloha_id AS uloha_pred, zn_po.uloha_id AS uloha_po
|
||||
FROM seminar_pohadky AS sp
|
||||
-- Text pohádky
|
||||
INNER JOIN seminar_nodes_pohadka AS snp ON sp.id = snp.pohadka_id
|
||||
INNER JOIN seminar_nodes_treenode AS snt ON snt.id = snp.treenode_ptr_id
|
||||
INNER JOIN seminar_nodes_obsah AS sno ON sno.treenode_ptr_id = snt.first_child_id
|
||||
INNER JOIN seminar_texty AS st ON sno.text_id = st.id
|
||||
-- Predchozí úloha
|
||||
LEFT OUTER JOIN seminar_nodes_treenode AS ztn_pred ON ztn_pred.succ_id = snt.id
|
||||
LEFT OUTER JOIN seminar_nodes_uloha_zadani AS zn_pred ON zn_pred.treenode_ptr_id = ztn_pred.id
|
||||
-- Následující úloha
|
||||
LEFT OUTER JOIN seminar_nodes_uloha_zadani AS zn_po ON zn_po.treenode_ptr_id = snt.succ_id
|
||||
|
||||
ORDER BY sp.id"""
|
||||
|
||||
|
@ -271,6 +278,10 @@ def check_pohadka():
|
|||
if o['autor_id'] is not None:
|
||||
if get_user_id_for_org_id(n['autor_id']) != o['autor_id']:
|
||||
raise ValueError("Nesedi autori u pohadky")
|
||||
# Správné úlohy
|
||||
spravny_klic = 'uloha_pred' if o['pred'] else 'uloha_po'
|
||||
if o['uloha_id'] != n[spravny_klic]:
|
||||
raise ValueError(f"Pohádka přidružená ke špatné úloze! old: {o['uloha_id']}, new: {n[spravny_klic]}, pozice: {spravny_klic}")
|
||||
|
||||
|
||||
# Problémy jsou rozdělené podle typů:
|
||||
|
@ -310,24 +321,24 @@ def check_problem_common():
|
|||
|
||||
def check_uloha():
|
||||
old_query = "SELECT * FROM seminar_problemy WHERE typ = 'uloha' ORDER BY id"
|
||||
new_query = """SELECT cislo_zadani, cislo_reseni, problem_ptr_id, max_body, uzt.na_web AS text_zadani, uvt.na_web AS text_reseni
|
||||
new_query = """SELECT cislo_zadani_id, cislo_reseni_id, problem_ptr_id, max_body, uzt.na_web AS text_zadani, uvt.na_web AS text_reseni
|
||||
FROM seminar_ulohy
|
||||
-- Problém:
|
||||
JOIN seminar_problemy AS problem ON problem_ptr_id = problem.id
|
||||
-- Text zadání:
|
||||
INNER JOIN seminar_nodes_uloha_zadani AS uzn ON id = uzn.uloha_id
|
||||
INNER JOIN seminar_nodes_uloha_zadani AS uzn ON problem.id = uzn.uloha_id
|
||||
INNER JOIN seminar_nodes_treenode AS uztn ON uztn.id = uzn.treenode_ptr_id
|
||||
INNER JOIN seminar_nodes_obsah AS uzo ON uzo.treenode_ptr_id = uztn.first_child_id
|
||||
INNER JOIN seminar_texty AS uzt ON uzo.text_id = uzt.id
|
||||
-- Text vzoráku:
|
||||
INNER JOIN seminar_nodes_uloha_zadani AS uvn ON id = uvn.uloha_id
|
||||
INNER JOIN seminar_nodes_uloha_zadani AS uvn ON problem.id = uvn.uloha_id
|
||||
INNER JOIN seminar_nodes_treenode AS uvtn ON uvtn.id = uvn.treenode_ptr_id
|
||||
INNER JOIN seminar_nodes_obsah AS uvo ON uvo.treenode_ptr_id = uvtn.first_child_id
|
||||
INNER JOIN seminar_texty AS uvt ON uvo.text_id = uvt.id
|
||||
|
||||
ORDER BY problem_ptr_id"""
|
||||
|
||||
same_fields = ['cislo_zadani', 'cislo_reseni', 'text_zadani', 'text_reseni']
|
||||
same_fields = ['cislo_zadani_id', 'cislo_reseni_id', 'text_zadani', 'text_reseni']
|
||||
renamed_fields = [
|
||||
('id', 'problem_ptr_id'),
|
||||
('body', 'max_body'),
|
||||
|
@ -349,7 +360,7 @@ def check_tema():
|
|||
FROM seminar_problemy
|
||||
INNER JOIN seminar_cisla AS c ON c.id = cislo_zadani_id
|
||||
WHERE typ IN ('tema', 'serial')
|
||||
ORDER BY id"""
|
||||
ORDER BY seminar_problemy.id"""
|
||||
new_query = """SELECT tema_typ, zad_text.na_web AS text_zadani, res_text.na_web AS text_reseni, rn.rocnik_id AS rocnik_id
|
||||
FROM seminar_temata
|
||||
-- Problém:
|
||||
|
@ -408,10 +419,10 @@ def check_res_clanek():
|
|||
JOIN seminar_problemy AS problem ON problem_ptr_id = problem.id
|
||||
INNER JOIN seminar_hodnoceni AS hodn ON problem.id = hodn.problem_id
|
||||
INNER JOIN seminar_reseni AS rese ON rese.id = hodn.reseni_id
|
||||
INNER JOIN seminar_nodes_reseni AS resnode ON resnode.reseni_id = rese.id
|
||||
INNER JOIN seminar_nodes_otistene_reseni AS resnode ON resnode.reseni_id = rese.id
|
||||
INNER JOIN seminar_nodes_treenode AS tn ON resnode.treenode_ptr_id = tn.id
|
||||
INNER JOIN seminar_nodes_obsah AS on ON on.treenode_ptr_id = tn.first_child_id
|
||||
INNER JOIN seminar_texty AS text ON text.id = on.text_id
|
||||
INNER JOIN seminar_nodes_obsah AS son ON son.treenode_ptr_id = tn.first_child_id
|
||||
INNER JOIN seminar_texty AS text ON text.id = son.text_id
|
||||
|
||||
ORDER BY problem_ptr_id"""
|
||||
same_fields = ['text_zadani']
|
||||
|
|
|
@ -63,7 +63,7 @@ class Migration(migrations.Migration):
|
|||
('id', models.AutoField(primary_key=True, serialize=False)),
|
||||
('jmeno', models.CharField(max_length=256, verbose_name='jméno')),
|
||||
('prijmeni', models.CharField(max_length=256, verbose_name='příjmení')),
|
||||
('prezdivka', models.CharField(max_length=256, verbose_name='přezdívka')),
|
||||
('prezdivka', models.CharField(max_length=256, verbose_name='přezdívka', blank=True, null=False)),
|
||||
('pohlavi_muz', models.BooleanField(default=False, verbose_name='pohlaví (muž)')),
|
||||
('email', models.EmailField(blank=True, default='', max_length=256, verbose_name='e-mail')),
|
||||
('telefon', models.CharField(blank=True, default='', max_length=256, verbose_name='telefon')),
|
||||
|
|
Loading…
Reference in a new issue