Skip to content

Commit bb5b711

Browse files
committed
#4789 Due date fields added for declined review request resending
1 parent 0476029 commit bb5b711

File tree

3 files changed

+64
-15
lines changed

3 files changed

+64
-15
lines changed

controllers/grid/users/reviewer/form/ResendRequestReviewerForm.php

+38-4
Original file line numberDiff line numberDiff line change
@@ -2,8 +2,8 @@
22
/**
33
* @file controllers/grid/users/reviewer/form/ResendRequestReviewerForm.php
44
*
5-
* Copyright (c) 2014-2022 Simon Fraser University
6-
* Copyright (c) 2003-2022 John Willinsky
5+
* Copyright (c) 2014-2024 Simon Fraser University
6+
* Copyright (c) 2003-2024 John Willinsky
77
* Distributed under the GNU GPL v3. For full terms see the file docs/COPYING.
88
*
99
* @class ResendRequestReviewerForm
@@ -35,7 +35,6 @@ class ResendRequestReviewerForm extends ReviewerNotifyActionForm
3535
{
3636
/**
3737
* Constructor
38-
*
3938
*/
4039
public function __construct(ReviewAssignment $reviewAssignment, ReviewRound $reviewRound, Submission $submission)
4140
{
@@ -45,21 +44,54 @@ public function __construct(ReviewAssignment $reviewAssignment, ReviewRound $rev
4544
$submission,
4645
'controllers/grid/users/reviewer/form/resendRequestReviewerForm.tpl'
4746
);
47+
48+
// Validation checks for this form
49+
$this->addCheck(new \PKP\form\validation\FormValidator($this, 'responseDueDate', 'required', 'editor.review.errorAddingReviewer'));
50+
$this->addCheck(new \PKP\form\validation\FormValidator($this, 'reviewDueDate', 'required', 'editor.review.errorAddingReviewer'));
4851
}
4952

53+
/**
54+
* @copydoc \PKP\controllers\grid\users\reviewer\form\ReviewerNotifyActionForm::getMailable()
55+
*/
5056
protected function getMailable(Context $context, Submission $submission, ReviewAssignment $reviewAssignment): Mailable
5157
{
5258
return new ReviewerResendRequest($context, $submission, $reviewAssignment);
5359
}
5460

5561
/**
56-
* @copydoc ReviewerNotifyActionForm::getEmailKey()
62+
* @copydoc \PKP\controllers\grid\users\reviewer\form\ReviewerNotifyActionForm::getEmailKey()
5763
*/
5864
protected function getEmailKey()
5965
{
6066
return 'REVIEW_RESEND_REQUEST';
6167
}
6268

69+
/**
70+
* @copydoc \PKP\controllers\grid\users\reviewer\form\ReviewerNotifyActionForm::initData()
71+
*/
72+
public function initData()
73+
{
74+
parent::initData();
75+
76+
[$reviewDueDate, $responseDueDate] = ReviewerForm::getDueDates(Application::get()->getRequest()->getContext());
77+
78+
$this->setData('responseDueDate', $responseDueDate);
79+
$this->setData('reviewDueDate', $reviewDueDate);
80+
}
81+
82+
/**
83+
* @copydoc \PKP\controllers\grid\users\reviewer\form\ReviewerNotifyActionForm::readInputData()
84+
*/
85+
public function readInputData()
86+
{
87+
parent::readInputData();
88+
89+
$this->readUserVars([
90+
'responseDueDate',
91+
'reviewDueDate',
92+
]);
93+
}
94+
6395
/**
6496
* @copydoc Form::execute()
6597
*
@@ -84,6 +116,8 @@ public function execute(...$functionArgs)
84116
'declined' => false,
85117
'requestResent' => true,
86118
'dateConfirmed' => null,
119+
'dateDue' => $this->getData('reviewDueDate'), // Set the review due date
120+
'dateResponseDue' => $this->getData('responseDueDate'), // Set the response due date
87121
]);
88122

89123
// Stamp the modification date

controllers/grid/users/reviewer/form/ReviewerForm.php

+21-11
Original file line numberDiff line numberDiff line change
@@ -88,6 +88,26 @@ public function __construct($submission, $reviewRound)
8888
$this->addCheck(new \PKP\form\validation\FormValidatorCSRF($this));
8989
}
9090

91+
/**
92+
* Get the review submit and response due dates
93+
*/
94+
public static function getDueDates(Context $context): array
95+
{
96+
$numWeeks = (int) $context->getData('numWeeksPerReview');
97+
if ($numWeeks <= 0) {
98+
$numWeeks = 4;
99+
}
100+
$reviewDueDate = strtotime('+' . $numWeeks . ' week');
101+
102+
$numWeeks = (int) $context->getData('numWeeksPerResponse');
103+
if ($numWeeks <= 0) {
104+
$numWeeks = 3;
105+
}
106+
$responseDueDate = strtotime('+' . $numWeeks . ' week');
107+
108+
return [$reviewDueDate, $responseDueDate];
109+
}
110+
91111
//
92112
// Getters and Setters
93113
//
@@ -211,17 +231,7 @@ public function initData()
211231
$reviewFormId = null;
212232
}
213233

214-
$numWeeks = (int) $context->getData('numWeeksPerReview');
215-
if ($numWeeks <= 0) {
216-
$numWeeks = 4;
217-
}
218-
$reviewDueDate = strtotime('+' . $numWeeks . ' week');
219-
220-
$numWeeks = (int) $context->getData('numWeeksPerResponse');
221-
if ($numWeeks <= 0) {
222-
$numWeeks = 3;
223-
}
224-
$responseDueDate = strtotime('+' . $numWeeks . ' week');
234+
[$reviewDueDate, $responseDueDate] = static::getDueDates($context);
225235

226236
// Get the currently selected reviewer selection type to show the correct tab if we're re-displaying the form
227237
$selectionType = (int) $request->getUserVar('selectionType');

templates/controllers/grid/users/reviewer/form/resendRequestReviewerForm.tpl

+5
Original file line numberDiff line numberDiff line change
@@ -34,6 +34,11 @@
3434
{fbvElement type="checkbox" id="skipEmail" name="skipEmail" label="editor.review.skipEmail"}
3535
{/fbvFormSection}
3636

37+
{fbvFormSection title="editor.review.importantDates"}
38+
{fbvElement type="text" id="responseDueDate" name="responseDueDate" label="submission.task.responseDueDate" value=$responseDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
39+
{fbvElement type="text" id="reviewDueDate" name="reviewDueDate" label="editor.review.reviewDueDate" value=$reviewDueDate inline=true size=$fbvStyles.size.MEDIUM class="datepicker"}
40+
{/fbvFormSection}
41+
3742
{fbvFormButtons submitText="editor.review.resendRequestReviewer"}
3843
</form>
3944

0 commit comments

Comments
 (0)