diff -u -r1.46.2.7 TrackDirectorAction.inc.php --- classes/submission/trackDirector/TrackDirectorAction.inc.php 26 May 2009 21:48:40 -0000 1.46.2.7 +++ classes/submission/trackDirector/TrackDirectorAction.inc.php 1 Dec 2009 14:56:05 -0000 @@ -59,13 +59,14 @@ * Records a director's submission decision. * @param $trackDirectorSubmission object * @param $decision int + * @param $round int */ - function recordDecision($trackDirectorSubmission, $decision) { + function recordDecision($trackDirectorSubmission, $decision, $round) { $editAssignments =& $trackDirectorSubmission->getEditAssignments(); if (empty($editAssignments)) return; - $trackDirectorSubmissionDao = &DAORegistry::getDAO('TrackDirectorSubmissionDAO'); - $user = &Request::getUser(); + $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); + $user =& Request::getUser(); $directorDecision = array( 'editDecisionId' => null, 'directorId' => $user->getUserId(), @@ -73,7 +74,7 @@ 'dateDecided' => date(Core::getCurrentDate()) ); - if (!HookRegistry::call('TrackDirectorAction::recordDecision', array(&$trackDirectorSubmission, $directorDecision))) { + if (!HookRegistry::call('TrackDirectorAction::recordDecision', array(&$trackDirectorSubmission, $directorDecision, $round))) { if ($decision == SUBMISSION_DIRECTOR_DECISION_DECLINE) { $trackDirectorSubmission->setStatus(SUBMISSION_STATUS_DECLINED); $trackDirectorSubmission->stampStatusModified(); @@ -82,12 +83,26 @@ $trackDirectorSubmission->stampStatusModified(); } - $trackDirectorSubmission->addDecision($directorDecision, $trackDirectorSubmission->getCurrentStage()); - $decisions = TrackDirectorSubmission::getDirectorDecisionOptions(); + $trackDirectorSubmission->addDecision($directorDecision, $round); + $schedConf =& Request::getSchedConf(); + $decisions = $trackDirectorSubmission->getDirectorDecisionOptions(); + // Add log import('paper.log.PaperLog'); import('paper.log.PaperEventLogEntry'); - PaperLog::logEvent($trackDirectorSubmission->getPaperId(), PAPER_LOG_DIRECTOR_DECISION, LOG_TYPE_DIRECTOR, $user->getUserId(), 'log.director.decision', array('directorName' => $user->getFullName(), 'paperId' => $trackDirectorSubmission->getPaperId(), 'decision' => Locale::translate($decisions[$decision]))); + PaperLog::logEvent( + $trackDirectorSubmission->getPaperId(), + PAPER_LOG_DIRECTOR_DECISION, + LOG_TYPE_DIRECTOR, + $user->getUserId(), + 'log.director.decision', + array( + 'directorName' => $user->getFullName(), + 'paperId' => $trackDirectorSubmission->getPaperId(), + 'decision' => Locale::translate($decisions[$decision]), + 'round' => ($round == REVIEW_STAGE_ABSTRACT?'submission.abstractReview':'submission.paperReview') + ) + ); } if($decision == SUBMISSION_DIRECTOR_DECISION_ACCEPT || $decision == SUBMISSION_DIRECTOR_DECISION_INVITE) { diff -u -r1.20.2.2 TrackDirectorSubmissionDAO.inc.php --- classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php 13 Jul 2009 16:45:58 -0000 1.20.2.2 +++ classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php 1 Dec 2009 14:56:07 -0000 @@ -162,7 +162,7 @@ } // Update director decisions; hacked necessarily to iterate by reference. - for ($i = 1; $i <= $trackDirectorSubmission->getCurrentStage(); $i++) { + foreach (array(REVIEW_STAGE_ABSTRACT, REVIEW_STAGE_PRESENTATION) as $i) { $directorDecisions = $trackDirectorSubmission->getDecisions($i); $insertedDecision = false; if (is_array($directorDecisions)) { diff -u -r1.23.2.11 TrackSubmissionHandler.inc.php --- pages/presenter/TrackSubmissionHandler.inc.php 11 Sep 2009 22:21:21 -0000 1.23.2.11 +++ pages/presenter/TrackSubmissionHandler.inc.php 1 Dec 2009 14:56:11 -0000 @@ -95,8 +95,10 @@ $templateMgr->assign_by_ref('revisedFile', $submission->getRevisedFile()); $templateMgr->assign_by_ref('suppFiles', $submission->getSuppFiles()); - import('submission.trackDirector.TrackDirectorSubmission'); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + // FIXME: Presenter code should not use track director object + $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); + $trackDirectorSubmission =& $trackDirectorSubmissionDao->getTrackDirectorSubmission($submission->getPaperId()); + $templateMgr->assign_by_ref('directorDecisionOptions', $trackDirectorSubmission->getDirectorDecisionOptions()); $templateMgr->assign('helpTopicId','editorial.authorsRole'); $templateMgr->display('presenter/submission.tpl'); @@ -150,9 +152,10 @@ $templateMgr->assign_by_ref('suppFiles', $presenterSubmission->getSuppFiles()); $templateMgr->assign('lastDirectorDecision', $lastDecision); - // Bring in director decision options - import('submission.trackDirector.TrackDirectorSubmission'); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + // FIXME: Presenter code should not use track director object + $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); + $trackDirectorSubmission =& $trackDirectorSubmissionDao->getTrackDirectorSubmission($presenterSubmission->getPaperId()); + $templateMgr->assign_by_ref('directorDecisionOptions', $trackDirectorSubmission->getDirectorDecisionOptions()); // Determine whether or not certain features should be disabled (i.e. past deadline) $templateMgr->assign('mayEditPaper', PresenterAction::mayEditPaper($presenterSubmission)); diff -u -r1.34.2.9 SubmissionEditHandler.inc.php --- pages/trackDirector/SubmissionEditHandler.inc.php 13 Jul 2009 16:45:58 -0000 1.34.2.9 +++ pages/trackDirector/SubmissionEditHandler.inc.php 1 Dec 2009 14:56:13 -0000 @@ -99,7 +99,7 @@ $templateMgr->assign_by_ref('cancelsAndRegrets', $cancelsAndRegrets); $templateMgr->assign_by_ref('reviewFilesByStage', $reviewFilesByStage); $templateMgr->assign_by_ref('directorDecisions', $directorDecisions); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + $templateMgr->assign_by_ref('directorDecisionOptions', $submission->getDirectorDecisionOptions()); $templateMgr->assign('rateReviewerOnQuality', $schedConf->getSetting('rateReviewerOnQuality')); import('submission.reviewAssignment.ReviewAssignment'); @@ -208,7 +208,7 @@ $templateMgr->assign('rateReviewerOnQuality', $schedConf->getSetting('rateReviewerOnQuality')); $templateMgr->assign('showPeerReviewOptions', $showPeerReviewOptions); $templateMgr->assign_by_ref('tracks', $tracks->toArray()); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + $templateMgr->assign_by_ref('directorDecisionOptions', $submission->getDirectorDecisionOptions()); $templateMgr->assign_by_ref('lastDecision', $lastDecision); $templateMgr->assign_by_ref('directorDecisions', $directorDecisions); @@ -310,20 +310,20 @@ Request::redirect(null, null, null, 'submission', $paperId); } - function recordDecision() { + function recordDecision($args) { $paperId = Request::getUserVar('paperId'); - list($conference, $schedConf, $submission) = SubmissionEditHandler::validate($paperId, TRACK_DIRECTOR_ACCESS_REVIEW); - - $stage = $submission->getCurrentStage(); - $decision = Request::getUserVar('decision'); + $stage = (int) array_shift($args); + list($conference, $schedConf, $submission) = SubmissionEditHandler::validate($paperId, TRACK_DIRECTOR_ACCESS_REVIEW); - // If the director changes the decision from invite to revisions - // required or decline, roll back to abstract review stage - if($submission->getCurrentStage() == REVIEW_STAGE_PRESENTATION && - ($decision == SUBMISSION_DIRECTOR_DECISION_PENDING_REVISIONS || $decision == SUBMISSION_DIRECTOR_DECISION_DECLINE)) { + // If the director changes the decision on the first round to + // something other than "invite" (or "accept" -- necessary?), + // roll back to the abstract review stage. + if ( + $submission->getCurrentStage() == REVIEW_STAGE_PRESENTATION && + $stage == REVIEW_STAGE_ABSTRACT + ) { $submission->setCurrentStage(REVIEW_STAGE_ABSTRACT); - $submission->setSubmissionProgress(2); $stage = REVIEW_STAGE_ABSTRACT; // Now, unassign all reviewers from the paper review @@ -333,14 +333,14 @@ } } - TrackDirectorAction::recordDecision($submission, $decision); + 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); + TrackDirectorAction::recordDecision($submission, $decision, $stage); break; } } diff -u -r1.28.2.2 TrackDirectorHandler.inc.php --- pages/trackDirector/TrackDirectorHandler.inc.php 8 Apr 2009 20:45:45 -0000 1.28.2.2 +++ pages/trackDirector/TrackDirectorHandler.inc.php 1 Dec 2009 14:56:14 -0000 @@ -253,9 +253,9 @@ SubmissionEditHandler::changeTypeConst(); } - function recordDecision() { + function recordDecision($args) { import('pages.trackDirector.SubmissionEditHandler'); - SubmissionEditHandler::recordDecision(); + SubmissionEditHandler::recordDecision($args); } function selectReviewer($args) { diff -u -r1.14.2.1 directorDecision.tpl --- templates/trackDirector/submission/directorDecision.tpl 8 Apr 2009 20:45:52 -0000 1.14.2.1 +++ templates/trackDirector/submission/directorDecision.tpl 1 Dec 2009 14:56:18 -0000 @@ -15,7 +15,7 @@