示例#1
0
文件: renderer.php 项目: dg711/moodle
 /**
  * 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;
 }