From 1149b075c7067146b03fa6445c3cb788d60e045d Mon Sep 17 00:00:00 2001 From: David Mudrak Date: Fri, 17 Sep 2010 13:25:45 +0000 Subject: [PATCH] MDL-24091 workshop: deleting orphaned subplugins data in an upgrade step --- mod/workshop/form/accumulative/db/upgrade.php | 53 +++++++++++++++ mod/workshop/form/accumulative/version.php | 11 ++-- mod/workshop/form/comments/db/upgrade.php | 53 +++++++++++++++ mod/workshop/form/comments/version.php | 11 ++-- mod/workshop/form/numerrors/db/upgrade.php | 63 ++++++++++++++++++ mod/workshop/form/numerrors/version.php | 11 ++-- mod/workshop/form/rubric/db/upgrade.php | 64 +++++++++++++++++++ mod/workshop/form/rubric/version.php | 11 ++-- 8 files changed, 257 insertions(+), 20 deletions(-) create mode 100644 mod/workshop/form/accumulative/db/upgrade.php create mode 100644 mod/workshop/form/comments/db/upgrade.php create mode 100644 mod/workshop/form/numerrors/db/upgrade.php create mode 100644 mod/workshop/form/rubric/db/upgrade.php diff --git a/mod/workshop/form/accumulative/db/upgrade.php b/mod/workshop/form/accumulative/db/upgrade.php new file mode 100644 index 00000000000..7455f585330 --- /dev/null +++ b/mod/workshop/form/accumulative/db/upgrade.php @@ -0,0 +1,53 @@ +. + +/** + * Keeps track of upgrades to the workshop accumulative grading strategy + * + * @package workshopform + * @subpackage accumulative + * @copyright 2010 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Performs upgrade of the database structure and data + * + * @param int $oldversion the version we are upgrading from + * @return bool true + */ +function xmldb_workshopform_accumulative_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + if ($oldversion < 2010091700) { + // clean up orphaned dimensions + $orphans = $DB->get_records_sql("SELECT d.id + FROM {workshopform_accumulative} d + LEFT JOIN {workshop} w ON d.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned assessment form elements found - cleaning...'); + $DB->delete_records_list('workshopform_accumulative', 'id', array_keys($orphans)); + } + + upgrade_plugin_savepoint(true, 2010091700, 'workshopform', 'accumulative'); + } + + return true; +} diff --git a/mod/workshop/form/accumulative/version.php b/mod/workshop/form/accumulative/version.php index 3198166e26f..ecd04d763a5 100644 --- a/mod/workshop/form/accumulative/version.php +++ b/mod/workshop/form/accumulative/version.php @@ -21,12 +21,13 @@ * This code fragment is called by moodle_needs_upgrading() and * /admin/index.php * - * @package mod-workshop - * @copyright 2009 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package workshopform + * @subpackage accumulative + * @copyright 2009 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010090501; -$plugin->requires = 2010090501; // Requires this Moodle version +$plugin->version = 2010091700; +$plugin->requires = 2010091600; // Requires this Moodle version diff --git a/mod/workshop/form/comments/db/upgrade.php b/mod/workshop/form/comments/db/upgrade.php new file mode 100644 index 00000000000..f1c703d61e9 --- /dev/null +++ b/mod/workshop/form/comments/db/upgrade.php @@ -0,0 +1,53 @@ +. + +/** + * Keeps track of upgrades to the workshop comments grading strategy + * + * @package workshopform + * @subpackage comments + * @copyright 2010 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Performs upgrade of the database structure and data + * + * @param int $oldversion the version we are upgrading from + * @return bool true + */ +function xmldb_workshopform_comments_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + if ($oldversion < 2010091700) { + // clean up orphaned dimensions + $orphans = $DB->get_records_sql("SELECT d.id + FROM {workshopform_comments} d + LEFT JOIN {workshop} w ON d.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned assessment form elements found - cleaning...'); + $DB->delete_records_list('workshopform_comments', 'id', array_keys($orphans)); + } + + upgrade_plugin_savepoint(true, 2010091700, 'workshopform', 'comments'); + } + + return true; +} diff --git a/mod/workshop/form/comments/version.php b/mod/workshop/form/comments/version.php index ffd8577f4d3..e86c0f4a78c 100644 --- a/mod/workshop/form/comments/version.php +++ b/mod/workshop/form/comments/version.php @@ -21,12 +21,13 @@ * This code fragment is called by moodle_needs_upgrading() and * /admin/index.php * - * @package mod-workshopform-comments - * @copyright 2009 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package workshopform + * @subpackage comments + * @copyright 2009 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010090501; -$plugin->requires = 2010090501; // Requires this Moodle version +$plugin->version = 2010091700; +$plugin->requires = 2010091600; // Requires this Moodle version diff --git a/mod/workshop/form/numerrors/db/upgrade.php b/mod/workshop/form/numerrors/db/upgrade.php new file mode 100644 index 00000000000..59ab311543f --- /dev/null +++ b/mod/workshop/form/numerrors/db/upgrade.php @@ -0,0 +1,63 @@ +. + +/** + * Keeps track of upgrades to the workshop numerrors grading strategy + * + * @package workshopform + * @subpackage numerrors + * @copyright 2010 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Performs upgrade of the database structure and data + * + * @param int $oldversion the version we are upgrading from + * @return bool true + */ +function xmldb_workshopform_numerrors_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + if ($oldversion < 2010091700) { + // clean up orphaned dimensions + $orphans = $DB->get_records_sql("SELECT d.id + FROM {workshopform_numerrors} d + LEFT JOIN {workshop} w ON d.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned assessment form elements found - cleaning...'); + $DB->delete_records_list('workshopform_numerrors', 'id', array_keys($orphans)); + } + + // clean up orphaned mappings + $orphans = $DB->get_records_sql("SELECT m.id + FROM {workshopform_numerrors_map} m + LEFT JOIN {workshop} w ON m.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned mappings found - cleaning...'); + $DB->delete_records_list('workshopform_numerrors_map', 'id', array_keys($orphans)); + } + + upgrade_plugin_savepoint(true, 2010091700, 'workshopform', 'numerrors'); + } + + return true; +} diff --git a/mod/workshop/form/numerrors/version.php b/mod/workshop/form/numerrors/version.php index 637f6ef5364..6c86b05ea89 100644 --- a/mod/workshop/form/numerrors/version.php +++ b/mod/workshop/form/numerrors/version.php @@ -21,12 +21,13 @@ * This code fragment is called by moodle_needs_upgrading() and * /admin/index.php * - * @package mod-workshop - * @copyright 2009 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package workshopform + * @subpackage numerrors + * @copyright 2009 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010090501; -$plugin->requires = 2010090501; // Requires this Moodle version +$plugin->version = 2010091700; +$plugin->requires = 2010091600; // Requires this Moodle version diff --git a/mod/workshop/form/rubric/db/upgrade.php b/mod/workshop/form/rubric/db/upgrade.php new file mode 100644 index 00000000000..fbba54f8317 --- /dev/null +++ b/mod/workshop/form/rubric/db/upgrade.php @@ -0,0 +1,64 @@ +. + +/** + * Keeps track of upgrades to the workshop rubric grading strategy + * + * @package workshopform + * @subpackage rubric + * @copyright 2010 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + */ + +/** + * Performs upgrade of the database structure and data + * + * @param int $oldversion the version we are upgrading from + * @return bool true + */ +function xmldb_workshopform_rubric_upgrade($oldversion) { + global $CFG, $DB, $OUTPUT; + + $dbman = $DB->get_manager(); + + if ($oldversion < 2010091700) { + // clean up orphaned dimensions + $orphans = $DB->get_records_sql("SELECT d.id + FROM {workshopform_rubric} d + LEFT JOIN {workshop} w ON d.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned assessment form elements found - cleaning...'); + $DB->delete_records_list('workshopform_rubric_levels', 'dimensionid', array_keys($orphans)); + $DB->delete_records_list('workshopform_rubric', 'id', array_keys($orphans)); + } + + // clean up orphaned configurations + $orphans = $DB->get_records_sql("SELECT c.id + FROM {workshopform_rubric_config} c + LEFT JOIN {workshop} w ON c.workshopid = w.id + WHERE w.id IS NULL"); + if (!empty($orphans)) { + echo $OUTPUT->notification('Orphaned configuration found - cleaning...'); + $DB->delete_records_list('workshopform_rubric_config', 'id', array_keys($orphans)); + } + + upgrade_plugin_savepoint(true, 2010091700, 'workshopform', 'rubric'); + } + + return true; +} diff --git a/mod/workshop/form/rubric/version.php b/mod/workshop/form/rubric/version.php index 625d105febb..1029af8349a 100644 --- a/mod/workshop/form/rubric/version.php +++ b/mod/workshop/form/rubric/version.php @@ -21,12 +21,13 @@ * This code fragment is called by moodle_needs_upgrading() and * /admin/index.php * - * @package mod-workshop - * @copyright 2009 David Mudrak - * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later + * @package workshopform + * @subpackage rubric + * @copyright 2009 David Mudrak + * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ defined('MOODLE_INTERNAL') || die(); -$plugin->version = 2010090501; -$plugin->requires = 2010090501; // Requires this Moodle version +$plugin->version = 2010091700; +$plugin->requires = 2010091600; // Requires this Moodle version