diff --git a/db_compare.py b/db_compare.py index 4cfe7659..a6013723 100644 --- a/db_compare.py +++ b/db_compare.py @@ -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 + INNER JOIN seminar_nodes_uloha 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ů: