Open Journal Systems  3.3.0
ReinstateReviewerForm.inc.php
1 <?php
15 import('lib.pkp.controllers.grid.users.reviewer.form.ReviewerNotifyActionForm');
16 
24  public function __construct($reviewAssignment, $reviewRound, $submission) {
25  parent::__construct($reviewAssignment, $reviewRound, $submission, 'controllers/grid/users/reviewer/form/reinstateReviewerForm.tpl');
26  }
27 
31  protected function getEmailKey() {
32  return 'REVIEW_REINSTATE';
33  }
34 
39  public function execute(...$functionArgs) {
40  if (!parent::execute(...$functionArgs)) return false;
41 
42  $request = Application::get()->getRequest();
43  $submission = $this->getSubmission();
44  $reviewAssignment = $this->getReviewAssignment();
45 
46  // Reinstate the review assignment.
47  $submissionDao = DAORegistry::getDAO('SubmissionDAO'); /* @var $submissionDao SubmissionDAO */
48  $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); /* @var $reviewAssignmentDao ReviewAssignmentDAO */
49  $userDao = DAORegistry::getDAO('UserDAO'); /* @var $userDao UserDAO */
50 
51  if (isset($reviewAssignment) && $reviewAssignment->getSubmissionId() == $submission->getId() && !HookRegistry::call('EditorAction::reinstateReview', array(&$submission, $reviewAssignment))) {
52  $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
53  if (!isset($reviewer)) return false;
54 
55  $reviewAssignment->setCancelled(false);
56  $reviewAssignmentDao->updateObject($reviewAssignment);
57 
58  // Stamp the modification date
59  $submission->stampModified();
60  $submissionDao->updateObject($submission);
61 
62  // Insert a trivial notification to indicate the reviewer was reinstated successfully.
63  $currentUser = $request->getUser();
64  $notificationMgr = new NotificationManager();
65  $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => __('notification.reinstatedReviewer')));
66 
67  // Add log
68  import('lib.pkp.classes.log.SubmissionLog');
69  import('classes.log.SubmissionEventLogEntry');
70  SubmissionLog::logEvent($request, $submission, SUBMISSION_LOG_REVIEW_REINSTATED, 'log.review.reviewReinstated', array('reviewAssignmentId' => $reviewAssignment->getId(), 'reviewerName' => $reviewer->getFullName(), 'submissionId' => $submission->getId(), 'stageId' => $reviewAssignment->getStageId(), 'round' => $reviewAssignment->getRound()));
71 
72  return true;
73  }
74  return false;
75  }
76 }
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
ReviewerNotifyActionForm\getReviewAssignment
getReviewAssignment()
Definition: ReviewerNotifyActionForm.inc.php:143
SubmissionLog\logEvent
static logEvent($request, $submission, $eventType, $messageKey, $params=array())
Definition: SubmissionLog.inc.php:34
ReviewerNotifyActionForm
Perform an action on a review including a reviewer notification email.
Definition: ReviewerNotifyActionForm.inc.php:17
ReinstateReviewerForm
Allow the editor to reinstate a cancelled review assignment.
Definition: ReinstateReviewerForm.inc.php:17
ReinstateReviewerForm\execute
execute(... $functionArgs)
Definition: ReinstateReviewerForm.inc.php:39
ReviewerNotifyActionForm\getSubmission
getSubmission()
Definition: ReviewerNotifyActionForm.inc.php:175
NotificationManager
Definition: NotificationManager.inc.php:19
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
ReinstateReviewerForm\__construct
__construct($reviewAssignment, $reviewRound, $submission)
Definition: ReinstateReviewerForm.inc.php:24
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
ReinstateReviewerForm\getEmailKey
getEmailKey()
Definition: ReinstateReviewerForm.inc.php:31