From 26ac0abc223c9cd473d0a68753bd854edefdede1 Mon Sep 17 00:00:00 2001 From: Mark Nelson Date: Wed, 17 Dec 2014 22:26:00 -0800 Subject: [PATCH] MDL-48549 mod_assign: delete entries from the flags/mapping tables --- mod/assign/locallib.php | 19 ++++++++++--------- 1 file changed, 10 insertions(+), 9 deletions(-) diff --git a/mod/assign/locallib.php b/mod/assign/locallib.php index 4a6aa93d106..d56f22a3e2f 100644 --- a/mod/assign/locallib.php +++ b/mod/assign/locallib.php @@ -696,9 +696,11 @@ class assign { } // Delete_records will throw an exception if it fails - so no need for error checking here. - $DB->delete_records('assign_submission', array('assignment'=>$this->get_instance()->id)); - $DB->delete_records('assign_grades', array('assignment'=>$this->get_instance()->id)); - $DB->delete_records('assign_plugin_config', array('assignment'=>$this->get_instance()->id)); + $DB->delete_records('assign_submission', array('assignment' => $this->get_instance()->id)); + $DB->delete_records('assign_grades', array('assignment' => $this->get_instance()->id)); + $DB->delete_records('assign_plugin_config', array('assignment' => $this->get_instance()->id)); + $DB->delete_records('assign_user_flags', array('assignment' => $this->get_instance()->id)); + $DB->delete_records('assign_user_mapping', array('assignment' => $this->get_instance()->id)); // Delete items from the gradebook. if (! $this->delete_grades()) { @@ -757,19 +759,18 @@ class assign { } } - $assignssql = 'SELECT a.id - FROM {assign} a - WHERE a.course=:course'; - $params = array('course'=>$data->courseid); + $assignids = $DB->get_records('assign', array('course' => $data->courseid), '', 'id'); + list($sql, $params) = $DB->get_in_or_equal(array_keys($assignids)); - $DB->delete_records_select('assign_submission', "assignment IN ($assignssql)", $params); + $DB->delete_records_select('assign_submission', "assignment $sql", $params); + $DB->delete_records_select('assign_user_flags', "assignment $sql", $params); $status[] = array('component'=>$componentstr, 'item'=>get_string('deleteallsubmissions', 'assign'), 'error'=>false); if (!empty($data->reset_gradebook_grades)) { - $DB->delete_records_select('assign_grades', "assignment IN ($assignssql)", $params); + $DB->delete_records_select('assign_grades', "assignment $sql", $params); // Remove all grades from gradebook. require_once($CFG->dirroot.'/mod/assign/lib.php'); assign_reset_gradebook($data->courseid);