From 567c6a46786794078694dfa3c7e72571bff811e6 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Wed, 6 Nov 2024 17:04:56 +0600 Subject: [PATCH 01/14] pkp/pkp-lib#1660 Customizable Reviewer Recommendations --- api/v1/contexts/index.php | 8 ++++ .../ReviewerRecommendationsMigration.php | 28 ++++++++++++++ .../v3_6_0/I1660_ReviewerRecommendations.php | 37 +++++++++++++++++++ pages/management/SettingsHandler.php | 33 +++++++++++++++++ 4 files changed, 106 insertions(+) create mode 100644 classes/migration/install/ReviewerRecommendationsMigration.php create mode 100644 classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php diff --git a/api/v1/contexts/index.php b/api/v1/contexts/index.php index 59a41fb2796..cdd46f71f7e 100644 --- a/api/v1/contexts/index.php +++ b/api/v1/contexts/index.php @@ -15,4 +15,12 @@ * @brief Handle API requests for contexts (journals/presses). */ +$urlParts = explode('/', trim($_SERVER['PATH_INFO'], '/')); + +if (in_array('recommendations', $urlParts)) { + return new \PKP\handler\APIHandler( + new \PKP\API\v1\reviewers\recommendations\ReviewerRecommendationController() + ); +} + return new \PKP\handler\APIHandler(new \PKP\API\v1\contexts\PKPContextController()); diff --git a/classes/migration/install/ReviewerRecommendationsMigration.php b/classes/migration/install/ReviewerRecommendationsMigration.php new file mode 100644 index 00000000000..ddc9db0ced9 --- /dev/null +++ b/classes/migration/install/ReviewerRecommendationsMigration.php @@ -0,0 +1,28 @@ +_installer, $this->_attributes))->up(); + } + + /** + * Reverse the migration + */ + public function down(): void + { + (new ReviewerRecommendationsMigration($this->_installer, $this->_attributes))->down(); + } +} diff --git a/pages/management/SettingsHandler.php b/pages/management/SettingsHandler.php index 7e2308d24ea..5abe4815de1 100644 --- a/pages/management/SettingsHandler.php +++ b/pages/management/SettingsHandler.php @@ -19,6 +19,7 @@ use APP\components\forms\context\AccessForm; use APP\components\forms\context\ArchivingLockssForm; use APP\template\TemplateManager; +use PKP\API\v1\reviewers\recommendations\resources\ReviewerRecommendationResource; use PKP\components\forms\context\PKPContextStatisticsForm; use PKP\components\forms\context\PKPDisableSubmissionsForm; use PKP\components\forms\context\PKPDoiRegistrationSettingsForm; @@ -29,11 +30,14 @@ use PKP\components\forms\context\PKPReviewGuidanceForm; use PKP\components\forms\context\PKPReviewSetupForm; use PKP\components\forms\context\PKPSearchIndexingForm; +use PKP\components\listPanels\ReviewerRecommendationsListPanel; use PKP\core\PKPApplication; +use PKP\core\PKPRequest; use PKP\pages\management\ManagementHandler; use PKP\plugins\Hook; use PKP\plugins\PluginRegistry; use PKP\security\Role; +use PKP\submission\reviewer\recommendation\ReviewerRecommendation; class SettingsHandler extends ManagementHandler { @@ -77,6 +81,35 @@ public function workflow($args, $request) $templateMgr->display('management/workflow.tpl'); } + /** + * Add support for review related forms in workflow. + */ + protected function addReviewFormWorkflowSupport(PKPRequest $request): void + { + parent::addReviewFormWorkflowSupport($request); + + $templateManager = TemplateManager::getManager($request); + $components = $templateManager->getState('components'); + + $context = $request->getContext(); + $recommendations = ReviewerRecommendation::withContextId($context->getId())->get(); + + $reviewerRecommendationsListPanel = new ReviewerRecommendationsListPanel( + __('manager.reviewerRecommendations'), + $context, + $this->getSupportedFormLocales($context), + array_values( + ReviewerRecommendationResource::collection($recommendations) + ->toArray(app()->get('request')) + ), + ReviewerRecommendation::withContextId($context->getId())->count() + ); + + $components[$reviewerRecommendationsListPanel->id] = $reviewerRecommendationsListPanel->getConfig(); + $templateManager->setState(['components' => $components]); + $templateManager->assign('hasCustomizableRecommendation', true); + } + /** * Add the archive and payments tabs to the distribution settings page * From 65763e50032172fdc2d8eaa2022dfaa81737fd82 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Mon, 11 Nov 2024 23:40:55 +0600 Subject: [PATCH 02/14] pkp/pkp-lib#1660 migration to import existing recommendations --- .../ReviewerRecommendationsMigration.php | 5 ++++ .../v3_6_0/I1660_ReviewerRecommendations.php | 29 +++++++++++++------ .../review/reviewerRecommendations.tpl | 20 ++++++++++--- 3 files changed, 41 insertions(+), 13 deletions(-) diff --git a/classes/migration/install/ReviewerRecommendationsMigration.php b/classes/migration/install/ReviewerRecommendationsMigration.php index ddc9db0ced9..62288ab41db 100644 --- a/classes/migration/install/ReviewerRecommendationsMigration.php +++ b/classes/migration/install/ReviewerRecommendationsMigration.php @@ -21,6 +21,11 @@ public function contextTable(): string return 'journals'; } + public function settingTable(): string + { + return 'journal_settings'; + } + public function contextPrimaryKey(): string { return 'journal_id'; diff --git a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php index 15ac978abea..3a03a21d086 100644 --- a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php +++ b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php @@ -15,23 +15,34 @@ namespace APP\migration\upgrade\v3_6_0; -use APP\migration\install\ReviewerRecommendationsMigration; - -class I1660_ReviewerRecommendations extends \PKP\migration\Migration +class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ReviewerRecommendations { + public const SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT = 1; + public const SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS = 2; + public const SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE = 3; + public const SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE = 4; + public const SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE = 5; + public const SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS = 6; + /** * Run the migration. */ public function up(): void { - (new ReviewerRecommendationsMigration($this->_installer, $this->_attributes))->up(); + parent::up(); + + $this->seedNonRemovableRecommendations(); } - /** - * Reverse the migration - */ - public function down(): void + protected function systemDefineNonRemovableRecommendations(): array { - (new ReviewerRecommendationsMigration($this->_installer, $this->_attributes))->down(); + return [ + static::SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT => 'reviewer.article.decision.accept', + static::SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS => 'reviewer.article.decision.pendingRevisions', + static::SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE => 'reviewer.article.decision.resubmitHere', + static::SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE => 'reviewer.article.decision.resubmitElsewhere', + static::SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE => 'reviewer.article.decision.decline', + static::SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS => 'reviewer.article.decision.seeComments', + ]; } } diff --git a/templates/reviewer/review/reviewerRecommendations.tpl b/templates/reviewer/review/reviewerRecommendations.tpl index aeff37ed12e..7ae44298a13 100644 --- a/templates/reviewer/review/reviewerRecommendations.tpl +++ b/templates/reviewer/review/reviewerRecommendations.tpl @@ -1,13 +1,25 @@ {** * templates/reviewer/review/reviewerRecommendations.tpl * - * Copyright (c) 2014-2021 Simon Fraser University - * Copyright (c) 2003-2021 John Willinsky + * Copyright (c) 2014-2024 Simon Fraser University + * Copyright (c) 2003-2024 John Willinsky * Distributed under the GNU GPL v3. For full terms see the file docs/COPYING. * * Include reviewer recommendations for OJS review assignment responses. *} -{fbvFormSection label="reviewer.article.recommendation" description=$description|default:"reviewer.article.selectRecommendation"} - {fbvElement type="select" id="recommendation" from=$reviewerRecommendationOptions selected=$reviewAssignment->getRecommendation() size=$fbvStyles.size.MEDIUM required=$required|default:true disabled=$readOnly} +{fbvFormSection + label="reviewer.article.recommendation" + description=$description|default:"reviewer.article.selectRecommendation" +} + {fbvElement + type="select" + id="recommendation" + from=$reviewerRecommendationOptions + selected=$reviewAssignment->getRecommendation() + size=$fbvStyles.size.MEDIUM + required=$required|default:true + disabled=$readOnly + translate=false + } {/fbvFormSection} From 16f6b6572d95e888f067117553fb564e4fd8723e Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Tue, 19 Nov 2024 13:42:15 +0600 Subject: [PATCH 03/14] pkp/pkp-lib#1660 added temp upgrade migration --- .../upgrade/v3_6_0/I1660_ReviewerRecommendations.php | 10 ---------- dbscripts/xml/install.xml | 1 + dbscripts/xml/upgrade.xml | 1 + 3 files changed, 2 insertions(+), 10 deletions(-) diff --git a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php index 3a03a21d086..0d487dd68ad 100644 --- a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php +++ b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php @@ -24,16 +24,6 @@ class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ public const SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE = 5; public const SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS = 6; - /** - * Run the migration. - */ - public function up(): void - { - parent::up(); - - $this->seedNonRemovableRecommendations(); - } - protected function systemDefineNonRemovableRecommendations(): array { return [ diff --git a/dbscripts/xml/install.xml b/dbscripts/xml/install.xml index 5e472fe0eb5..e888cc576e1 100644 --- a/dbscripts/xml/install.xml +++ b/dbscripts/xml/install.xml @@ -45,6 +45,7 @@ + diff --git a/dbscripts/xml/upgrade.xml b/dbscripts/xml/upgrade.xml index 167f566c152..5c416c73fef 100644 --- a/dbscripts/xml/upgrade.xml +++ b/dbscripts/xml/upgrade.xml @@ -167,6 +167,7 @@ + From 18494e538dc6172aa86aab25df3ab0cef8a4f6d1 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Fri, 6 Dec 2024 17:35:09 +0600 Subject: [PATCH 04/14] pkp/pkp-lib#1660 default recommendation at new context add --- .../v3_6_0/I1660_ReviewerRecommendations.php | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php index 0d487dd68ad..a30caa6fd61 100644 --- a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php +++ b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php @@ -15,24 +15,12 @@ namespace APP\migration\upgrade\v3_6_0; +use PKP\submission\reviewer\recommendation\ReviewerRecommendation; + class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ReviewerRecommendations { - public const SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT = 1; - public const SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS = 2; - public const SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE = 3; - public const SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE = 4; - public const SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE = 5; - public const SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS = 6; - protected function systemDefineNonRemovableRecommendations(): array { - return [ - static::SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT => 'reviewer.article.decision.accept', - static::SUBMISSION_REVIEWER_RECOMMENDATION_PENDING_REVISIONS => 'reviewer.article.decision.pendingRevisions', - static::SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_HERE => 'reviewer.article.decision.resubmitHere', - static::SUBMISSION_REVIEWER_RECOMMENDATION_RESUBMIT_ELSEWHERE => 'reviewer.article.decision.resubmitElsewhere', - static::SUBMISSION_REVIEWER_RECOMMENDATION_DECLINE => 'reviewer.article.decision.decline', - static::SUBMISSION_REVIEWER_RECOMMENDATION_SEE_COMMENTS => 'reviewer.article.decision.seeComments', - ]; + return ReviewerRecommendation::seedableRecommendations(); } } From 6c1232d1572cd1bff45d7caf76510d14eeb38573 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Sat, 21 Dec 2024 15:44:47 +0600 Subject: [PATCH 05/14] pkp/pkp-lib#1660 set used recommendation uneditable --- .../install/ReviewerRecommendationsMigration.php | 11 ++++++++++- .../upgrade/v3_6_0/I1660_ReviewerRecommendations.php | 5 ++++- 2 files changed, 14 insertions(+), 2 deletions(-) diff --git a/classes/migration/install/ReviewerRecommendationsMigration.php b/classes/migration/install/ReviewerRecommendationsMigration.php index 62288ab41db..989a834b16a 100644 --- a/classes/migration/install/ReviewerRecommendationsMigration.php +++ b/classes/migration/install/ReviewerRecommendationsMigration.php @@ -9,23 +9,32 @@ * * @class ReviewerRecommendationsMigration * - * @brief + * @brief Describe database table structures . */ namespace APP\migration\install; class ReviewerRecommendationsMigration extends \PKP\migration\install\ReviewerRecommendationsMigration { + /** + * @copydoc \PKP\migration\install\ReviewerRecommendationsMigratio::contextTable() + */ public function contextTable(): string { return 'journals'; } + /** + * @copydoc \PKP\migration\install\ReviewerRecommendationsMigratio::settingTable() + */ public function settingTable(): string { return 'journal_settings'; } + /** + * @copydoc \PKP\migration\install\ReviewerRecommendationsMigratio::contextPrimaryKey() + */ public function contextPrimaryKey(): string { return 'journal_id'; diff --git a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php index a30caa6fd61..fafee17729b 100644 --- a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php +++ b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php @@ -9,7 +9,7 @@ * * @class I1660_ReviewerRecommendations.php * - * @brief + * @brief Upgrade migration add recommendations * */ @@ -19,6 +19,9 @@ class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ReviewerRecommendations { + /** + * @copydoc \PKP\migration\upgrade\v3_6_0\I1660_ReviewerRecommendations::systemDefineNonRemovableRecommendations() + */ protected function systemDefineNonRemovableRecommendations(): array { return ReviewerRecommendation::seedableRecommendations(); From c0430e7cab33f0cc1693102235ada7776e142a4b Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Tue, 11 Feb 2025 15:10:38 +0600 Subject: [PATCH 06/14] pkp/pkp-lib#1660 migration update --- .../upgrade/v3_6_0/I1660_ReviewerRecommendations.php | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php index fafee17729b..11b4640d378 100644 --- a/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php +++ b/classes/migration/upgrade/v3_6_0/I1660_ReviewerRecommendations.php @@ -15,7 +15,7 @@ namespace APP\migration\upgrade\v3_6_0; -use PKP\submission\reviewer\recommendation\ReviewerRecommendation; +use APP\facades\Repo; class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ReviewerRecommendations { @@ -24,6 +24,6 @@ class I1660_ReviewerRecommendations extends \PKP\migration\upgrade\v3_6_0\I1660_ */ protected function systemDefineNonRemovableRecommendations(): array { - return ReviewerRecommendation::seedableRecommendations(); + return Repo::reviewerRecommendation()->getDefaultRecommendations(); } } From b65ec994423d88848555428e0793110c5a7a3708 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Thu, 20 Feb 2025 15:29:49 +0600 Subject: [PATCH 07/14] pkp/pkp-lib#1660 centarlize the recommendation settings page access --- pages/management/SettingsHandler.php | 33 ---------------------------- 1 file changed, 33 deletions(-) diff --git a/pages/management/SettingsHandler.php b/pages/management/SettingsHandler.php index 5abe4815de1..7e2308d24ea 100644 --- a/pages/management/SettingsHandler.php +++ b/pages/management/SettingsHandler.php @@ -19,7 +19,6 @@ use APP\components\forms\context\AccessForm; use APP\components\forms\context\ArchivingLockssForm; use APP\template\TemplateManager; -use PKP\API\v1\reviewers\recommendations\resources\ReviewerRecommendationResource; use PKP\components\forms\context\PKPContextStatisticsForm; use PKP\components\forms\context\PKPDisableSubmissionsForm; use PKP\components\forms\context\PKPDoiRegistrationSettingsForm; @@ -30,14 +29,11 @@ use PKP\components\forms\context\PKPReviewGuidanceForm; use PKP\components\forms\context\PKPReviewSetupForm; use PKP\components\forms\context\PKPSearchIndexingForm; -use PKP\components\listPanels\ReviewerRecommendationsListPanel; use PKP\core\PKPApplication; -use PKP\core\PKPRequest; use PKP\pages\management\ManagementHandler; use PKP\plugins\Hook; use PKP\plugins\PluginRegistry; use PKP\security\Role; -use PKP\submission\reviewer\recommendation\ReviewerRecommendation; class SettingsHandler extends ManagementHandler { @@ -81,35 +77,6 @@ public function workflow($args, $request) $templateMgr->display('management/workflow.tpl'); } - /** - * Add support for review related forms in workflow. - */ - protected function addReviewFormWorkflowSupport(PKPRequest $request): void - { - parent::addReviewFormWorkflowSupport($request); - - $templateManager = TemplateManager::getManager($request); - $components = $templateManager->getState('components'); - - $context = $request->getContext(); - $recommendations = ReviewerRecommendation::withContextId($context->getId())->get(); - - $reviewerRecommendationsListPanel = new ReviewerRecommendationsListPanel( - __('manager.reviewerRecommendations'), - $context, - $this->getSupportedFormLocales($context), - array_values( - ReviewerRecommendationResource::collection($recommendations) - ->toArray(app()->get('request')) - ), - ReviewerRecommendation::withContextId($context->getId())->count() - ); - - $components[$reviewerRecommendationsListPanel->id] = $reviewerRecommendationsListPanel->getConfig(); - $templateManager->setState(['components' => $components]); - $templateManager->assign('hasCustomizableRecommendation', true); - } - /** * Add the archive and payments tabs to the distribution settings page * From 2ece54a78c12ef76cb297c85c879b0634a738bdb Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Sun, 23 Feb 2025 23:10:07 +0600 Subject: [PATCH 08/14] pkp/pkp-lib#1660 undo the centarlization the recommendation settings page access --- pages/management/SettingsHandler.php | 33 ++++++++++++++++++++++++++++ 1 file changed, 33 insertions(+) diff --git a/pages/management/SettingsHandler.php b/pages/management/SettingsHandler.php index 7e2308d24ea..4d294dd552d 100644 --- a/pages/management/SettingsHandler.php +++ b/pages/management/SettingsHandler.php @@ -19,6 +19,7 @@ use APP\components\forms\context\AccessForm; use APP\components\forms\context\ArchivingLockssForm; use APP\template\TemplateManager; +use PKP\API\v1\reviewers\recommendations\resources\ReviewerRecommendationResource; use PKP\components\forms\context\PKPContextStatisticsForm; use PKP\components\forms\context\PKPDisableSubmissionsForm; use PKP\components\forms\context\PKPDoiRegistrationSettingsForm; @@ -29,11 +30,14 @@ use PKP\components\forms\context\PKPReviewGuidanceForm; use PKP\components\forms\context\PKPReviewSetupForm; use PKP\components\forms\context\PKPSearchIndexingForm; +use PKP\components\listPanels\ReviewerRecommendationsListPanel; use PKP\core\PKPApplication; +use PKP\core\PKPRequest; use PKP\pages\management\ManagementHandler; use PKP\plugins\Hook; use PKP\plugins\PluginRegistry; use PKP\security\Role; +use PKP\submission\reviewer\recommendation\ReviewerRecommendation; class SettingsHandler extends ManagementHandler { @@ -77,6 +81,35 @@ public function workflow($args, $request) $templateMgr->display('management/workflow.tpl'); } + /** + * Add support for review related forms in workflow. + */ + protected function addReviewFormWorkflowSupport(PKPRequest $request): void + { + parent::addReviewFormWorkflowSupport($request); + + $templateManager = TemplateManager::getManager($request); + $components = $templateManager->getState('components'); + + $context = $request->getContext(); + $recommendations = ReviewerRecommendation::query()->withContextId($context->getId())->get(); + + $reviewerRecommendationsListPanel = new ReviewerRecommendationsListPanel( + __('manager.reviewerRecommendations'), + $context, + $this->getSupportedFormLocales($context), + array_values( + ReviewerRecommendationResource::collection($recommendations) + ->toArray(app()->get('request')) + ), + $recommendations->count() + ); + + $components[$reviewerRecommendationsListPanel->id] = $reviewerRecommendationsListPanel->getConfig(); + $templateManager->setState(['components' => $components]); + $templateManager->assign('hasCustomizableRecommendation', true); + } + /** * Add the archive and payments tabs to the distribution settings page * From 4a857255ff0cbe8a761c0eb1af237aae357a9f75 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Mon, 24 Feb 2025 00:16:16 +0600 Subject: [PATCH 09/14] pkp/pkp-lib#1660 moving app specific codes --- pages/dashboard/DashboardHandlerNext.php | 12 ++++++++++++ 1 file changed, 12 insertions(+) diff --git a/pages/dashboard/DashboardHandlerNext.php b/pages/dashboard/DashboardHandlerNext.php index 0ff87f0517e..c9c4c3b4eb9 100644 --- a/pages/dashboard/DashboardHandlerNext.php +++ b/pages/dashboard/DashboardHandlerNext.php @@ -1,4 +1,5 @@ setConstants([ 'FORM_ASSIGN_TO_ISSUE' => FORM_ASSIGN_TO_ISSUE ]); + + $pageInitConfig = $templateMgr->getState('pageInitConfig'); + $pageInitConfig['recommendations'] = ReviewerRecommendation::query() + ->withContextId($context->getId()) + ->get() + ->select(['recommendationId', 'status', 'value', 'title']) + ->values() + ->toArray(); + + $templateMgr->setState(['pageInitConfig' => $pageInitConfig]); } From a55e3ce1ea4da354f673ba376fc6d309798939c5 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Mon, 24 Feb 2025 00:54:12 +0600 Subject: [PATCH 10/14] pkp/pkp-lib#1660 moving app specific codes on context create and delete --- classes/services/ContextService.php | 21 ++++++++++++++------- 1 file changed, 14 insertions(+), 7 deletions(-) diff --git a/classes/services/ContextService.php b/classes/services/ContextService.php index 2b516bf1506..f16e482a6fb 100644 --- a/classes/services/ContextService.php +++ b/classes/services/ContextService.php @@ -1,9 +1,10 @@ addDefaultRecommendations($context); // Create a default section $section = Repo::section()->newDataObject(); @@ -94,8 +98,8 @@ public function afterAddContext($hookName, $args) */ public function afterEditContext($hookName, $args) { - $newContext = $args[0]; - $currentContext = $args[1]; + $newContext = $args[0]; /** @var \PKP\context\Context $context */ + $currentContext = $args[1]; /** @var \PKP\context\Context $context */ $params = $args[2]; $request = $args[3]; @@ -146,7 +150,7 @@ public function afterEditContext($hookName, $args) */ public function beforeDeleteContext($hookName, $args) { - $context = $args[0]; + $context = $args[0]; /** @var \PKP\context\Context $context */ // Create tombstones for all published submissions $articleTombstoneManager = new ArticleTombstoneManager(); @@ -168,11 +172,14 @@ public function beforeDeleteContext($hookName, $args) */ public function afterDeleteContext($hookName, $args) { - $context = $args[0]; + $context = $args[0]; /** @var \PKP\context\Context $context */ Repo::section()->deleteByContextId($context->getId()); Repo::issue()->deleteByContextId($context->getId()); + + ReviewerRecommendation::query()->withContextId($context->getId())->delete(); + /** @var IndividualSubscriptionDAO */ $subscriptionDao = DAORegistry::getDAO('IndividualSubscriptionDAO'); $subscriptionDao->deleteByJournalId($context->getId()); From 2e7bdfda907b0269c6e2ec59ba248c907ce28e36 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Mon, 24 Feb 2025 12:14:34 +0600 Subject: [PATCH 11/14] pkp/pkp-lib#1660 register recommendation repo only at app level --- classes/facades/Repo.php | 6 ++++++ 1 file changed, 6 insertions(+) diff --git a/classes/facades/Repo.php b/classes/facades/Repo.php index 54cc6f4d0b8..0202a70bd90 100644 --- a/classes/facades/Repo.php +++ b/classes/facades/Repo.php @@ -26,6 +26,7 @@ use PKP\facades\Repo as BaseRepo; use PKP\galley\Repository as GalleyRepository; use PKP\submission\reviewAssignment\Repository as ReviewAssignmentRepository; +use PKP\submission\reviewer\recommendation\Repository as ReviewerRecommendationRepository; class Repo extends BaseRepo { @@ -83,4 +84,9 @@ public static function reviewAssignment(): ReviewAssignmentRepository { return app(ReviewAssignmentRepository::class); } + + public static function reviewerRecommendation(): ReviewerRecommendationRepository + { + return app(ReviewerRecommendationRepository::class); + } } From aa21b1de3d76182228502b042f579eb65fe68fc7 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Mon, 24 Feb 2025 12:40:45 +0600 Subject: [PATCH 12/14] pkp/pkp-lib#1660 add check at context service level to determine if can have customizable review recommendation --- classes/services/ContextService.php | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/classes/services/ContextService.php b/classes/services/ContextService.php index f16e482a6fb..f945b3af707 100644 --- a/classes/services/ContextService.php +++ b/classes/services/ContextService.php @@ -235,4 +235,12 @@ public function validateContext($hookName, $args) } } } + + /** + * @copydoc \PKP\services\PKPContextService::hasCustomizableReviewerRecommendation() + */ + public function hasCustomizableReviewerRecommendation(): bool + { + return true; + } } From 508bf4000d0bab0f3d4828cb358366e6b4bb68f4 Mon Sep 17 00:00:00 2001 From: Touhidur Rahman Date: Fri, 28 Feb 2025 01:14:28 +0600 Subject: [PATCH 13/14] pkp/pkp-lib#1660 removed context id from route --- api/v1/contexts/index.php | 9 +-------- api/v1/reviewers/index.php | 15 +++++++++++++++ 2 files changed, 16 insertions(+), 8 deletions(-) create mode 100644 api/v1/reviewers/index.php diff --git a/api/v1/contexts/index.php b/api/v1/contexts/index.php index cdd46f71f7e..27734a2b1eb 100644 --- a/api/v1/contexts/index.php +++ b/api/v1/contexts/index.php @@ -1,4 +1,5 @@ Date: Wed, 6 Nov 2024 17:05:20 +0600 Subject: [PATCH 14/14] pkp/pkp-lib#1660 Submodule Update ##touhidurabir/i1660_main## pkp/pkp-lib#1660 Submodule Update ##touhidurabir/i1660_main## --- lib/pkp | 2 +- lib/ui-library | 2 +- plugins/reports/reviewReport | 2 +- 3 files changed, 3 insertions(+), 3 deletions(-) diff --git a/lib/pkp b/lib/pkp index 4dd73c40f66..1196fdcb09b 160000 --- a/lib/pkp +++ b/lib/pkp @@ -1 +1 @@ -Subproject commit 4dd73c40f66cb10d117d2d93d76a345795ead043 +Subproject commit 1196fdcb09ba903754b8c363bd8094e12e3aa5a4 diff --git a/lib/ui-library b/lib/ui-library index 03bf8ac4ac4..a3dc39d26da 160000 --- a/lib/ui-library +++ b/lib/ui-library @@ -1 +1 @@ -Subproject commit 03bf8ac4ac4223ba3ce0e38bb7d1756e28310912 +Subproject commit a3dc39d26daf5a9473e4a95a36c852844e32f068 diff --git a/plugins/reports/reviewReport b/plugins/reports/reviewReport index 613059b9792..0145b76d4ba 160000 --- a/plugins/reports/reviewReport +++ b/plugins/reports/reviewReport @@ -1 +1 @@ -Subproject commit 613059b97921cf6ade3a485b560bdcc6f1b1ca0d +Subproject commit 0145b76d4ba0596dcb13186a84bb769243687434