Beispiel #1
0
 protected function get_other_values(renderer_base $output)
 {
     $classname = static::define_class();
     $status = $this->persistent->get_status();
     $values = new stdClass();
     $values->statusname = $this->persistent->get_statusname();
     $values->isbasedontemplate = $this->persistent->is_based_on_template();
     $values->canmanage = $this->persistent->can_manage();
     $values->canrequestreview = $this->persistent->can_request_review();
     $values->canreview = $this->persistent->can_review();
     $values->canbeedited = $this->persistent->can_be_edited();
     $values->isactive = $status == $classname::STATUS_ACTIVE;
     $values->isdraft = $status == $classname::STATUS_DRAFT;
     $values->iscompleted = $status == $classname::STATUS_COMPLETE;
     $values->isinreview = $status == $classname::STATUS_IN_REVIEW;
     $values->iswaitingforreview = $status == $classname::STATUS_WAITING_FOR_REVIEW;
     $values->isreopenallowed = $values->canmanage && $values->iscompleted;
     $values->iscompleteallowed = $values->canmanage && $values->isactive;
     $values->isunlinkallowed = $values->canmanage && !$values->iscompleted && $values->isbasedontemplate;
     $values->isrequestreviewallowed = false;
     $values->iscancelreviewrequestallowed = false;
     $values->isstartreviewallowed = false;
     $values->isstopreviewallowed = false;
     $values->isapproveallowed = false;
     $values->isunapproveallowed = false;
     if (!$values->isbasedontemplate) {
         $values->isrequestreviewallowed = $values->canrequestreview && $values->isdraft;
         $values->iscancelreviewrequestallowed = $values->canrequestreview && $values->iswaitingforreview;
         $values->isstartreviewallowed = $values->canreview && $values->iswaitingforreview;
         $values->isstopreviewallowed = $values->canreview && $values->isinreview;
         $values->isapproveallowed = $values->canreview && !$values->iscompleted && !$values->isactive;
         $values->isunapproveallowed = $values->canreview && $values->isactive;
     }
     $values->duedateformatted = userdate($this->persistent->get_duedate());
     if ($this->persistent->is_based_on_template()) {
         $exporter = new template_exporter($this->related['template']);
         $values->template = $exporter->export($output);
     }
     if (!empty($values->isinreview)) {
         // TODO Make this more efficient.
         $userexporter = new user_summary_exporter(core_user::get_user($this->persistent->get_reviewerid(), '*', MUST_EXIST));
         $values->reviewer = $userexporter->export($output);
     }
     $commentareaexporter = new comment_area_exporter($this->persistent->get_comment_object());
     $values->commentarea = $commentareaexporter->export($output);
     $values->url = url::plan($this->persistent->get_id())->out(false);
     return (array) $values;
 }
 protected function get_other_values(renderer_base $output)
 {
     global $DB;
     $result = new stdClass();
     $result->showrelatedcompetencies = true;
     $competency = $this->related['competency'];
     $exporter = new competency_summary_exporter(null, array('competency' => $competency, 'context' => $competency->get_context(), 'framework' => $competency->get_framework(), 'linkedcourses' => array(), 'relatedcompetencies' => $this->related['relatedcompetencies']));
     $result->competency = $exporter->export($output);
     $result->cangrade = user_competency::can_grade_user($this->related['user']->id);
     if ($this->related['user']) {
         $exporter = new user_summary_exporter($this->related['user']);
         $result->user = $exporter->export($output);
     }
     $related = array('scale' => $competency->get_scale());
     if ($this->related['usercompetency']) {
         $exporter = new user_competency_exporter($this->related['usercompetency'], $related);
         $result->usercompetency = $exporter->export($output);
     }
     if ($this->related['usercompetencyplan']) {
         $exporter = new user_competency_plan_exporter($this->related['usercompetencyplan'], $related);
         $result->usercompetencyplan = $exporter->export($output);
     }
     if ($this->related['usercompetencycourse']) {
         $exporter = new user_competency_course_exporter($this->related['usercompetencycourse'], $related);
         $result->usercompetencycourse = $exporter->export($output);
     }
     $allevidence = array();
     $usercache = array();
     $scale = $competency->get_scale();
     $result->evidence = array();
     if (count($this->related['evidence'])) {
         foreach ($this->related['evidence'] as $evidence) {
             $actionuserid = $evidence->get_actionuserid();
             if (!empty($actionuserid)) {
                 $usercache[$evidence->get_actionuserid()] = true;
             }
         }
         $users = array();
         if (!empty($usercache)) {
             list($sql, $params) = $DB->get_in_or_equal(array_keys($usercache));
             $users = $DB->get_records_select('user', 'id ' . $sql, $params);
         }
         foreach ($users as $user) {
             $usercache[$user->id] = $user;
         }
         foreach ($this->related['evidence'] as $evidence) {
             $actionuserid = $evidence->get_actionuserid();
             $related = array('scale' => $scale, 'usercompetency' => $this->related['usercompetency'] ? $this->related['usercompetency'] : null, 'usercompetencyplan' => $this->related['usercompetencyplan'] ? $this->related['usercompetencyplan'] : null);
             $related['actionuser'] = !empty($actionuserid) ? $usercache[$actionuserid] : null;
             $exporter = new evidence_exporter($evidence, $related);
             $allevidence[] = $exporter->export($output);
         }
         $result->evidence = $allevidence;
     }
     $usercompetency = !empty($this->related['usercompetency']) ? $this->related['usercompetency'] : null;
     if (!empty($usercompetency) && $usercompetency->can_read_comments()) {
         $commentareaexporter = new comment_area_exporter($usercompetency->get_comment_object());
         $result->commentarea = $commentareaexporter->export($output);
     }
     return (array) $result;
 }