/** * Internal function to return a MonographEventLogEntry object from a row. * @param $row array * @return MonographEventLogEntry */ function &_returnLogEntryFromRow(&$row) { $entry = new MonographEventLogEntry(); $entry->setLogId($row['log_id']); $entry->setMonographId($row['monograph_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->setMessage($row['message']); HookRegistry::call('MonographEventLogDAO::_returnLogEntryFromRow', array(&$entry, &$row)); return $entry; }
/** * Records whether or not the reviewer accepts the review assignment. * @param $reviewerSubmission object * @param $decline boolean * @param $send boolean */ function confirmReview($request, $reviewerSubmission, $decline, $send) { $reviewAssignmentDao =& DAORegistry::getDAO('ReviewAssignmentDAO'); $userDao =& DAORegistry::getDAO('UserDAO'); $reviewId = $reviewerSubmission->getReviewId(); $reviewAssignment =& $reviewAssignmentDao->getById($reviewId); $reviewer =& $userDao->getUser($reviewAssignment->getReviewerId()); if (!isset($reviewer)) { return true; } // Only confirm the review for the reviewer if // he has not previously done so. if ($reviewAssignment->getDateConfirmed() == null) { import('classes.mail.MonographMailTemplate'); $email = new MonographMailTemplate($reviewerSubmission, $decline ? 'REVIEW_DECLINE' : 'REVIEW_CONFIRM'); // Must explicitly set sender because we may be here on an access // key, in which case the user is not technically logged in $email->setFrom($reviewer->getEmail(), $reviewer->getFullName()); if (!$email->isEnabled() || $send && !$email->hasErrors()) { HookRegistry::call('ReviewerAction::confirmReview', array(&$request, &$reviewerSubmission, &$email, $decline)); if ($email->isEnabled()) { $email->setEventType($decline ? MONOGRAPH_EMAIL_REVIEW_DECLINE : MONOGRAPH_EMAIL_REVIEW_CONFIRM); $email->send($request); } $reviewAssignment->setDeclined($decline); $reviewAssignment->setDateConfirmed(Core::getCurrentDate()); $reviewAssignment->stampModified(); $reviewAssignmentDao->updateObject($reviewAssignment); // Add log import('classes.log.MonographLog'); import('classes.log.MonographEventLogEntry'); $entry = new MonographEventLogEntry(); $entry->setMonographId($reviewAssignment->getSubmissionId()); $entry->setUserId($reviewer->getId()); $entry->setDateLogged(Core::getCurrentDate()); $entry->setEventType($decline ? MONOGRAPH_LOG_REVIEW_DECLINE : MONOGRAPH_LOG_REVIEW_ACCEPT); MonographLog::logEvent($request, $reviewerSubmission, $decline ? MONOGRAPH_LOG_REVIEW_DECLINE : MONOGRAPH_LOG_REVIEW_ACCEPT, $decline ? 'log.review.reviewDeclined' : 'log.review.reviewAccepted', array('reviewerName' => $reviewer->getFullName(), 'monographId' => $reviewAssignment->getSubmissionId(), 'round' => $reviewAssignment->getRound())); return true; } else { if (!$request->getUserVar('continued')) { $assignedEditors = $email->ccAssignedEditors($reviewerSubmission->getId()); $reviewingSeriesEditors = $email->toAssignedReviewingSeriesEditors($reviewerSubmission->getId()); if (empty($assignedEditors) && empty($reviewingSeriesEditors)) { $press =& $request->getPress(); $email->addRecipient($press->getSetting('contactEmail'), $press->getSetting('contactName')); $editorialContactName = $press->getSetting('contactName'); } else { if (!empty($reviewingSeriesEditors)) { $editorialContact = array_shift($reviewingSeriesEditors); } else { $editorialContact = array_shift($assignedEditors); } $editorialContactName = $editorialContact->getEditorFullName(); } // Format the review due date $reviewDueDate = strtotime($reviewAssignment->getDateDue()); $dateFormatShort = Config::getVar('general', 'date_format_short'); if ($reviewDueDate == -1) { $reviewDueDate = $dateFormatShort; } else { $reviewDueDate = strftime($dateFormatShort, $reviewDueDate); } $email->assignParams(array('editorialContactName' => $editorialContactName, 'reviewerName' => $reviewer->getFullName(), 'reviewDueDate' => $reviewDueDate)); } $paramArray = array('reviewId' => $reviewId); if ($decline) { $paramArray['declineReview'] = 1; } $email->displayEditForm($request->url(null, 'reviewer', 'confirmReview'), $paramArray); return false; } } return true; }
/** * Log an event for this file * @param $args array * @param $request PKPRequest */ function _logEvent($itemId, $eventType, $userId) { assert(!empty($itemId) && !empty($eventType) && !empty($userId)); // Get the log event message switch ($eventType) { case MONOGRAPH_LOG_NOTE_POSTED: $logMessage = 'informationCenter.history.notePosted'; break; case MONOGRAPH_LOG_MESSAGE_SENT: $logMessage = 'informationCenter.history.messageSent'; break; } // Get the file in question to get the monograph Id $submissionFileDao =& DAORegistry::getDAO('SubmissionFileDAO'); /* @var $submissionFileDao SubmissionFileDAO */ $monographFile =& $submissionFileDao->getLatestRevision($itemId); $entry = new MonographEventLogEntry(); $entry->setMonographId($monographFile->getMonographId()); $entry->setUserId($userId); $entry->setDateLogged(Core::getCurrentDate()); $entry->setEventType($eventType); $entry->setLogMessage($logMessage); $entry->setAssocType(ASSOC_TYPE_MONOGRAPH_FILE); $entry->setAssocId($itemId); import('classes.monograph.log.MonographLog'); MonographLog::logEventEntry($monographFile->getMonographId(), $entry); }
/** * Log an event for this file */ function _logEvent($monographId, $eventType, $userId) { assert(!empty($monographId) && !empty($eventType) && !empty($userId)); // Get the log event message switch ($eventType) { case MONOGRAPH_LOG_NOTE_POSTED: $logMessage = 'informationCenter.history.notePosted'; break; case MONOGRAPH_LOG_MESSAGE_SENT: $logMessage = 'informationCenter.history.messageSent'; break; } $entry = new MonographEventLogEntry(); $entry->setMonographId($monographId); $entry->setUserId($userId); $entry->setDateLogged(Core::getCurrentDate()); $entry->setEventType($eventType); $entry->setLogMessage($logMessage); import('classes.monograph.log.MonographLog'); MonographLog::logEventEntry($monographId, $entry); }