Пример #1
0
                        <col class="date" />
	                </colgroup>
	                <thead>
                        <tr>
                            <td class="modified">&nbsp;</td>
                            <td class="title">Evaluator</td>
                            <td class="title">Evaluation Target</td>
                            <td class="date-small">Attempt Progress</td>
                            <td class="date">Last Updated</td>
                        </tr>
	                </thead>
	                <tbody>
	                <?php 
                foreach ($evaluation_evaluators as $evaluation_evaluator) {
                    if (array_search($evaluation_evaluator["proxy_id"], $ignore_list) === false) {
                        $evaluation_targets_list = Models_Evaluation::getTargetsArray($EVALUATION_ID, $evaluation_evaluator["eevaluator_id"], $evaluation_evaluator["proxy_id"]);
                        if ($evaluation_targets_list) {
                            $evaluation_targets_count = count($evaluation_targets_list);
                            if (array_search($evaluation_details["target_shortname"], array("preceptor", "rotation_core", "rotation_elective")) !== false && $evaluation_details["max_submittable"]) {
                                $evaluation_details["max_submittable"] = $evaluation_targets_count * (int) $evaluation_details["max_submittable"];
                            }
                            $target_name = fetch_evaluation_target_title($evaluation_targets_list[0], $evaluation_targets_count, $evaluation_details["target_shortname"]);
                            if ($evaluation_details["target_shortname"] == "peer" && $evaluation_details["max_submittable"] == 0) {
                                $evaluation_details["max_submittable"] = $evaluation_targets_count;
                            }
                        } else {
                            $target_name = "";
                        }
                        echo "<tr>\n";
                        echo "\t<td>&nbsp;</td>\n";
                        echo "\t<td>" . $evaluation_evaluator["fullname"] . "</td>\n";
Пример #2
0
 public static function getOutstandingEvaluations($proxy_id, $organisation_id, $return_count_only = false)
 {
     global $db;
     $evaluations = array();
     $cohort_ids = groups_get_enrolled_group_ids($proxy_id, false, $organisation_id, false);
     $cohort_ids_string = "";
     if (isset($cohort_ids) && is_array($cohort_ids)) {
         foreach ($cohort_ids as $cohort_id) {
             $cohort_ids_string .= ($cohort_ids_string ? ", " : "") . $db->qstr($cohort_id);
         }
     }
     $query = "SELECT a.`cgroup_id` FROM `course_group_audience` AS a\n\t\t\t\t\tJOIN `course_groups` AS b\n\t\t\t\t\tON a.`cgroup_id` = b.`cgroup_id`\n\t\t\t\t\tWHERE a.`proxy_id` = " . $db->qstr($proxy_id) . "\n\t\t\t\t\tAND a.`active` = 1\n\t\t\t\t\tAND b.`active` = 1";
     $course_groups = $db->GetAll($query);
     $cgroup_ids_string = "";
     if (isset($course_groups) && is_array($course_groups)) {
         foreach ($course_groups as $course_group) {
             if ($cgroup_ids_string) {
                 $cgroup_ids_string .= ", " . $db->qstr($course_group["cgroup_id"]);
             } else {
                 $cgroup_ids_string = $db->qstr($course_group["cgroup_id"]);
             }
         }
     }
     $query = "\tSELECT * FROM `evaluations` AS a\n\t\t\t\t\tJOIN `evaluation_evaluators` 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\tWHERE\n                    (\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tb.`evaluator_type` = 'proxy_id'\n\t\t\t\t\t\t\tAND b.`evaluator_value` = " . $db->qstr($proxy_id) . "\n\t\t\t\t\t\t)\n\t\t\t\t\t\tOR\n\t\t\t\t\t\t(\n\t\t\t\t\t\t\tb.`evaluator_type` = 'organisation_id'\n\t\t\t\t\t\t\tAND b.`evaluator_value` = " . $db->qstr($_SESSION["details"]["organisation_id"]) . "\n\t\t\t\t\t\t)" . (isset($cohort_ids_string) && $cohort_ids_string ? " OR (\n\t\t\t\t\t\t\tb.`evaluator_type` = 'cohort'\n\t\t\t\t\t\t\tAND b.`evaluator_value` IN (" . $cohort_ids_string . ")\n\t\t\t\t\t\t)" : "") . ($cgroup_ids_string ? " OR (\n\t\t\t\t\t\t\tb.`evaluator_type` = 'cgroup_id'\n\t\t\t\t\t\t\tAND b.`evaluator_value` IN (" . $cgroup_ids_string . ")\n\t\t\t\t\t\t)" : "") . "\n\t\t\t\t\t)\n\t\t\t\t\tAND a.`evaluation_start` < " . $db->qstr(time()) . "\n\t\t\t\t\tAND a.`evaluation_active` = 1\n\t\t\t\t\tGROUP BY a.`evaluation_id`\n\t\t\t\t\tORDER BY a.`evaluation_finish` DESC";
     $temp_evaluations = $db->GetAll($query);
     if ($temp_evaluations) {
         foreach ($temp_evaluations as $evaluation) {
             if (isset($evaluation["require_requests"]) && $evaluation["require_requests"]) {
                 $requests = Models_Evaluation::getEvaluationRequests($evaluation["evaluation_id"], $proxy_id);
             }
             if (!(isset($evaluation["require_requests"]) && $evaluation["require_requests"]) || is_array($requests) && count($requests)) {
                 $evaluation_targets_list = Models_Evaluation::getTargetsArray($evaluation["evaluation_id"], $evaluation["eevaluator_id"], $proxy_id);
                 if ($evaluation_targets_list) {
                     $evaluation_targets_count = count($evaluation_targets_list);
                     if (array_search($evaluation["target_shortname"], array("preceptor", "rotation_core", "rotation_elective")) !== false && $evaluation["max_submittable"]) {
                         $evaluation["max_submittable"] = $evaluation_targets_count * (int) $evaluation["max_submittable"];
                     } elseif ($evaluation["target_shortname"] == "peer" && $evaluation["max_submittable"] == 0) {
                         $evaluation["max_submittable"] = $evaluation_targets_count;
                     } elseif ($evaluation["max_submittable"] == 0 && $evaluation["allow_repeat_targets"]) {
                         $evaluation["max_submittable"] = 2147483647;
                     }
                     if (array_search($evaluation["target_shortname"], array("preceptor", "rotation_core", "rotation_elective")) !== false && $evaluation["min_submittable"]) {
                         $evaluation["min_submittable"] = $evaluation_targets_count * (int) $evaluation["min_submittable"];
                     } elseif ($evaluation["target_shortname"] == "peer" && $evaluation["min_submittable"] == 0) {
                         $evaluation["min_submittable"] = $evaluation_targets_count;
                     }
                     $evaluation_target_title = fetch_evaluation_target_title($evaluation_targets_list[0], $evaluation_targets_count, $evaluation["target_shortname"]);
                     if ($evaluation_target_title) {
                         $evaluation["evaluation_target_title"] = $evaluation_target_title;
                     }
                     if ($evaluation_targets_list) {
                         $evaluation["evaluation_targets"] = $evaluation_targets_list;
                     }
                 }
                 $query = "\tSELECT COUNT(`eprogress_id`) FROM `evaluation_progress`\n                                WHERE `evaluation_id` = " . $db->qstr($evaluation["evaluation_id"]) . "\n                                AND `proxy_id` = " . $db->qstr($proxy_id) . "\n                                AND `progress_value` = 'complete'";
                 $completed_attempts = $db->GetOne($query);
                 if ($completed_attempts) {
                     $evaluation["completed_attempts"] = $completed_attempts;
                 } else {
                     $evaluation["completed_attempts"] = 0;
                 }
                 if (defined("EVALUATION_LOCKOUT") && EVALUATION_LOCKOUT && $evaluation["evaluation_finish"] + EVALUATION_LOCKOUT < time()) {
                     $evaluation["max_submittable"] = $evaluation["completed_attempts"];
                 }
                 if ($completed_attempts >= $evaluation["max_submittable"]) {
                     continue;
                 } else {
                     $query = "\tSELECT COUNT(`efquestion_id`) FROM `evaluation_form_questions`\n                                    WHERE `eform_id` = " . $db->qstr($evaluation["eform_id"]) . "\n                                    GROUP BY `eform_id`";
                     $evaluation_questions = $db->GetOne($query);
                     if ($evaluation_questions) {
                         $evaluation["evaluation_questions"] = $evaluation_questions;
                     } else {
                         $evaluation["evaluation_questions"] = 0;
                     }
                     $query = "\tSELECT * FROM `evaluation_progress`\n                                    WHERE `evaluation_id` = " . $db->qstr($evaluation["evaluation_id"]) . "\n                                    AND `proxy_id` = " . $db->qstr($proxy_id) . "\n                                    AND `progress_value` = 'complete'";
                     $evaluation_progress = $db->GetAll($query);
                     if ($evaluation_progress) {
                         $evaluation["evaluation_progress"] = $evaluation_progress;
                     } else {
                         $evaluation["evaluation_progress"] = 0;
                     }
                     if ($evaluation["max_submittable"] > $evaluation["completed_attempts"]) {
                         $evaluation["click_url"] = ENTRADA_URL . "/evaluations?section=attempt&id=" . $evaluation["evaluation_id"];
                     } else {
                         $evaluation["click_url"] = "";
                     }
                     if (array_search($evaluation["target_shortname"], array("preceptor", "rotation_core", "rotation_elective")) === false || isset($evaluation_targets_count) && $evaluation_targets_count) {
                         $evaluations[] = $evaluation;
                     }
                 }
             }
         }
     }
     return $return_count_only ? count($evaluations) : $evaluations;
 }
Пример #3
0
                                if ($eprogress_id) {
                                    if (isset($_GET["proxy_id"]) && ($proxy_id = clean_input($_GET["proxy_id"], array("trim", "int"))) && array_search($PROCESSED["target_shortname"], array("peer", "student", "teacher", "resident")) !== false) {
                                        $PROCESSED["target_record_id"] = $proxy_id;
                                    }
                                    ?>
									<form name="evaluation-form" id="evaluation-form" action="<?php 
                                    echo ENTRADA_URL . "/" . $MODULE;
                                    ?>
?section=attempt&id=<?php 
                                    echo $RECORD_ID;
                                    ?>
" method="post">
									<?php 
                                    add_statistic("evaluation", "evaluation_view", "evaluation_id", $RECORD_ID);
                                    if (!isset($evaluation_targets) || !count($evaluation_targets)) {
                                        $evaluation_targets = Models_Evaluation::getTargetsArray($RECORD_ID, $PROCESSED["eevaluator_id"], $ENTRADA_USER->getID(), false, true, false, isset($evaluation_request) && $evaluation_request ? $evaluation_request["erequest_id"] : false);
                                    }
                                    if (in_array($PROCESSED["target_shortname"], array("preceptor", "teacher", "peer", "resident"))) {
                                        $HEAD[] = "\n                                                    <script type=\"text/javascript\">\n                                                        function fetchTargetDetails(id, id_name) {\n                                                            " . ($PROCESSED["target_shortname"] == "preceptor" ? "\n                                                            var preceptor_evaluation = jQuery('#event_id').val();\n                                                            if(etarget_id == 'other') {\n                                                                \$('other_teacher_layer').style.display = 'block';\n                                                                \$('other_teacher_fname').focus();\n                                                            } else {\n                                                                \$('other_teacher_layer').style.display = 'none';\n                                                                " : "var preceptor_evaluation = false;\n                                                            ") . "\n                                                                var etarget_id = (id_name == 'evaluation_target' ? id : false);\n                                                                var proxy_id = (id_name == 'proxy_id' ? id : false);\n                                                                if (((etarget_id && parseInt(etarget_id) == etarget_id) || (proxy_id && parseInt(proxy_id) == proxy_id))) {\n                                                                    jQuery('#target-details-holder').load('" . ENTRADA_URL . "/evaluations?section=api-target-info&id=" . $RECORD_ID . "', {'etarget_id' : etarget_id, 'eevaluator_id' : '" . $PROCESSED["eevaluator_id"] . "', 'erequest_id' : " . (isset($evaluation_request) && $evaluation_request ? "'" . $evaluation_request["erequest_id"] . "'" : "false") . ", 'preceptor_evaluation' : preceptor_evaluation, 'proxy_id' : proxy_id} );\n                                                                }\n                                                            " . ($PROCESSED["target_shortname"] == "preceptor" ? "}" : "") . "\n                                                            return;\n                                                        }\n                                                    </script>";
                                    }
                                    if ($evaluation_targets) {
                                        if (count($evaluation_targets) == 1) {
                                            echo "<input type=\"hidden\" id=\"evaluation_target\" name=\"evaluation_target\" value=\"" . $evaluation_targets[0]["etarget_id"] . "\" />";
                                            if ($PROCESSED["target_shortname"] == "teacher") {
                                                echo "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["proxy_id"] . "\" />";
                                                $target_name = $evaluation_targets[0]["firstname"] . " " . $evaluation_targets[0]["lastname"];
                                            } elseif ($PROCESSED["target_shortname"] == "resident") {
                                                echo "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["proxy_id"] . "\" />";
                                                $target_name = $evaluation_targets[0]["firstname"] . " " . $evaluation_targets[0]["lastname"];
                                            } elseif ($PROCESSED["target_shortname"] == "course") {
                                                echo "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["course_id"] . "\" />";
 }
 if (isset($_POST["eevaluator_id"]) && ($tmp_input = clean_input($_POST["eevaluator_id"], "int"))) {
     $eevaluator_id = $tmp_input;
 }
 if (isset($_POST["erequest_id"]) && ($tmp_input = clean_input($_POST["erequest_id"], "int"))) {
     $erequest_id = $tmp_input;
 } else {
     $erequest_id = false;
 }
 if (isset($_POST["preceptor_evaluation"]) && ($tmp_input = clean_input($_POST["preceptor_evaluation"], "int"))) {
     $preceptor_evaluation = $tmp_input;
 } else {
     $preceptor_evaluation = false;
 }
 if ((isset($etarget_id) && $etarget_id || isset($proxy_id) && $proxy_id) && isset($eevaluator_id) && $eevaluator_id) {
     $evaluation_targets = Models_Evaluation::getTargetsArray($RECORD_ID, $eevaluator_id, $ENTRADA_USER->getID(), false, true, false, $erequest_id);
     foreach ($evaluation_targets as $evaluation_target) {
         if (!isset($preceptor_evaluation) || !$preceptor_evaluation) {
             if (isset($proxy_id) && $proxy_id && isset($evaluation_target["proxy_id"]) && $evaluation_target["proxy_id"] == $proxy_id) {
                 $found = true;
                 break;
             } elseif (isset($etarget_id) && $etarget_id && isset($evaluation_target["etarget_id"]) && $evaluation_target["etarget_id"] == $etarget_id) {
                 $proxy_id = $evaluation_target["proxy_id"];
                 $found = true;
                 break;
             }
         } elseif ($preceptor_evaluation == $evaluation_target["event_id"]) {
             $preceptors = Models_Evaluation::getPreceptorArray($RECORD_ID, $preceptor_evaluation, $ENTRADA_USER->getID());
             foreach ($preceptors as $preceptor) {
                 if ($preceptor["proxy_id"] == $proxy_id) {
                     $found = true;
Пример #5
0
         application_log("error", "Unable to create an evaluation_progress entery when attempting complete an evaluation. Database said: " . $db->ErrorMsg());
     }
 }
 if ($eprogress_id) {
     if (isset($_GET["proxy_id"]) && ($proxy_id = clean_input($_GET["proxy_id"], array("trim", "int"))) && array_search($PROCESSED["target_shortname"], array("peer", "student", "teacher", "resident")) !== false) {
         $PROCESSED["target_record_id"] = $proxy_id;
     }
     $content["evaluation_attempt"] .= "<form name=\"evaluation-form\" id=\"evaluation-form\" method=\"post\">\n";
     $content["evaluation_attempt"] .= "<input type=\"hidden\" name=\"hash\" id=\"evalhash\" value=\"" . (isset($user_hash) && $user_hash ? $user_hash : "") . "\" />\n";
     $content["evaluation_attempt"] .= "<input type=\"hidden\" name=\"username\" id=\"evalusername\" value=\"\" />\n";
     $content["evaluation_attempt"] .= "<input type=\"hidden\" name=\"password\" id=\"evalpassword\" value=\"\" />\n";
     $content["evaluation_attempt"] .= "<input type=\"hidden\" name=\"method\" value=\"evaluationattempt\" />\n";
     $content["evaluation_attempt"] .= "<input type=\"hidden\" name=\"evaluation_id\" value=\"" . $evaluation_id . "\" />\n";
     add_statistic("evaluation", "evaluation_view", "evaluation_id", $evaluation_id);
     if (!isset($evaluation_targets) || !count($evaluation_targets)) {
         $evaluation_targets = Models_Evaluation::getTargetsArray($evaluation_id, $PROCESSED["eevaluator_id"], $ENTRADA_USER->getID(), false, true);
     }
     if ($evaluation_targets) {
         if (count($evaluation_targets) == 1) {
             $content["evaluation_attempt"] .= "<input type=\"hidden\" id=\"evaluation_target\" name=\"evaluation_target\" value=\"" . $evaluation_targets[0]["etarget_id"] . "\" />";
             if ($PROCESSED["target_shortname"] == "teacher") {
                 $content["evaluation_attempt"] .= "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["proxy_id"] . "\" />";
                 $target_name = $evaluation_targets[0]["firstname"] . " " . $evaluation_targets[0]["lastname"];
             } elseif ($PROCESSED["target_shortname"] == "resident") {
                 $content["evaluation_attempt"] .= "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["proxy_id"] . "\" />";
                 $target_name = $evaluation_targets[0]["firstname"] . " " . $evaluation_targets[0]["lastname"];
             } elseif ($PROCESSED["target_shortname"] == "course") {
                 $content["evaluation_attempt"] .= "<input type=\"hidden\" id=\"target_record_id\" name=\"target_record_id\" value=\"" . $evaluation_targets[0]["course_id"] . "\" />";
                 $target_name = $db->GetOne("SELECT `course_name` FROM `courses` WHERE `course_id` = " . $db->qstr($evaluation_targets[0]["target_value"]));
             } elseif ($PROCESSED["target_shortname"] == "rotation_core" || $PROCESSED["target_shortname"] == "rotation_elective") {
                 $content["evaluation_attempt"] .= "<input type=\"hidden\" id=\"event_id\" name=\"event_id\" value=\"" . $evaluation_targets[0]["event_id"] . "\" />";