From 7ad36f614165808e613898541594509b00225386 Mon Sep 17 00:00:00 2001 From: Pierre-Olivier Mercier Date: Sun, 6 Sep 2020 12:26:19 +0200 Subject: [PATCH] libfic: fix exercice delete cascade: bad db column name and dependancy --- libfic/exercice.go | 6 ++++-- 1 file changed, 4 insertions(+), 2 deletions(-) diff --git a/libfic/exercice.go b/libfic/exercice.go index a428ca38..0a4b91fa 100644 --- a/libfic/exercice.go +++ b/libfic/exercice.go @@ -233,7 +233,7 @@ func (e Exercice) Delete() (int64, error) { // DeleteCascade the challenge from the database, including inner content but not player content. func (e Exercice) DeleteCascade() (int64, error) { - if _, err := DBExec("UPDATE exercices SET id_depend = NULL WHERE id_depend = ?", e.Id); err != nil { + if _, err := DBExec("UPDATE exercices SET depend = NULL WHERE depend = ?", e.Id); err != nil { return 0, err } else if _, err := DBExec("DELETE FROM exercice_files_okey_deps WHERE id_file IN (SELECT id_file FROM exercice_files WHERE id_exercice = ?)", e.Id); err != nil { return 0, err @@ -241,11 +241,13 @@ func (e Exercice) DeleteCascade() (int64, error) { return 0, err } else if _, err := DBExec("DELETE FROM exercice_files WHERE id_exercice = ?", e.Id); err != nil { return 0, err + } else if _, err := DBExec("DELETE FROM exercice_hints_okey_deps WHERE id_hint IN (SELECT id_hint FROM exercice_hints WHERE id_exercice = ?)", e.Id); err != nil { + return 0, err } else if _, err := DBExec("DELETE FROM exercice_hints WHERE id_exercice = ?", e.Id); err != nil { return 0, err } else if _, err := DBExec("DELETE FROM exercice_flags_deps WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil { return 0, err - } else if _, err := DBExec("DELETE FROM exercice_flags_choices WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil { + } else if _, err := DBExec("DELETE FROM flag_choices WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil { return 0, err } else if _, err := DBExec("DELETE FROM exercice_flags WHERE id_exercice = ?", e.Id); err != nil { return 0, err