. /** * At this page, teachers allocate submissions to students for a review * * The allocation logic itself is delegated to allocators - subplugins in ./allocation * folder. * * @package mod_workshop * @copyright 2009 David Mudrak * @license http://www.gnu.org/copyleft/gpl.html GNU GPL v3 or later */ require(__DIR__.'/../../config.php'); require_once(__DIR__.'/locallib.php'); require_once(__DIR__.'/allocation/lib.php'); $cmid = required_param('cmid', PARAM_INT); // course module $method = optional_param('method', 'manual', PARAM_ALPHA); // method to use $cm = get_coursemodule_from_id('workshop', $cmid, 0, false, MUST_EXIST); $course = $DB->get_record('course', array('id' => $cm->course), '*', MUST_EXIST); $workshop = $DB->get_record('workshop', array('id' => $cm->instance), '*', MUST_EXIST); $workshop = new workshop($workshop, $cm, $course); $PAGE->set_url($workshop->allocation_url($method)); require_login($course, false, $cm); $context = $PAGE->context; require_capability('mod/workshop:allocate', $context); $PAGE->set_title($workshop->name); $PAGE->set_heading($course->fullname); $PAGE->navbar->add(get_string('allocation', 'workshop')); $allocator = $workshop->allocator_instance($method); $initresult = $allocator->init(); // // Output starts here // $output = $PAGE->get_renderer('mod_workshop'); echo $output->header(); echo $OUTPUT->heading(format_string($workshop->name)); $allocators = workshop::installed_allocators(); if (!empty($allocators)) { $tabs = array(); $row = array(); $inactive = array(); $activated = array(); foreach ($allocators as $methodid => $methodname) { $row[] = new tabobject($methodid, $workshop->allocation_url($methodid)->out(), $methodname); if ($methodid == $method) { $currenttab = $methodid; } } } $tabs[] = $row; print_tabs($tabs, $currenttab, $inactive, $activated); if (is_null($initresult->get_status()) or $initresult->get_status() == workshop_allocation_result::STATUS_VOID) { echo $output->container_start('allocator-ui'); echo $allocator->ui(); echo $output->container_end(); } else { echo $output->container_start('allocator-init-results'); echo $output->render($initresult); echo $output->continue_button($workshop->allocation_url($method)); echo $output->container_end(); } echo $output->footer();