From bfdef4fe838923a76c08298ced9d9b0a5bb8dad6 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Tue, 19 Aug 2025 11:33:00 +0600 Subject: [PATCH] pkp/pkp-lib#9295 Continuous publication support updated --- QuickSubmitForm.php | 17 +++++++++++--- enums/IssueSelection.php | 48 ++++++++++++++++++++++++++++++++++++++++ 2 files changed, 62 insertions(+), 3 deletions(-) create mode 100644 enums/IssueSelection.php diff --git a/QuickSubmitForm.php b/QuickSubmitForm.php index 1d86d50..96d91f8 100644 --- a/QuickSubmitForm.php +++ b/QuickSubmitForm.php @@ -17,7 +17,7 @@ use APP\core\Application; use APP\facades\Repo; use APP\journal\Journal; -use APP\issue\enums\IssueSelection; +use APP\plugins\importexport\quickSubmit\enums\IssueSelection; use APP\plugins\importexport\quickSubmit\classes\form\SubmissionMetadataForm; use APP\publication\Publication; use APP\submission\Submission; @@ -324,7 +324,7 @@ public function initData() $publication = new Publication(); $publication->setData('locale', $this->getDefaultFormLocale()); $publication->setData('sectionId', $sectionId); - $publication->setData('status', PKPSubmission::STATUS_QUEUED); + $publication->setData('status', Publication::STATUS_QUEUED); $publication->setData('version', 1); Repo::submission()->add($this->_submission, $publication, $this->_context); @@ -462,7 +462,6 @@ public function execute(...$functionParams) if ($this->getData('articleStatus') == 1) { - $publication->setData('published', $this->getData('published') ?? false); $publication->setData('copyrightYear', $this->getData('copyrightYear')); $publication->setData('copyrightHolder', $this->getData('copyrightHolder'), null); $publication->setData('licenseUrl', $this->getData('licenseUrl')); @@ -476,6 +475,18 @@ public function execute(...$functionParams) : (int) $this->getData('issueId') ); + if ((int) $this->getData('issueId') == IssueSelection::NO_ISSUE->value) { + $issue = Repo::issue()->get((int)$this->getData('issueId'), $this->_context->getId()); + if (!$issue->getData('published')) { + $publication->setData( + 'status', + $this->getData('published') + ? Publication::STATUS_READY_TO_PUBLISH + : Publication::STATUS_READY_TO_SCHEDULE + ); + } + } + // If other articles in this issue have a custom sequence, put this at the end $otherSubmissionsInSection = Repo::submission() ->getCollector() diff --git a/enums/IssueSelection.php b/enums/IssueSelection.php new file mode 100644 index 0000000..c405158 --- /dev/null +++ b/enums/IssueSelection.php @@ -0,0 +1,48 @@ + '', + static::FUTURE_ISSUES => '------ ' . __('editor.issues.futureIssues') . ' ------', + static::CURRENT_ISSUE => '------ ' . __('editor.issues.currentIssue') . ' ------', + static::BACK_ISSUES => '------ ' . __('editor.issues.backIssues') . ' ------', + }; + } + + /* + * Get the unselectable options + */ + public static function unselectableOptionsValue(): array + { + return [ + static::FUTURE_ISSUES->value, + static::CURRENT_ISSUE->value, + static::BACK_ISSUES->value, + ]; + } +}