/** * Renders the result of the submissions allocation process * * @param workshop_allocation_result $result as returned by the allocator's init() method * @return string HTML to be echoed */ protected function render_workshop_allocation_result(workshop_allocation_result $result) { global $CFG; $status = $result->get_status(); if (is_null($status) or $status == workshop_allocation_result::STATUS_VOID) { debugging('Attempt to render workshop_allocation_result with empty status', DEBUG_DEVELOPER); return ''; } switch ($status) { case workshop_allocation_result::STATUS_FAILED: if ($message = $result->get_message()) { $message = new workshop_message($message, workshop_message::TYPE_ERROR); } else { $message = new workshop_message(get_string('allocationerror', 'workshop'), workshop_message::TYPE_ERROR); } break; case workshop_allocation_result::STATUS_CONFIGURED: if ($message = $result->get_message()) { $message = new workshop_message($message, workshop_message::TYPE_INFO); } else { $message = new workshop_message(get_string('allocationconfigured', 'workshop'), workshop_message::TYPE_INFO); } break; case workshop_allocation_result::STATUS_EXECUTED: if ($message = $result->get_message()) { $message = new workshop_message($message, workshop_message::TYPE_OK); } else { $message = new workshop_message(get_string('allocationdone', 'workshop'), workshop_message::TYPE_OK); } break; default: throw new coding_exception('Unknown allocation result status', $status); } // start with the message $o = $this->render($message); // display the details about the process if available $logs = $result->get_logs(); if (is_array($logs) and !empty($logs)) { $o .= html_writer::start_tag('ul', array('class' => 'allocation-init-results')); foreach ($logs as $log) { if ($log->type == 'debug' and !$CFG->debugdeveloper) { // display allocation debugging messages for developers only continue; } $class = $log->type; if ($log->indent) { $class .= ' indent'; } $o .= html_writer::tag('li', $log->message, array('class' => $class)) . PHP_EOL; } $o .= html_writer::end_tag('ul'); } return $o; }