示例#1
0
 /**
  * Designates the original file the review version.
  * @param $authorSubmission object
  * @param $designate boolean
  */
 function designateReviewVersion($authorSubmission, $designate = false)
 {
     import('classes.file.ArticleFileManager');
     $articleFileManager = new ArticleFileManager($authorSubmission->getId());
     $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO');
     if ($designate && !HookRegistry::call('AuthorAction::designateReviewVersion', array(&$authorSubmission))) {
         $submissionFile =& $authorSubmission->getSubmissionFile();
         if ($submissionFile) {
             $reviewFileId = $articleFileManager->copyToReviewFile($submissionFile->getFileId());
             $authorSubmission->setReviewFileId($reviewFileId);
             $authorSubmissionDao->updateAuthorSubmission($authorSubmission);
             $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO');
         }
     }
 }
 /**
  * Resubmit the file for review.
  * @param $sectionEditorSubmission object
  * @param $fileId int
  * @param $revision int
  * TODO: SECURITY!
  */
 function resubmitFile($sectionEditorSubmission, $fileId, $revision, $request)
 {
     import('classes.file.ArticleFileManager');
     $articleFileManager = new ArticleFileManager($sectionEditorSubmission->getId());
     $sectionEditorSubmissionDao =& DAORegistry::getDAO('SectionEditorSubmissionDAO');
     $articleFileDao =& DAORegistry::getDAO('ArticleFileDAO');
     $user =& $request->getUser();
     if (!HookRegistry::call('SectionEditorAction::resubmitFile', array(&$sectionEditorSubmission, &$fileId, &$revision))) {
         // Increment the round
         $currentRound = $sectionEditorSubmission->getCurrentRound();
         $sectionEditorSubmission->setCurrentRound($currentRound + 1);
         $sectionEditorSubmission->stampStatusModified();
         // Copy the file from the editor decision file folder to the review file folder
         $newFileId = $articleFileManager->copyToReviewFile($fileId, $revision, $sectionEditorSubmission->getReviewFileId());
         $newReviewFile = $articleFileDao->getArticleFile($newFileId);
         $newReviewFile->setRound($sectionEditorSubmission->getCurrentRound());
         $articleFileDao->updateArticleFile($newReviewFile);
         // Copy the file from the editor decision file folder to the next-round editor file
         // $editorFileId may or may not be null after assignment
         $editorFileId = $sectionEditorSubmission->getEditorFileId() != null ? $sectionEditorSubmission->getEditorFileId() : null;
         // $editorFileId definitely will not be null after assignment
         $editorFileId = $articleFileManager->copyToEditorFile($newFileId, null, $editorFileId);
         $newEditorFile = $articleFileDao->getArticleFile($editorFileId);
         $newEditorFile->setRound($sectionEditorSubmission->getCurrentRound());
         $articleFileDao->updateArticleFile($newEditorFile);
         // The review revision is the highest revision for the review file.
         $reviewRevision = $articleFileDao->getRevisionNumber($newFileId);
         $sectionEditorSubmission->setReviewRevision($reviewRevision);
         $sectionEditorSubmissionDao->updateSectionEditorSubmission($sectionEditorSubmission);
         // Now, reassign all reviewers that submitted a review for this new round of reviews.
         $previousRound = $sectionEditorSubmission->getCurrentRound() - 1;
         foreach ($sectionEditorSubmission->getReviewAssignments($previousRound) as $reviewAssignment) {
             if ($reviewAssignment->getRecommendation() !== null && $reviewAssignment->getRecommendation() !== '') {
                 // Then this reviewer submitted a review.
                 SectionEditorAction::addReviewer($sectionEditorSubmission, $reviewAssignment->getReviewerId(), $sectionEditorSubmission->getCurrentRound(), $request);
             }
         }
         // Add log
         import('classes.article.log.ArticleLog');
         ArticleLog::logEvent($request, $sectionEditorSubmission, ARTICLE_LOG_REVIEW_RESUBMIT, 'log.review.resubmit');
     }
 }