$grade_item->delete('moddelete');
}
}
+ // Delete completion and availability data; it is better to do this even if the
+ // features are not turned on, in case they were turned on previously (these will be
+ // very quick on an empty table)
+ $DB->delete_records('course_modules_completion', array('coursemoduleid' => $cm->id));
+ $DB->delete_records('course_modules_availability', array('coursemoduleid'=> $cm->id));
delete_context(CONTEXT_MODULE, $cm->id);
return $DB->delete_records('course_modules', array('id'=>$cm->id));
remove_course_grades($courseid, $showfeedback);
remove_grade_letters($context, $showfeedback);
+/// Remove all data from availability and completion tables that is associated
+/// with course-modules belonging to this course. Note this is done even if the
+/// features are not enabled now, in case they were enabled previously
+ $DB->delete_records_select('course_modules_completion',
+ 'coursemoduleid IN (SELECT id from {course_modules} WHERE course=?)',
+ array($courseid));
+ $DB->delete_records_select('course_modules_availability',
+ 'coursemoduleid IN (SELECT id from {course_modules} WHERE course=?)',
+ array($courseid));
+
/// Delete every instance of every module
if ($allmods = $DB->get_records('modules') ) {