17 import(
'lib.pkp.classes.form.Form');
31 $this->_reviewAssignment = $reviewAssignment;
32 assert(is_a($this->_reviewAssignment,
'ReviewAssignment'));
35 $this->_reviewRound = $reviewRoundDao->getById($reviewAssignment->getReviewRoundId());
36 assert(is_a($this->_reviewRound,
'ReviewRound'));
38 parent::__construct(
'controllers/grid/users/reviewer/form/editReviewForm.tpl');
41 $this->
addCheck(
new FormValidator($this,
'responseDueDate',
'required',
'editor.review.errorAddingReviewer'));
42 $this->
addCheck(
new FormValidator($this,
'reviewDueDate',
'required',
'editor.review.errorAddingReviewer'));
54 $this->
setData(
'responseDueDate', $this->_reviewAssignment->getDateResponseDue());
55 $this->
setData(
'reviewDueDate', $this->_reviewAssignment->getDateDue());
56 return parent::initData();
63 function fetch($request, $template =
null, $display =
false) {
66 $context = $request->getContext();
68 if (!$this->_reviewAssignment->getDateCompleted()){
71 $reviewForms = array();
72 while ($reviewForm = $reviewFormsIterator->next()) {
73 $reviewForms[$reviewForm->getId()] = $reviewForm->getLocalizedTitle();
75 $templateMgr->assign(array(
76 'reviewForms' => $reviewForms,
77 'reviewFormId' => $this->_reviewAssignment->getReviewFormId(),
81 $templateMgr->assign(array(
82 'stageId' => $this->_reviewAssignment->getStageId(),
83 'reviewRoundId' => $this->_reviewRound->getId(),
84 'submissionId' => $this->_reviewAssignment->getSubmissionId(),
85 'reviewAssignmentId' => $this->_reviewAssignment->getId(),
86 'reviewMethod' => $this->_reviewAssignment->getReviewMethod(),
87 'reviewMethods' => $reviewAssignmentDao->getReviewMethodsTranslationKeys(),
89 return parent::fetch($request, $template, $display);
110 function execute(...$functionArgs) {
112 $context = $request->getContext();
116 import(
'lib.pkp.classes.submission.SubmissionFile');
117 $submissionFiles = $submissionFileDao->getLatestRevisionsByReviewRound($this->_reviewRound, SUBMISSION_FILE_REVIEW_FILE);
118 $selectedFiles = (array) $this->
getData(
'selectedFiles');
122 $reviewFilesDao->revokeByReviewId($this->_reviewAssignment->getId());
123 foreach ($submissionFiles as $submissionFile) {
124 if (in_array($submissionFile->getFileId(), $selectedFiles)) {
125 $reviewFilesDao->grant($this->_reviewAssignment->getId(), $submissionFile->getFileId());
130 $reviewAssignment = $reviewAssignmentDao->getReviewAssignment($this->_reviewRound->getId(), $this->_reviewAssignment->getReviewerId(), $this->_reviewRound->getRound(), $this->_reviewRound->getStageId());
133 if (strtotime($reviewAssignment->getDateDue()) != strtotime($this->
getData(
'reviewDueDate')) || strtotime($reviewAssignment->getDateResponseDue()) != strtotime($this->
getData(
'responseDueDate')) || $reviewAssignment->getReviewMethod() != $this->getData(
'reviewMethod')){
136 $context = $request->getContext();
138 $notificationManager->createNotification(
140 $reviewAssignment->getReviewerId(),
141 NOTIFICATION_TYPE_REVIEW_ASSIGNMENT_UPDATED,
143 ASSOC_TYPE_REVIEW_ASSIGNMENT,
144 $reviewAssignment->getId(),
145 NOTIFICATION_LEVEL_TASK
150 $reviewAssignment->setDateDue($this->
getData(
'reviewDueDate'));
151 $reviewAssignment->setDateResponseDue($this->
getData(
'responseDueDate'));
152 $reviewAssignment->setReviewMethod($this->
getData(
'reviewMethod'));
154 if (!$reviewAssignment->getDateCompleted()){
156 $reviewFormId = (int) $this->
getData(
'reviewFormId');
159 $reviewAssignment->setReviewFormId($reviewForm?$reviewFormId:
null);
162 $reviewAssignmentDao->updateObject($reviewAssignment);
163 parent::execute(...$functionArgs);