Open Journal Systems  3.3.0
UnassignReviewerForm.inc.php
1 <?php
15 import('lib.pkp.controllers.grid.users.reviewer.form.ReviewerNotifyActionForm');
16 
24  function __construct($reviewAssignment, $reviewRound, $submission) {
25  parent::__construct($reviewAssignment, $reviewRound, $submission, 'controllers/grid/users/reviewer/form/unassignReviewerForm.tpl');
26  }
27 
31  public function getEmailKey() {
32  return 'REVIEW_CANCEL';
33  }
34 
39  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  // Delete or cancel 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::clearReview', array(&$submission, $reviewAssignment))) {
52  $reviewer = $userDao->getById($reviewAssignment->getReviewerId());
53  if (!isset($reviewer)) return false;
54  if ($reviewAssignment->getDateConfirmed()) {
55  // The review has been confirmed but not completed. Flag it as cancelled.
56  $reviewAssignment->setCancelled(true);
57  $reviewAssignmentDao->updateObject($reviewAssignment);
58  } else {
59  // The review had not been confirmed yet. Delete the assignment.
60  $reviewAssignmentDao->deleteById($reviewAssignment->getId());
61  }
62 
63  // Stamp the modification date
64  $submission->stampModified();
65  $submissionDao->updateObject($submission);
66 
67  $notificationDao = DAORegistry::getDAO('NotificationDAO'); /* @var $notificationDao NotificationDAO */
68  $notificationDao->deleteByAssoc(
69  ASSOC_TYPE_REVIEW_ASSIGNMENT,
70  $reviewAssignment->getId(),
71  $reviewAssignment->getReviewerId(),
72  NOTIFICATION_TYPE_REVIEW_ASSIGNMENT
73  );
74 
75  // Insert a trivial notification to indicate the reviewer was removed successfully.
76  $currentUser = $request->getUser();
77  $notificationMgr = new NotificationManager();
78  $notificationMgr->createTrivialNotification($currentUser->getId(), NOTIFICATION_TYPE_SUCCESS, array('contents' => $reviewAssignment->getDateConfirmed()?__('notification.cancelledReviewer'):__('notification.removedReviewer')));
79 
80  // Add log
81  import('lib.pkp.classes.log.SubmissionLog');
82  import('classes.log.SubmissionEventLogEntry');
83  SubmissionLog::logEvent($request, $submission, SUBMISSION_LOG_REVIEW_CLEAR, 'log.review.reviewCleared', array('reviewAssignmentId' => $reviewAssignment->getId(), 'reviewerName' => $reviewer->getFullName(), 'submissionId' => $submission->getId(), 'stageId' => $reviewAssignment->getStageId(), 'round' => $reviewAssignment->getRound()));
84 
85  return true;
86  }
87  return false;
88  }
89 }
DAORegistry\getDAO
static & getDAO($name, $dbconn=null)
Definition: DAORegistry.inc.php:57
ReviewerNotifyActionForm\getReviewAssignment
getReviewAssignment()
Definition: ReviewerNotifyActionForm.inc.php:143
UnassignReviewerForm\execute
execute(... $functionArgs)
Definition: UnassignReviewerForm.inc.php:39
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
UnassignReviewerForm\__construct
__construct($reviewAssignment, $reviewRound, $submission)
Definition: UnassignReviewerForm.inc.php:24
ReviewerNotifyActionForm\getSubmission
getSubmission()
Definition: ReviewerNotifyActionForm.inc.php:175
UnassignReviewerForm\getEmailKey
getEmailKey()
Definition: UnassignReviewerForm.inc.php:31
NotificationManager
Definition: NotificationManager.inc.php:19
PKPApplication\get
static get()
Definition: PKPApplication.inc.php:235
HookRegistry\call
static call($hookName, $args=null)
Definition: HookRegistry.inc.php:86
UnassignReviewerForm
Allow the editor to remove a review assignment.
Definition: UnassignReviewerForm.inc.php:17