/** * This function is used by the reset_course_userdata function in moodlelib. * This function will remove all setaskment submissions and feedbacks in the database * and clean up any related data. * * @param stdClass $data the data submitted from the reset course. * @return array */ function setask_reset_userdata($data) { global $CFG, $DB; require_once $CFG->dirroot . '/mod/setask/locallib.php'; $status = array(); $params = array('courseid' => $data->courseid); $sql = "SELECT a.id FROM {setask} a WHERE a.course=:courseid"; $course = $DB->get_record('course', array('id' => $data->courseid), '*', MUST_EXIST); if ($setasks = $DB->get_records_sql($sql, $params)) { foreach ($setasks as $setask) { $cm = get_coursemodule_from_instance('setask', $setask->id, $data->courseid, false, MUST_EXIST); $context = context_module::instance($cm->id); $setaskment = new setask($context, $cm, $course); $status = array_merge($status, $setaskment->reset_userdata($data)); } } return $status; }