Skip to content

Commit

Permalink
Merge branch 'wip-MDL-45500-master' of git://github.com/marinaglancy/…
Browse files Browse the repository at this point in the history
…moodle
  • Loading branch information
Damyon Wiese committed Dec 11, 2017
2 parents c6a507e + 777720c commit fe955c5
Showing 1 changed file with 25 additions and 1 deletion.
26 changes: 25 additions & 1 deletion lib/classes/plugininfo/gradingform.php
Expand Up @@ -31,6 +31,30 @@
class gradingform extends base {

public function is_uninstall_allowed() {
return false;
return true;
}

/**
* Pre-uninstall hook.
* This is intended for disabling of plugin, some DB table purging, etc.
*/
public function uninstall_cleanup() {
global $DB;

// Find all definitions and templates.
$definitions = $DB->get_fieldset_select('grading_definitions', 'id', 'method = ?', [$this->name]);
if ($definitions) {
// Delete instances and definitions. Deleting instance will not delete grades because they were
// already pushed to the module and gradebook.
list($sqld, $paramsd) = $DB->get_in_or_equal($definitions);
$DB->delete_records_select('grading_instances', 'definitionid ' . $sqld, $paramsd);
$DB->delete_records_select('grading_definitions', 'id ' . $sqld, $paramsd);
}
// Delete templates for this grading method.
$DB->delete_records_select('grading_areas', 'component = ? AND activemethod = ?', array('core_grading', $this->name));
// Update the remaining grading areas to use simple grading method instead of this grading method.
$DB->execute('UPDATE {grading_areas} SET activemethod = NULL WHERE activemethod = ?', [$this->name]);

parent::uninstall_cleanup();
}
}

0 comments on commit fe955c5

Please sign in to comment.