$endDate = \DateTime::createFromFormat('Y-m-d', urldecode($_GET['end'])); } if (!$startDate) { $startDate = new \DateTime($default_date_range['start']); } if (!$endDate) { $endDate = new \DateTime($default_date_range['end']); } $startDate = $startDate->format('Y-m-d'); $endDate = $endDate->format('Y-m-d'); $requests = $model->getExamsAwaitingResponse($startDate, $endDate); //Remove the elements where a student does not yet have active accommodations for the exam foreach ($requests as $key => $r) { //We must also check to see if the student has opted out $opted_out = \Ventus\Utilities\Functions::checkIfStudentHasOptedOut($r['student_id'], $r['course_code'], $r['course_section'], $r['session']); $active_exam_accommodations = $model->getAllStudentActiveExamAndTranscriptionAccommodations($r['student_id'], $r['exam_date'], $r['course_code'], $r['course_section'], $r['session']); if (empty($active_exam_accommodations) || $opted_out) { unset($requests[$key]); } } $l10n->addResource(__DIR__ . '/l10n/unconfirmed-requests.json'); $viewFile = 'views/unconfirmed-requests.php'; } elseif ($_GET['page'] === "initiate-confirmation") { $render = true; $request = $model->getUnconfirmedExamData($_GET['exam_request_id']); //We must also check to see if the student has opted out $opted_out = \Ventus\Utilities\Functions::checkIfStudentHasOptedOut($_GET['student_id'], $request['course_code'], $request['course_section'], $request['session']); $accommodations = array(); if (!$opted_out) { $accommodations = $model->getAllStudentActiveExamAndTranscriptionAccommodations($_GET['student_id'], $_GET['exam_date'], $request['course_code'], $request['course_section'], $request['session']); //Check all the possible allowed accommodations to see if the student has extra time
$allRequests = $model->getExamRequestsInRange($startDate, $endDate); $buildings = $seatManagement->getAllBuildings(); foreach ($allRequests as &$req) { $req["dropped"] = $model->determineDropped($req); $req['proctor_status'] = \Ventus\Proctor\Proctor::determineStatus(array("is_cancelled" => $req['is_cancelled'], "proctor_initiated" => $req['proctor_initiated'], "official_evaluation_starttime" => \DateTime::createFromFormat(DATETIME_MYSQL, $req['official_evaluation_starttime']), "official_evaluation_endtime" => \DateTime::createFromFormat(DATETIME_MYSQL, $req['official_evaluation_endtime']), "actual_evaluation_starttime" => \DateTime::createFromFormat(DATETIME_MYSQL, $req['actual_evaluation_starttime']), "actual_evaluation_endtime" => \DateTime::createFromFormat(DATETIME_MYSQL, $req['actual_evaluation_endtime']))); } unset($req); $l10n->addResource(__DIR__ . '/l10n/confirmed-requests.json'); $l10n->localizeArray($allRequests, 'accommodations'); $viewFile = 'views/confirmed-requests.php'; } else { if ($_GET['page'] === "fetch-request-details") { //gather request and accommodation data $request = $model->getExamRequestById($_POST['request_id']); $examAccs = $model->getExamAccommodationsById($_POST['request_id']); $studentAccs = $model->getAllStudentActiveExamAndTranscriptionAccommodations($_POST['student_id'], $_POST['exam_date'], $request[0]['course_code'], $request[0]['course_section'], $request[0]['session']); if (!empty($studentAccs)) { $studentAccs = array_values($studentAccs); } $l10n->addResource(__DIR__ . '/l10n/confirmed-requests.json'); $l10n->localizeArray($examAccs, 'name'); $l10n->localizeArray($studentAccs, 'name'); //set up response array $details = array("request" => $request, "exam_accommodations" => $examAccs, "student_accommodations" => $studentAccs); //if the request also has a seat associated with it recover the appropriate room and seat information if (!is_null($request[0]['seat_id'])) { //gather room and seat data $rooms = $seatManagement->getRooms($request[0]['building_id']); $seats = $seatManagement->getSeatsForRoom($request[0]['room_id']); $details['rooms'] = $rooms; $details['seats'] = $seats;