diff --git a/libfic/file.go b/libfic/file.go index 472b9e3f..59d150f1 100644 --- a/libfic/file.go +++ b/libfic/file.go @@ -246,7 +246,9 @@ func (f EFile) Delete() (int64, error) { // WipeFiles deletes (only in the database, not on disk) files coming with the challenge. func (e Exercice) WipeFiles() (int64, error) { - if res, err := DBExec("DELETE FROM exercice_files WHERE id_exercice = ?", e.Id); err != nil { + if _, err := DBExec("DELETE FROM exercice_files_deps WHERE id_flag IN (SELECT id_flag FROM exercice_flags WHERE id_exercice = ?)", e.Id); err != nil { + return 0, err + } else if res, err := DBExec("DELETE FROM exercice_files WHERE id_exercice = ?", e.Id); err != nil { return 0, err } else if nb, err := res.RowsAffected(); err != nil { return 0, err