Ejemplo n.º 1
0
 /**
  * Internal function to return an PaperEventLogEntry object from a row.
  * @param $row array
  * @return PaperEventLogEntry
  */
 function &_returnLogEntryFromRow(&$row)
 {
     $entry = new PaperEventLogEntry();
     $entry->setLogId($row['log_id']);
     $entry->setPaperId($row['paper_id']);
     $entry->setUserId($row['user_id']);
     $entry->setDateLogged($this->datetimeFromDB($row['date_logged']));
     $entry->setIPAddress($row['ip_address']);
     $entry->setLogLevel($row['log_level']);
     $entry->setEventType($row['event_type']);
     $entry->setAssocType($row['assoc_type']);
     $entry->setAssocId($row['assoc_id']);
     $entry->setIsTranslated($row['is_translated']);
     $entry->setEntryParams(unserialize($row['entry_params']));
     $entry->setMessage($row['message']);
     HookRegistry::call('PaperEventLogDAO::_returnLogEntryFromRow', array(&$entry, &$row));
     return $entry;
 }
Ejemplo n.º 2
0
 /**
  * Add a new event log entry with the specified parameters, including log level.
  * @param $paperId int
  * @param $logLevel char
  * @param $eventType int
  * @param $assocType int
  * @param $assocId int
  * @param $messageKey string
  * @param $messageParams array
  */
 function logEventLevel($paperId, $logLevel, $eventType, $assocType = 0, $assocId = 0, $messageKey = null, $messageParams = array())
 {
     $entry = new PaperEventLogEntry();
     $entry->setLogLevel($logLevel);
     $entry->setEventType($eventType);
     $entry->setAssocType($assocType);
     $entry->setAssocId($assocId);
     if (isset($messageKey)) {
         $entry->setLogMessage($messageKey, $messageParams);
     }
     return PaperLog::logEventEntry($paperId, $entry);
 }
Ejemplo n.º 3
0
 /**
  * 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;
 }
Ejemplo n.º 4
0
 /**
  * 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);
     }
 }