diff --git a/mod/workshop/db/upgrade.php b/mod/workshop/db/upgrade.php index 3b2dd18fe1eeb..b5ab5467c03e2 100644 --- a/mod/workshop/db/upgrade.php +++ b/mod/workshop/db/upgrade.php @@ -322,5 +322,42 @@ function xmldb_workshop_upgrade($oldversion) { // Moodle v2.2.0 release upgrade line // Put any upgrade step following this + /** + * Remove all workshop calendar events + */ + if ($oldversion < 2011112901) { + require_once($CFG->dirroot . '/calendar/lib.php'); + $events = $DB->get_records('event', array('modulename' => 'workshop')); + foreach ($events as $event) { + $event = calendar_event::load($event); + $event->delete(); + } + upgrade_mod_savepoint(true, 2011112901, 'workshop'); + } + + /** + * Recreate all workshop calendar events + */ + if ($oldversion < 2011112902) { + require_once(dirname(dirname(__FILE__)) . '/lib.php'); + + $sql = "SELECT w.id, w.course, w.name, w.intro, w.introformat, w.submissionstart, + w.submissionend, w.assessmentstart, w.assessmentend, + cm.id AS cmid + FROM {workshop} w + JOIN {modules} m ON m.name = 'workshop' + JOIN {course_modules} cm ON (cm.module = m.id AND cm.course = w.course AND cm.instance = w.id)"; + + $rs = $DB->get_recordset_sql($sql); + + foreach ($rs as $workshop) { + $cmid = $workshop->cmid; + unset($workshop->cmid); + workshop_calendar_update($workshop, $cmid); + } + $rs->close(); + upgrade_mod_savepoint(true, 2011112902, 'workshop'); + } + return true; } diff --git a/mod/workshop/version.php b/mod/workshop/version.php index 9fd8a8cdab3a0..f21fe8f4ac235 100644 --- a/mod/workshop/version.php +++ b/mod/workshop/version.php @@ -25,7 +25,7 @@ defined('MOODLE_INTERNAL') || die(); -$module->version = 2011112900; // The current module version (Date: YYYYMMDDXX) +$module->version = 2011112902; // The current module version (Date: YYYYMMDDXX) $module->requires = 2011112900; // Requires this Moodle version $module->component = 'mod_workshop'; // Full name of the plugin (used for diagnostics) $module->cron = 0;