// This calls require_login and checks moodle/site:config. admin_externalpage_setup('assignmentupgrade', '', array(), tool_assignmentupgrade_url('batchupgrade')); $PAGE->set_pagelayout('maintenance'); $PAGE->navbar->add(get_string('batchupgrade', 'tool_assignmentupgrade')); $renderer = $PAGE->get_renderer('tool_assignmentupgrade'); $confirm = required_param('confirm', PARAM_BOOL); if (!$confirm) { print_error('invalidrequest'); die; } raise_memory_limit(MEMORY_EXTRA); // Release session. \core\session\manager::write_close(); echo $renderer->header(); echo $renderer->heading(get_string('batchupgrade', 'tool_assignmentupgrade')); $current = 0; if (optional_param('upgradeall', false, PARAM_BOOL)) { $assignmentids = tool_assignmentupgrade_load_all_upgradable_assignmentids(); } else { $assignmentids = explode(',', optional_param('selected', '', PARAM_TEXT)); } $total = count($assignmentids); foreach ($assignmentids as $assignmentid) { list($summary, $success, $log) = tool_assignmentupgrade_upgrade_assignment($assignmentid); $current += 1; $params = array('current' => $current, 'total' => $total); echo $renderer->heading(get_string('upgradeprogress', 'tool_assignmentupgrade', $params), 3); echo $renderer->convert_assignment_result($summary, $success, $log); } echo $renderer->continue_button(tool_assignmentupgrade_url('listnotupgraded')); echo $renderer->footer();
/** * Convert a list of assignments from the old format to the new one. * @param bool $upgradeall - Upgrade all possible assignments * @param array $assignmentids An array of assignment ids to upgrade * @return array of $entry['assignmentsummary' => (result from tool_assignmentupgrade_get_assignment) * $entry['success'] => boolean * $entry['log'] => string - upgrade log */ function tool_assignmentupgrade_upgrade_multiple_assignments($upgradeall, $assignmentids) { global $CFG; require_once $CFG->dirroot . '/mod/assign/locallib.php'; require_once $CFG->dirroot . '/mod/assign/upgradelib.php'; $upgrades = array(); if ($upgradeall) { $assignmentids = tool_assignmentupgrade_load_all_upgradable_assignmentids(); } $assignment_upgrader = new assign_upgrade_manager(); foreach ($assignmentids as $assignmentid) { $info = tool_assignmentupgrade_get_assignment($assignmentid); if ($info) { $log = ''; $success = $assignment_upgrader->upgrade_assignment($assignmentid, $log); } else { $success = false; $log = get_string('assignmentnotfound', 'tool_assignmentupgrade', $assignmentid); $info = new stdClass(); $info->name = get_string('unknown', 'tool_assignmentupgrade'); $info->shortname = get_string('unknown', 'tool_assignmentupgrade'); } $upgrades[] = array('assignmentsummary' => $info, 'success' => $success, 'log' => $log); } return $upgrades; }