diff -u -r1.67 TrackDirectorAction.inc.php --- classes/submission/trackDirector/TrackDirectorAction.inc.php 7 Oct 2009 00:25:16 -0000 1.67 +++ classes/submission/trackDirector/TrackDirectorAction.inc.php 1 Dec 2009 15:19:19 -0000 @@ -59,8 +59,9 @@ * Records a director's submission decision. * @param $trackDirectorSubmission object * @param $decision int + * @param $stage int */ - function recordDecision($trackDirectorSubmission, $decision) { + function recordDecision($trackDirectorSubmission, $decision, $stage) { $editAssignments =& $trackDirectorSubmission->getEditAssignments(); if (empty($editAssignments)) return; @@ -82,13 +83,25 @@ $trackDirectorSubmission->stampStatusModified(); } - $trackDirectorSubmission->addDecision($directorDecision, $trackDirectorSubmission->getCurrentStage()); + $trackDirectorSubmission->addDecision($directorDecision, $stage); $decisions = TrackDirectorSubmission::getDirectorDecisionOptions(); // Add log import('paper.log.PaperLog'); import('paper.log.PaperEventLogEntry'); Locale::requireComponents(array(LOCALE_COMPONENT_APPLICATION_COMMON, LOCALE_COMPONENT_OCS_DIRECTOR)); - PaperLog::logEvent($trackDirectorSubmission->getPaperId(), PAPER_LOG_DIRECTOR_DECISION, LOG_TYPE_DIRECTOR, $user->getId(), '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->getId(), + 'log.director.decision', + array( + 'directorName' => $user->getFullName(), + 'paperId' => $trackDirectorSubmission->getPaperId(), + 'decision' => Locale::translate($decisions[$decision]), + 'round' => ($stage == REVIEW_STAGE_ABSTRACT?'submission.abstractReview':'submission.paperReview') + ) + ); } if($decision == SUBMISSION_DIRECTOR_DECISION_ACCEPT || $decision == SUBMISSION_DIRECTOR_DECISION_INVITE) { diff -u -r1.33 TrackDirectorSubmissionDAO.inc.php --- classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php 13 Jul 2009 16:54:11 -0000 1.33 +++ classes/submission/trackDirector/TrackDirectorSubmissionDAO.inc.php 1 Dec 2009 15:19:20 -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.18 TrackSubmissionHandler.inc.php --- pages/author/TrackSubmissionHandler.inc.php 28 Oct 2009 23:10:43 -0000 1.18 +++ pages/author/TrackSubmissionHandler.inc.php 1 Dec 2009 15:19:22 -0000 @@ -115,8 +115,10 @@ $controlledVocabDao =& DAORegistry::getDAO('ControlledVocabDAO'); $templateMgr->assign('sessionTypes', $controlledVocabDao->enumerateBySymbolic('sessionTypes', ASSOC_TYPE_SCHED_CONF, $schedConf->getId())); - import('submission.trackDirector.TrackDirectorSubmission'); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + // FIXME: Author 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('author/submission.tpl'); @@ -172,9 +174,10 @@ $templateMgr->assign_by_ref('suppFiles', $authorSubmission->getSuppFiles()); $templateMgr->assign('lastDirectorDecision', $lastDecision); - // Bring in director decision options - import('submission.trackDirector.TrackDirectorSubmission'); - $templateMgr->assign_by_ref('directorDecisionOptions', TrackDirectorSubmission::getDirectorDecisionOptions()); + // FIXME: Author code should not use track director object + $trackDirectorSubmissionDao =& DAORegistry::getDAO('TrackDirectorSubmissionDAO'); + $trackDirectorSubmission =& $trackDirectorSubmissionDao->getTrackDirectorSubmission($authorSubmission->getPaperId()); + $templateMgr->assign_by_ref('directorDecisionOptions', $trackDirectorSubmission->getDirectorDecisionOptions()); // Determine whether or not certain features should be disabled (i.e. past deadline) $templateMgr->assign('mayEditPaper', AuthorAction::mayEditPaper($authorSubmission)); diff -u -r1.71 SubmissionEditHandler.inc.php --- pages/trackDirector/SubmissionEditHandler.inc.php 29 Oct 2009 00:10:08 -0000 1.71 +++ pages/trackDirector/SubmissionEditHandler.inc.php 1 Dec 2009 15:19:24 -0000 @@ -345,30 +345,23 @@ Request::redirect(null, null, null, 'submission', $paperId); } - function recordDecision() { - $paperId = Request::getUserVar('paperId'); + 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; - $stage = $submission->getCurrentStage(); - - $decision = Request::getUserVar('decision'); - - // If the director requires revisions for the presentation, reset reviews - if($submission->getCurrentStage() == REVIEW_STAGE_PRESENTATION && - ($decision == SUBMISSION_DIRECTOR_DECISION_PENDING_REVISIONS || $decision == SUBMISSION_DIRECTOR_DECISION_DECLINE)) { - $submission->setCurrentStage(REVIEW_STAGE_PRESENTATION); - $submission->setSubmissionProgress(2); - $stage = REVIEW_STAGE_PRESENTATION; - - TrackDirectorAction::recordDecision($submission, $decision); - } else if($submission->getCurrentStage() == REVIEW_STAGE_ABSTRACT && - ($decision == SUBMISSION_DIRECTOR_DECISION_PENDING_REVISIONS || $decision == SUBMISSION_DIRECTOR_DECISION_DECLINE)) { + // 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); - $submission->setSubmissionProgress(3); - $stage = REVIEW_STAGE_ABSTRACT; // Now, unassign all reviewers from the paper review foreach ($submission->getReviewAssignments(REVIEW_STAGE_PRESENTATION) as $reviewAssignment) { @@ -377,14 +370,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.19 directorDecision.tpl --- templates/trackDirector/submission/directorDecision.tpl 26 May 2009 01:30:57 -0000 1.19 +++ templates/trackDirector/submission/directorDecision.tpl 1 Dec 2009 15:19:28 -0000 @@ -15,7 +15,7 @@ {translate key="director.paper.selectDecision"} -
+