Beispiel #1
0
// 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();
Beispiel #2
0
/**
 * 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;
}