Skip to content

Commit e5253a2

Browse files
#11219 Fix: Detect correctly that the revision was uploaded in internal review round
1 parent 7777fcb commit e5253a2

File tree

2 files changed

+14
-4
lines changed

2 files changed

+14
-4
lines changed

classes/decision/Repository.php

+9-2
Original file line numberDiff line numberDiff line change
@@ -304,7 +304,10 @@ public function getDecisionType(int $decision): ?DecisionType
304304
public function getActivePendingRevisionsDecision(int $submissionId, int $stageId, int $decision = Decision::PENDING_REVISIONS): ?Decision
305305
{
306306
$postReviewDecisions = [Decision::SEND_TO_PRODUCTION];
307-
$revisionDecisions = [Decision::PENDING_REVISIONS, Decision::RESUBMIT];
307+
$revisionDecisions = $stageId === WORKFLOW_STAGE_ID_EXTERNAL_REVIEW
308+
? [Decision::PENDING_REVISIONS, Decision::RESUBMIT]
309+
: [Decision::PENDING_REVISIONS_INTERNAL, Decision::RESUBMIT_INTERNAL];
310+
308311
if (!in_array($decision, $revisionDecisions)) {
309312
return null;
310313
}
@@ -353,10 +356,14 @@ public function revisionsUploadedSinceDecision(Decision $decision, int $submissi
353356
$reviewRoundDao = DAORegistry::getDAO('ReviewRoundDAO'); /** @var ReviewRoundDAO $reviewRoundDao */
354357
$reviewRound = $reviewRoundDao->getReviewRound($submissionId, $stageId, $round);
355358

359+
$fileStage = $stageId === WORKFLOW_STAGE_ID_EXTERNAL_REVIEW
360+
? SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION
361+
: SubmissionFile::SUBMISSION_FILE_INTERNAL_REVIEW_REVISION;
362+
356363
$submissionFiles = Repo::submissionFile()
357364
->getCollector()
358365
->filterByReviewRoundIds([$reviewRound->getId()])
359-
->filterByFileStages([SubmissionFile::SUBMISSION_FILE_REVIEW_REVISION])
366+
->filterByFileStages([$fileStage])
360367
->getMany();
361368

362369
foreach ($submissionFiles as $submissionFile) {

classes/submission/reviewRound/ReviewRound.php

+5-2
Original file line numberDiff line numberDiff line change
@@ -159,7 +159,8 @@ public function determineStatus()
159159
// submitted
160160
if ($this->getStatus() == self::REVIEW_ROUND_STATUS_REVISIONS_REQUESTED || $this->getStatus() == self::REVIEW_ROUND_STATUS_REVISIONS_SUBMITTED) {
161161
// get editor decisions
162-
$pendingRevisionDecision = Repo::decision()->getActivePendingRevisionsDecision($this->getSubmissionId(), $this->getStageId(), Decision::PENDING_REVISIONS);
162+
$decisionToCheck = $this->getStageId() === WORKFLOW_STAGE_ID_EXTERNAL_REVIEW ? Decision::PENDING_REVISIONS : Decision::PENDING_REVISIONS_INTERNAL;
163+
$pendingRevisionDecision = Repo::decision()->getActivePendingRevisionsDecision($this->getSubmissionId(), $this->getStageId(), $decisionToCheck);
163164

164165
if ($pendingRevisionDecision) {
165166
if (Repo::decision()->revisionsUploadedSinceDecision($pendingRevisionDecision, $this->getSubmissionId())) {
@@ -173,7 +174,9 @@ public function determineStatus()
173174
// submitted
174175
if ($this->getStatus() == self::REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW || $this->getStatus() == self::REVIEW_ROUND_STATUS_RESUBMIT_FOR_REVIEW_SUBMITTED) {
175176
// get editor decisions
176-
$pendingRevisionDecision = Repo::decision()->getActivePendingRevisionsDecision($this->getSubmissionId(), $this->getStageId(), Decision::RESUBMIT);
177+
$decisionToCheck = $this->getStageId() === WORKFLOW_STAGE_ID_EXTERNAL_REVIEW ? Decision::RESUBMIT : Decision::RESUBMIT_INTERNAL;
178+
179+
$pendingRevisionDecision = Repo::decision()->getActivePendingRevisionsDecision($this->getSubmissionId(), $this->getStageId(), $decisionToCheck);
177180

178181
if ($pendingRevisionDecision) {
179182
if (Repo::decision()->revisionsUploadedSinceDecision($pendingRevisionDecision, $this->getSubmissionId())) {

0 commit comments

Comments
 (0)