function recordDecision($args, $request) { $paperId = (int) $request->getUserVar('paperId'); $decision = (int) $request->getUserVar('decision'); $round = (int) array_shift($args); $this->validate($request, $paperId, TRACK_DIRECTOR_ACCESS_REVIEW); $conference =& $request->getConference(); $schedConf =& $request->getSchedConf(); $submission =& $this->submission; // If the director changes the decision on the first round, // roll back to the abstract review round. if ($submission->getCurrentRound() == REVIEW_ROUND_PRESENTATION && $round == REVIEW_ROUND_ABSTRACT) { $submission->setCurrentRound(REVIEW_ROUND_ABSTRACT); // Now, unassign all reviewers from the paper review foreach ($submission->getReviewAssignments(REVIEW_ROUND_PRESENTATION) as $reviewAssignment) { if ($reviewAssignment->getRecommendation() !== null && $reviewAssignment->getRecommendation() !== '') { TrackDirectorAction::clearReview($submission, $reviewAssignment->getId()); } } TrackDirectorAction::recordDecision($submission, $decision, $round); } else { switch ($decision) { case SUBMISSION_DIRECTOR_DECISION_ACCEPT: case SUBMISSION_DIRECTOR_DECISION_INVITE: case SUBMISSION_DIRECTOR_DECISION_PENDING_REVISIONS: case SUBMISSION_DIRECTOR_DECISION_DECLINE: TrackDirectorAction::recordDecision($submission, $decision, $round); break; } } $request->redirect(null, null, null, 'submissionReview', array($paperId, $round)); }
function recordDecision($args) { $paperId = (int) Request::getUserVar('paperId'); $decision = (int) Request::getUserVar('decision'); $stage = (int) array_shift($args); $this->validate($paperId, TRACK_DIRECTOR_ACCESS_REVIEW); $conference =& Request::getConference(); $schedConf =& Request::getSchedConf(); $submission =& $this->submission; // If the director changes the decision on the first round, // roll back to the abstract review stage. if ($submission->getCurrentStage() == REVIEW_STAGE_PRESENTATION && $stage == REVIEW_STAGE_ABSTRACT) { $submission->setCurrentStage(REVIEW_STAGE_ABSTRACT); // Now, unassign all reviewers from the paper review foreach ($submission->getReviewAssignments(REVIEW_STAGE_PRESENTATION) as $reviewAssignment) { if ($reviewAssignment->getRecommendation() !== null && $reviewAssignment->getRecommendation() !== '') { TrackDirectorAction::clearReview($submission, $reviewAssignment->getId()); } } TrackDirectorAction::recordDecision($submission, $decision, $stage); } else { switch ($decision) { case SUBMISSION_DIRECTOR_DECISION_ACCEPT: case SUBMISSION_DIRECTOR_DECISION_INVITE: case SUBMISSION_DIRECTOR_DECISION_PENDING_REVISIONS: case SUBMISSION_DIRECTOR_DECISION_DECLINE: TrackDirectorAction::recordDecision($submission, $decision, $stage); if ($decision === SUBMISSION_DIRECTOR_DECISION_ACCEPT) { $this->completePaperWithoutRedirect($args, "complete"); } else { $this->completePaperWithoutRedirect($args, "remove"); } if ($decision === SUBMISSION_DIRECTOR_DECISION_DECLINE) { $this->unsuitableSubmissionNoRedirect($args); } else { //$this->restoreToQueueNoRedirect($args); } break; } } //Request::redirect(null, null, null, 'submissionReview', array($paperId, $stage)); Request::redirect(null, null, 'director', 'emailDirectorDecisionComment', null, array('paperId' => $submission->getPaperId())); }