コード例 #1
0
 public static function getReviewerEvaluations()
 {
     global $db, $ENTRADA_ACL;
     $query = "SELECT a.*, b.*, c.*, d.* FROM `evaluations` AS a\n\t\t\t\t\tJOIN `evaluation_targets` AS b\n\t\t\t\t\tON a.`evaluation_id` = b.`evaluation_id`\n\t\t\t\t\tJOIN `evaluation_forms` AS c\n\t\t\t\t\tON a.`eform_id` = c.`eform_id`\n\t\t\t\t\tJOIN `evaluations_lu_targets` AS d\n\t\t\t\t\tON c.`target_id` = d.`target_id`\n\t\t\t\t\tGROUP BY a.`evaluation_id`";
     $evaluations = $db->GetAll($query);
     $output_evaluations = array();
     foreach ($evaluations as $evaluation) {
         $permissions = Models_Evaluation::getReviewPermissions($evaluation["evaluation_id"]);
         if ($ENTRADA_ACL->amIAllowed(new EvaluationResource($evaluation["evaluation_id"], $evaluation["organisation_id"], true), 'update')) {
             $evaluation["admin"] = true;
             $permissions[] = array("contact_type" => "reviewer");
         } else {
             $evaluation["admin"] = false;
         }
         if ($permissions) {
             if (!$evaluation["admin"]) {
                 if (count($permissions) > 1) {
                     foreach ($permissions as $permission) {
                         if (isset($permission["contact_type"]) && $permission["contact_type"] == "reviewer") {
                             $evaluation["admin"] = true;
                         }
                     }
                 } elseif (isset($permissions[0]["contact_type"]) && $permissions[0]["contact_type"] == "reviewer") {
                     $evaluation["admin"] = true;
                 }
             }
             if (!$evaluation["admin"]) {
                 $progress_records = Models_Evaluation::getProgressRecordsByPermissions($evaluation["evaluation_id"], $permissions, true, $evaluation["target_shortname"]);
                 if (isset($progress_records) && count($progress_records)) {
                     $evaluation["completed_attempts"] = count($progress_records);
                     $evaluation["permissions"] = $permissions;
                     $output_evaluations[] = $evaluation;
                 }
                 unset($progress_records);
             } else {
                 if (isset($evaluation["evaluation_completions"]) && $evaluation["evaluation_completions"]) {
                     $evaluation["completed_attempts"] = $evaluation["evaluation_completions"];
                     $evaluation["permissions"] = $permissions;
                     $output_evaluations[] = $evaluation;
                 }
             }
         }
     }
     return $output_evaluations;
 }
コード例 #2
0
                     $evaluation_question["response_ids"][] = $evaluation_question_response["eqresponse_id"];
                 }
             }
             $evaluation_question["selections"] = 0;
             $questions[$evaluation_question["equestion_id"]] = $evaluation_question;
         }
     }
 }
 if ($evaluation && $ENTRADA_ACL->amIAllowed(new EvaluationResource(null, null, true), 'update')) {
     array_unshift($permissions, array("contact_type" => "reviewer"));
 }
 if ($evaluation && isset($permissions) && $permissions) {
     $available_target_ids = array();
     $available_targets = array();
     $target_attempts = array();
     $completed_attempts = Models_Evaluation::getProgressRecordsByPermissions($RECORD_ID, $permissions, true, $evaluation["target_shortname"]);
     foreach ($completed_attempts as $completed_attempt) {
         if (!isset($progress_id) || !$progress_id || $completed_attempt["eprogress_id"] == $progress_id) {
             if (isset($completed_attempt["preceptor_proxy_id"]) && $completed_attempt["preceptor_proxy_id"]) {
                 $target_id = $completed_attempt["preceptor_proxy_id"];
             } elseif (isset($completed_attempt["event_id"]) && (int) $completed_attempt["event_id"]) {
                 $target_id = (int) $completed_attempt["event_id"];
             } elseif (isset($completed_attempt["target_record_id"]) && (int) $completed_attempt["target_record_id"]) {
                 $target_id = (int) $completed_attempt["target_record_id"];
             } else {
                 $target_id = (int) $completed_attempt["target_value"];
             }
             if (!array_search($target_id, $available_target_ids)) {
                 $available_target_ids[] = $target_id;
             }
             if (!isset($target_attempts[$target_id])) {