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; }
$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])) {