/** * Upload the submission file. * @param $fileName string * @return boolean */ function uploadSubmissionFile($fileName) { import("file.PaperFileManager"); $paperFileManager = new PaperFileManager($this->paperId); $paperDao =& DAORegistry::getDAO('PaperDAO'); if ($paperFileManager->uploadError($fileName)) { return false; } if ($paperFileManager->uploadedFileExists($fileName)) { // upload new submission file, overwriting previous if necessary $submissionFileId = $paperFileManager->uploadSubmissionFile($fileName, $this->paper->getSubmissionFileId(), true); } if (isset($submissionFileId)) { $this->paper->setSubmissionFileId($submissionFileId); $paperDao->updatePaper($this->paper); return true; } else { return false; } }
/** * Upload the annotated version of a paper. * @param $reviewId int */ function uploadReviewerVersion($reviewId) { import('file.PaperFileManager'); $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $reviewAssignment =& $reviewAssignmentDao->getReviewAssignmentById($reviewId); $paperFileManager = new PaperFileManager($reviewAssignment->getPaperId()); // Only upload the file if the reviewer has yet to submit a recommendation if (!(($reviewAssignment->getRecommendation() === null || $reviewAssignment->getRecommendation() === '') && !$reviewAssignment->getCancelled())) { return false; } $fileName = 'upload'; if ($paperFileManager->uploadError($fileName)) { return false; } if (!$paperFileManager->uploadedFileExists($fileName)) { return false; } HookRegistry::call('ReviewerAction::uploadReviewFile', array(&$reviewAssignment)); if ($reviewAssignment->getReviewerFileId() != null) { $fileId = $paperFileManager->uploadReviewFile($fileName, $reviewAssignment->getReviewerFileId()); } else { $fileId = $paperFileManager->uploadReviewFile($fileName); } if ($fileId == 0) { return false; } $reviewAssignment->setReviewerFileId($fileId); $reviewAssignment->stampModified(); $reviewAssignmentDao->updateReviewAssignment($reviewAssignment); // Add log import('paper.log.PaperLog'); import('paper.log.PaperEventLogEntry'); $userDao =& DAORegistry::getDAO('UserDAO'); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); $entry = new PaperEventLogEntry(); $entry->setPaperId($reviewAssignment->getPaperId()); $entry->setUserId($reviewer->getId()); $entry->setDateLogged(Core::getCurrentDate()); $entry->setEventType(PAPER_LOG_REVIEW_FILE); $entry->setLogMessage('log.review.reviewerFile'); $entry->setAssocType(LOG_TYPE_REVIEW); $entry->setAssocId($reviewAssignment->getId()); PaperLog::logEventEntry($reviewAssignment->getPaperId(), $entry); return true; }
/** * Upload the revised version of a paper. * @param $authorSubmission object */ function uploadRevisedVersion($authorSubmission) { import('file.PaperFileManager'); $paperFileManager = new PaperFileManager($authorSubmission->getPaperId()); $authorSubmissionDao =& DAORegistry::getDAO('AuthorSubmissionDAO'); $fileName = 'upload'; if ($paperFileManager->uploadError($fileName)) { return false; } if (!$paperFileManager->uploadedFileExists($fileName)) { return false; } HookRegistry::call('AuthorAction::uploadRevisedVersion', array(&$authorSubmission)); if ($authorSubmission->getRevisedFileId() != null) { $fileId = $paperFileManager->uploadDirectorDecisionFile($fileName, $authorSubmission->getRevisedFileId()); } else { $fileId = $paperFileManager->uploadDirectorDecisionFile($fileName); } if (!$fileId) { return false; } $authorSubmission->setRevisedFileId($fileId); $authorSubmissionDao->updateAuthorSubmission($authorSubmission); // Add log entry $user =& Request::getUser(); import('paper.log.PaperLog'); import('paper.log.PaperEventLogEntry'); PaperLog::logEvent($authorSubmission->getPaperId(), PAPER_LOG_AUTHOR_REVISION, LOG_TYPE_AUTHOR, $user->getId(), 'log.author.documentRevised', array('authorName' => $user->getFullName(), 'fileId' => $fileId, 'paperId' => $authorSubmission->getPaperId())); }
/** * Upload a review on behalf of its reviewer. * @param $reviewId int */ function uploadReviewForReviewer($reviewId) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $user =& Request::getUser(); $reviewAssignment =& $reviewAssignmentDao->getReviewAssignmentById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId(), true); if (HookRegistry::call('TrackDirectorAction::uploadReviewForReviewer', array(&$reviewAssignment, &$reviewer))) { return; } // Upload the review file. import('file.PaperFileManager'); $paperFileManager = new PaperFileManager($reviewAssignment->getPaperId()); // Only upload the file if the reviewer has yet to submit a recommendation if (($reviewAssignment->getRecommendation() === null || $reviewAssignment->getRecommendation() === '') && !$reviewAssignment->getCancelled()) { $fileName = 'upload'; if ($paperFileManager->uploadError($fileName)) { return false; } if ($paperFileManager->uploadedFileExists($fileName)) { if ($reviewAssignment->getReviewerFileId() != null) { $fileId = $paperFileManager->uploadReviewFile($fileName, $reviewAssignment->getReviewerFileId()); } else { $fileId = $paperFileManager->uploadReviewFile($fileName); } } } if (isset($fileId) && $fileId != 0) { // Only confirm the review for the reviewer if // he has not previously done so. if ($reviewAssignment->getDateConfirmed() == null) { $reviewAssignment->setDeclined(0); $reviewAssignment->setDateConfirmed(Core::getCurrentDate()); } $reviewAssignment->setReviewerFileId($fileId); $reviewAssignment->stampModified(); $reviewAssignmentDao->updateReviewAssignment($reviewAssignment); // Add log import('paper.log.PaperLog'); import('paper.log.PaperEventLogEntry'); $entry = new PaperEventLogEntry(); $entry->setPaperId($reviewAssignment->getPaperId()); $entry->setUserId($user->getId()); $entry->setDateLogged(Core::getCurrentDate()); $entry->setEventType(PAPER_LOG_REVIEW_FILE_BY_PROXY); $entry->setLogMessage('log.review.reviewFileByProxy', array('reviewerName' => $reviewer->getFullName(), 'paperId' => $reviewAssignment->getPaperId(), 'stage' => $reviewAssignment->getStage(), 'userName' => $user->getFullName())); $entry->setAssocType(LOG_TYPE_REVIEW); $entry->setAssocId($reviewAssignment->getId()); PaperLog::logEventEntry($reviewAssignment->getPaperId(), $entry); } }