From 897f3ed4f17fdd92b904201457fc5f4a07f7f168 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Tue, 16 Jul 2024 16:35:47 +0600
Subject: [PATCH 01/26] pkp/pkp-lib#9892 Submodule Update
##touhidurabir/i9892_main##
---
lib/pkp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/pkp b/lib/pkp
index d24432eb64d..14d54e52a64 160000
--- a/lib/pkp
+++ b/lib/pkp
@@ -1 +1 @@
-Subproject commit d24432eb64da466b565677eb724a36e2e7fead0b
+Subproject commit 14d54e52a644ce9a3a02f700cb005dd924e6b32b
From c6013794069fcc6561bc4b12666359cd88e1d588 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Tue, 16 Jul 2024 17:41:00 +0600
Subject: [PATCH 02/26] pkp/pkp-lib#9892 DB float type precision added
---
.../migration/install/JournalsMigration.php | 2 +-
classes/migration/install/OJSMigration.php | 18 +++++++++---------
2 files changed, 10 insertions(+), 10 deletions(-)
diff --git a/classes/migration/install/JournalsMigration.php b/classes/migration/install/JournalsMigration.php
index 04e2a229b4a..a39e242b15c 100644
--- a/classes/migration/install/JournalsMigration.php
+++ b/classes/migration/install/JournalsMigration.php
@@ -29,7 +29,7 @@ public function up(): void
$table->comment('A list of all journals in the installation of OJS.');
$table->bigInteger('journal_id')->autoIncrement();
$table->string('path', 32);
- $table->float('seq', 8, 2)->default(0)->comment('Used to order lists of journals');
+ $table->float('seq', 53)->default(0)->comment('Used to order lists of journals');
$table->string('primary_locale', 28);
$table->smallInteger('enabled')->default(1)->comment('Controls whether or not the journal is considered "live" and will appear on the website. (Note that disabled journals may still be accessible, but only if the user knows the URL.)');
$table->unique(['path'], 'journals_path');
diff --git a/classes/migration/install/OJSMigration.php b/classes/migration/install/OJSMigration.php
index d5535310845..6c5792c8671 100644
--- a/classes/migration/install/OJSMigration.php
+++ b/classes/migration/install/OJSMigration.php
@@ -38,7 +38,7 @@ public function up(): void
$table->foreign('review_form_id', 'sections_review_form_id')->references('review_form_id')->on('review_forms')->onDelete('set null');
$table->index(['review_form_id'], 'sections_review_form_id');
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->smallInteger('editor_restricted')->default(0);
$table->smallInteger('meta_indexed')->default(0);
$table->smallInteger('meta_reviewed')->default(1);
@@ -154,7 +154,7 @@ public function up(): void
$table->index(['file_id'], 'issue_galleys_file_id');
$table->string('label', 255)->nullable();
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->string('url_path', 64)->nullable();
$table->index(['url_path'], 'issue_galleys_url_path');
@@ -189,7 +189,7 @@ public function up(): void
$table->foreign('journal_id', 'custom_issue_orders_journal_id')->references('journal_id')->on('journals')->onDelete('cascade');
$table->index(['journal_id'], 'custom_issue_orders_journal_id');
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->unique(['issue_id'], 'custom_issue_orders_unique');
});
@@ -206,7 +206,7 @@ public function up(): void
$table->foreign('section_id', 'custom_section_orders_section_id')->references('section_id')->on('sections')->onDelete('cascade');
$table->index(['section_id'], 'custom_section_orders_section_id');
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->unique(['issue_id', 'section_id'], 'custom_section_orders_unique');
});
@@ -228,7 +228,7 @@ public function up(): void
$table->foreign('section_id', 'publications_section_id')->references('section_id')->on('sections')->onDelete('set null');
$table->index(['section_id'], 'publications_section_id');
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->bigInteger('submission_id');
$table->foreign('submission_id', 'publications_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
@@ -274,7 +274,7 @@ public function up(): void
$table->foreign('submission_file_id')->references('submission_file_id')->on('submission_files');
$table->index(['submission_file_id'], 'publication_galleys_submission_file_id');
- $table->float('seq', 8, 2)->default(0);
+ $table->float('seq', 53)->default(0);
$table->string('remote_url', 2047)->nullable();
$table->smallInteger('is_approved')->default(0);
$table->string('url_path', 64)->nullable();
@@ -318,14 +318,14 @@ public function up(): void
$table->foreign('journal_id', 'subscription_types_journal_id')->references('journal_id')->on('journals')->onDelete('cascade');
$table->index(['journal_id'], 'subscription_types_journal_id');
- $table->float('cost', 8, 2);
+ $table->float('cost', 53);
$table->string('currency_code_alpha', 3);
$table->smallInteger('duration')->nullable();
$table->smallInteger('format');
$table->smallInteger('institutional')->default(0);
$table->smallInteger('membership')->default(0);
$table->smallInteger('disable_public_display');
- $table->float('seq', 8, 2);
+ $table->float('seq', 53);
});
// Locale-specific subscription type data
@@ -415,7 +415,7 @@ public function up(): void
$table->index(['user_id'], 'completed_payments_user_id');
$table->bigInteger('assoc_id')->nullable();
- $table->float('amount', 8, 2);
+ $table->float('amount', 53);
$table->string('currency_code_alpha', 3)->nullable();
$table->string('payment_method_plugin_name', 80)->nullable();
});
From e483ae3224a486783fa00fd3202dd487cf85a4b2 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Wed, 17 Jul 2024 13:54:07 +0600
Subject: [PATCH 03/26] pkp/pkp-lib#9892 updated paypal plugin composer
dependency
---
plugins/paymethod/paypal/composer.json | 4 +-
plugins/paymethod/paypal/composer.lock | 392 ++++++++++---------------
2 files changed, 155 insertions(+), 241 deletions(-)
diff --git a/plugins/paymethod/paypal/composer.json b/plugins/paymethod/paypal/composer.json
index 503461bb6fa..3f157e19fcb 100644
--- a/plugins/paymethod/paypal/composer.json
+++ b/plugins/paymethod/paypal/composer.json
@@ -1,13 +1,13 @@
{
"require": {
- "symfony/event-dispatcher" : "^6.0",
+ "symfony/event-dispatcher" : "^7.0",
"omnipay/paypal": "^3.0",
"guzzlehttp/guzzle": "^7.0",
"php-http/guzzle7-adapter": "^1.0"
},
"config": {
"platform": {
- "php": "8.1.0"
+ "php": "8.2.0"
},
"allow-plugins": {
"php-http/discovery": true
diff --git a/plugins/paymethod/paypal/composer.lock b/plugins/paymethod/paypal/composer.lock
index e44eca6a8ce..b386b43835b 100644
--- a/plugins/paymethod/paypal/composer.lock
+++ b/plugins/paymethod/paypal/composer.lock
@@ -4,27 +4,27 @@
"Read more about it at https://getcomposer.org/doc/01-basic-usage.md#installing-dependencies",
"This file is @generated automatically"
],
- "content-hash": "aca7872b59679ab29c85966ef7a6b40e",
+ "content-hash": "8356128d6d9637d13cf5c7072f0f1216",
"packages": [
{
"name": "clue/stream-filter",
- "version": "v1.6.0",
+ "version": "v1.7.0",
"source": {
"type": "git",
"url": "https://github.com/clue/stream-filter.git",
- "reference": "d6169430c7731d8509da7aecd0af756a5747b78e"
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/clue/stream-filter/zipball/d6169430c7731d8509da7aecd0af756a5747b78e",
- "reference": "d6169430c7731d8509da7aecd0af756a5747b78e",
+ "url": "https://api.github.com/repos/clue/stream-filter/zipball/049509fef80032cb3f051595029ab75b49a3c2f7",
+ "reference": "049509fef80032cb3f051595029ab75b49a3c2f7",
"shasum": ""
},
"require": {
"php": ">=5.3"
},
"require-dev": {
- "phpunit/phpunit": "^9.3 || ^5.7 || ^4.8.36"
+ "phpunit/phpunit": "^9.6 || ^5.7 || ^4.8.36"
},
"type": "library",
"autoload": {
@@ -46,7 +46,7 @@
}
],
"description": "A simple and modern approach to stream filtering in PHP",
- "homepage": "https://github.com/clue/php-stream-filter",
+ "homepage": "https://github.com/clue/stream-filter",
"keywords": [
"bucket brigade",
"callback",
@@ -58,7 +58,7 @@
],
"support": {
"issues": "https://github.com/clue/stream-filter/issues",
- "source": "https://github.com/clue/stream-filter/tree/v1.6.0"
+ "source": "https://github.com/clue/stream-filter/tree/v1.7.0"
},
"funding": [
{
@@ -70,20 +70,20 @@
"type": "github"
}
],
- "time": "2022-02-21T13:15:14+00:00"
+ "time": "2023-12-20T15:40:13+00:00"
},
{
"name": "guzzlehttp/guzzle",
- "version": "7.8.0",
+ "version": "7.8.1",
"source": {
"type": "git",
"url": "https://github.com/guzzle/guzzle.git",
- "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9"
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/guzzle/zipball/1110f66a6530a40fe7aea0378fe608ee2b2248f9",
- "reference": "1110f66a6530a40fe7aea0378fe608ee2b2248f9",
+ "url": "https://api.github.com/repos/guzzle/guzzle/zipball/41042bc7ab002487b876a0683fc8dce04ddce104",
+ "reference": "41042bc7ab002487b876a0683fc8dce04ddce104",
"shasum": ""
},
"require": {
@@ -98,11 +98,11 @@
"psr/http-client-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"ext-curl": "*",
"php-http/client-integration-tests": "dev-master#2c025848417c1135031fdf9c728ee53d0a7ceaee as 3.0.999",
"php-http/message-factory": "^1.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15",
"psr/log": "^1.1 || ^2.0 || ^3.0"
},
"suggest": {
@@ -180,7 +180,7 @@
],
"support": {
"issues": "https://github.com/guzzle/guzzle/issues",
- "source": "https://github.com/guzzle/guzzle/tree/7.8.0"
+ "source": "https://github.com/guzzle/guzzle/tree/7.8.1"
},
"funding": [
{
@@ -196,28 +196,28 @@
"type": "tidelift"
}
],
- "time": "2023-08-27T10:20:53+00:00"
+ "time": "2023-12-03T20:35:24+00:00"
},
{
"name": "guzzlehttp/promises",
- "version": "2.0.1",
+ "version": "2.0.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/promises.git",
- "reference": "111166291a0f8130081195ac4556a5587d7f1b5d"
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/promises/zipball/111166291a0f8130081195ac4556a5587d7f1b5d",
- "reference": "111166291a0f8130081195ac4556a5587d7f1b5d",
+ "url": "https://api.github.com/repos/guzzle/promises/zipball/bbff78d96034045e58e13dedd6ad91b5d1253223",
+ "reference": "bbff78d96034045e58e13dedd6ad91b5d1253223",
"shasum": ""
},
"require": {
"php": "^7.2.5 || ^8.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "bamarni/composer-bin-plugin": "^1.8.2",
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
},
"type": "library",
"extra": {
@@ -263,7 +263,7 @@
],
"support": {
"issues": "https://github.com/guzzle/promises/issues",
- "source": "https://github.com/guzzle/promises/tree/2.0.1"
+ "source": "https://github.com/guzzle/promises/tree/2.0.2"
},
"funding": [
{
@@ -279,20 +279,20 @@
"type": "tidelift"
}
],
- "time": "2023-08-03T15:11:55+00:00"
+ "time": "2023-12-03T20:19:20+00:00"
},
{
"name": "guzzlehttp/psr7",
- "version": "2.6.1",
+ "version": "2.6.2",
"source": {
"type": "git",
"url": "https://github.com/guzzle/psr7.git",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727"
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/guzzle/psr7/zipball/be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
- "reference": "be45764272e8873c72dbe3d2edcfdfcc3bc9f727",
+ "url": "https://api.github.com/repos/guzzle/psr7/zipball/45b30f99ac27b5ca93cb4831afe16285f57b8221",
+ "reference": "45b30f99ac27b5ca93cb4831afe16285f57b8221",
"shasum": ""
},
"require": {
@@ -306,9 +306,9 @@
"psr/http-message-implementation": "1.0"
},
"require-dev": {
- "bamarni/composer-bin-plugin": "^1.8.1",
+ "bamarni/composer-bin-plugin": "^1.8.2",
"http-interop/http-factory-tests": "^0.9",
- "phpunit/phpunit": "^8.5.29 || ^9.5.23"
+ "phpunit/phpunit": "^8.5.36 || ^9.6.15"
},
"suggest": {
"laminas/laminas-httphandlerrunner": "Emit PSR-7 responses"
@@ -379,7 +379,7 @@
],
"support": {
"issues": "https://github.com/guzzle/psr7/issues",
- "source": "https://github.com/guzzle/psr7/tree/2.6.1"
+ "source": "https://github.com/guzzle/psr7/tree/2.6.2"
},
"funding": [
{
@@ -395,45 +395,47 @@
"type": "tidelift"
}
],
- "time": "2023-08-27T10:13:57+00:00"
+ "time": "2023-12-03T20:05:35+00:00"
},
{
"name": "moneyphp/money",
- "version": "v3.3.3",
+ "version": "v4.5.0",
"source": {
"type": "git",
"url": "https://github.com/moneyphp/money.git",
- "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd"
+ "reference": "a1daa7daf159b4044e3d0c34c41fe2be5860e850"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/moneyphp/money/zipball/0dc40e3791c67e8793e3aa13fead8cf4661ec9cd",
- "reference": "0dc40e3791c67e8793e3aa13fead8cf4661ec9cd",
+ "url": "https://api.github.com/repos/moneyphp/money/zipball/a1daa7daf159b4044e3d0c34c41fe2be5860e850",
+ "reference": "a1daa7daf159b4044e3d0c34c41fe2be5860e850",
"shasum": ""
},
"require": {
+ "ext-bcmath": "*",
+ "ext-filter": "*",
"ext-json": "*",
- "php": ">=5.6"
+ "php": "~8.1.0 || ~8.2.0 || ~8.3.0"
},
"require-dev": {
- "cache/taggable-cache": "^0.4.0",
- "doctrine/instantiator": "^1.0.5",
- "ext-bcmath": "*",
+ "cache/taggable-cache": "^1.1.0",
+ "doctrine/coding-standard": "^12.0",
+ "doctrine/instantiator": "^1.5.0 || ^2.0",
"ext-gmp": "*",
"ext-intl": "*",
- "florianv/exchanger": "^1.0",
- "florianv/swap": "^3.0",
- "friends-of-phpspec/phpspec-code-coverage": "^3.1.1 || ^4.3",
- "moneyphp/iso-currencies": "^3.2.1",
- "php-http/message": "^1.4",
- "php-http/mock-client": "^1.0.0",
- "phpspec/phpspec": "^3.4.3",
- "phpunit/phpunit": "^5.7.27 || ^6.5.14 || ^7.5.18 || ^8.5",
- "psr/cache": "^1.0",
- "symfony/phpunit-bridge": "^4"
+ "florianv/exchanger": "^2.8.1",
+ "florianv/swap": "^4.3.0",
+ "moneyphp/crypto-currencies": "^1.1.0",
+ "moneyphp/iso-currencies": "^3.4",
+ "php-http/message": "^1.16.0",
+ "php-http/mock-client": "^1.6.0",
+ "phpbench/phpbench": "^1.2.5",
+ "phpunit/phpunit": "^10.5.9",
+ "psalm/plugin-phpunit": "^0.18.4",
+ "psr/cache": "^1.0.1 || ^2.0 || ^3.0",
+ "vimeo/psalm": "~5.20.0"
},
"suggest": {
- "ext-bcmath": "Calculate without integer limits",
"ext-gmp": "Calculate without integer limits",
"ext-intl": "Format Money objects with intl",
"florianv/exchanger": "Exchange rates library for PHP",
@@ -479,22 +481,22 @@
],
"support": {
"issues": "https://github.com/moneyphp/money/issues",
- "source": "https://github.com/moneyphp/money/tree/v3.3.3"
+ "source": "https://github.com/moneyphp/money/tree/v4.5.0"
},
- "time": "2022-09-21T07:43:36+00:00"
+ "time": "2024-02-15T19:47:21+00:00"
},
{
"name": "omnipay/common",
- "version": "v3.2.1",
+ "version": "v3.3.0",
"source": {
"type": "git",
"url": "https://github.com/thephpleague/omnipay-common.git",
- "reference": "80545e9f4faab0efad36cc5f1e11a184dda22baf"
+ "reference": "2eca3823e9069e2c36b6007a090577d5584f9518"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/80545e9f4faab0efad36cc5f1e11a184dda22baf",
- "reference": "80545e9f4faab0efad36cc5f1e11a184dda22baf",
+ "url": "https://api.github.com/repos/thephpleague/omnipay-common/zipball/2eca3823e9069e2c36b6007a090577d5584f9518",
+ "reference": "2eca3823e9069e2c36b6007a090577d5584f9518",
"shasum": ""
},
"require": {
@@ -504,13 +506,14 @@
"php-http/discovery": "^1.14",
"php-http/message": "^1.5",
"php-http/message-factory": "^1.1",
- "symfony/http-foundation": "^2.1|^3|^4|^5|^6"
+ "symfony/http-foundation": "^2.1|^3|^4|^5|^6|^7"
},
"require-dev": {
+ "http-interop/http-factory-guzzle": "^1.1",
"omnipay/tests": "^4.1",
"php-http/guzzle7-adapter": "^1",
- "php-http/mock-client": "^1",
- "squizlabs/php_codesniffer": "^3.5"
+ "php-http/mock-client": "^1.6",
+ "squizlabs/php_codesniffer": "^3.8.1"
},
"suggest": {
"league/omnipay": "The default Omnipay package provides a default HTTP Adapter."
@@ -566,7 +569,7 @@
],
"support": {
"issues": "https://github.com/thephpleague/omnipay-common/issues",
- "source": "https://github.com/thephpleague/omnipay-common/tree/v3.2.1"
+ "source": "https://github.com/thephpleague/omnipay-common/tree/v3.3.0"
},
"funding": [
{
@@ -574,7 +577,7 @@
"type": "github"
}
],
- "time": "2023-05-30T12:44:03+00:00"
+ "time": "2024-03-08T11:56:40+00:00"
},
{
"name": "omnipay/paypal",
@@ -642,16 +645,16 @@
},
{
"name": "php-http/discovery",
- "version": "1.19.1",
+ "version": "1.19.4",
"source": {
"type": "git",
"url": "https://github.com/php-http/discovery.git",
- "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e"
+ "reference": "0700efda8d7526335132360167315fdab3aeb599"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/discovery/zipball/57f3de01d32085fea20865f9b16fb0e69347c39e",
- "reference": "57f3de01d32085fea20865f9b16fb0e69347c39e",
+ "url": "https://api.github.com/repos/php-http/discovery/zipball/0700efda8d7526335132360167315fdab3aeb599",
+ "reference": "0700efda8d7526335132360167315fdab3aeb599",
"shasum": ""
},
"require": {
@@ -675,7 +678,8 @@
"php-http/httplug": "^1.0 || ^2.0",
"php-http/message-factory": "^1.0",
"phpspec/phpspec": "^5.1 || ^6.1 || ^7.3",
- "symfony/phpunit-bridge": "^6.2"
+ "sebastian/comparator": "^3.0.5 || ^4.0.8",
+ "symfony/phpunit-bridge": "^6.4.4 || ^7.0.1"
},
"type": "composer-plugin",
"extra": {
@@ -714,9 +718,9 @@
],
"support": {
"issues": "https://github.com/php-http/discovery/issues",
- "source": "https://github.com/php-http/discovery/tree/1.19.1"
+ "source": "https://github.com/php-http/discovery/tree/1.19.4"
},
- "time": "2023-07-11T07:02:26+00:00"
+ "time": "2024-03-29T13:00:05+00:00"
},
{
"name": "php-http/guzzle7-adapter",
@@ -839,16 +843,16 @@
},
{
"name": "php-http/message",
- "version": "1.16.0",
+ "version": "1.16.1",
"source": {
"type": "git",
"url": "https://github.com/php-http/message.git",
- "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd"
+ "reference": "5997f3289332c699fa2545c427826272498a2088"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/message/zipball/47a14338bf4ebd67d317bf1144253d7db4ab55fd",
- "reference": "47a14338bf4ebd67d317bf1144253d7db4ab55fd",
+ "url": "https://api.github.com/repos/php-http/message/zipball/5997f3289332c699fa2545c427826272498a2088",
+ "reference": "5997f3289332c699fa2545c427826272498a2088",
"shasum": ""
},
"require": {
@@ -902,9 +906,9 @@
],
"support": {
"issues": "https://github.com/php-http/message/issues",
- "source": "https://github.com/php-http/message/tree/1.16.0"
+ "source": "https://github.com/php-http/message/tree/1.16.1"
},
- "time": "2023-05-17T06:43:38+00:00"
+ "time": "2024-03-07T13:22:09+00:00"
},
{
"name": "php-http/message-factory",
@@ -963,16 +967,16 @@
},
{
"name": "php-http/promise",
- "version": "1.2.1",
+ "version": "1.3.1",
"source": {
"type": "git",
"url": "https://github.com/php-http/promise.git",
- "reference": "44a67cb59f708f826f3bec35f22030b3edb90119"
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-http/promise/zipball/44a67cb59f708f826f3bec35f22030b3edb90119",
- "reference": "44a67cb59f708f826f3bec35f22030b3edb90119",
+ "url": "https://api.github.com/repos/php-http/promise/zipball/fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
+ "reference": "fc85b1fba37c169a69a07ef0d5a8075770cc1f83",
"shasum": ""
},
"require": {
@@ -1009,9 +1013,9 @@
],
"support": {
"issues": "https://github.com/php-http/promise/issues",
- "source": "https://github.com/php-http/promise/tree/1.2.1"
+ "source": "https://github.com/php-http/promise/tree/1.3.1"
},
- "time": "2023-11-08T12:57:08+00:00"
+ "time": "2024-03-15T13:55:21+00:00"
},
{
"name": "psr/event-dispatcher",
@@ -1117,20 +1121,20 @@
},
{
"name": "psr/http-factory",
- "version": "1.0.2",
+ "version": "1.1.0",
"source": {
"type": "git",
"url": "https://github.com/php-fig/http-factory.git",
- "reference": "e616d01114759c4c489f93b099585439f795fe35"
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/php-fig/http-factory/zipball/e616d01114759c4c489f93b099585439f795fe35",
- "reference": "e616d01114759c4c489f93b099585439f795fe35",
+ "url": "https://api.github.com/repos/php-fig/http-factory/zipball/2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
+ "reference": "2b4765fddfe3b508ac62f829e852b1501d3f6e8a",
"shasum": ""
},
"require": {
- "php": ">=7.0.0",
+ "php": ">=7.1",
"psr/http-message": "^1.0 || ^2.0"
},
"type": "library",
@@ -1154,7 +1158,7 @@
"homepage": "https://www.php-fig.org/"
}
],
- "description": "Common interfaces for PSR-7 HTTP message factories",
+ "description": "PSR-17: Common interfaces for PSR-7 HTTP message factories",
"keywords": [
"factory",
"http",
@@ -1166,9 +1170,9 @@
"response"
],
"support": {
- "source": "https://github.com/php-fig/http-factory/tree/1.0.2"
+ "source": "https://github.com/php-fig/http-factory"
},
- "time": "2023-04-10T20:10:41+00:00"
+ "time": "2024-04-15T12:06:14+00:00"
},
{
"name": "psr/http-message",
@@ -1269,16 +1273,16 @@
},
{
"name": "symfony/deprecation-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/deprecation-contracts.git",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf"
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/7c3aff79d10325257a001fcf92d991f24fc967cf",
- "reference": "7c3aff79d10325257a001fcf92d991f24fc967cf",
+ "url": "https://api.github.com/repos/symfony/deprecation-contracts/zipball/0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
+ "reference": "0e0d29ce1f20deffb4ab1b016a7257c4f1e789a1",
"shasum": ""
},
"require": {
@@ -1287,7 +1291,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1316,7 +1320,7 @@
"description": "A generic function and convention to trigger deprecation notices",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/deprecation-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/deprecation-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -1332,28 +1336,28 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/event-dispatcher",
- "version": "v6.3.2",
+ "version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher.git",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e"
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
- "reference": "adb01fe097a4ee930db9258a3cc906b5beb5cf2e",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher/zipball/9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
+ "reference": "9fa7f7a21beb22a39a8f3f28618b29e50d7a55a7",
"shasum": ""
},
"require": {
- "php": ">=8.1",
+ "php": ">=8.2",
"symfony/event-dispatcher-contracts": "^2.5|^3"
},
"conflict": {
- "symfony/dependency-injection": "<5.4",
+ "symfony/dependency-injection": "<6.4",
"symfony/service-contracts": "<2.5"
},
"provide": {
@@ -1362,13 +1366,13 @@
},
"require-dev": {
"psr/log": "^1|^2|^3",
- "symfony/config": "^5.4|^6.0",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/error-handler": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-foundation": "^5.4|^6.0",
+ "symfony/config": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/error-handler": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-foundation": "^6.4|^7.0",
"symfony/service-contracts": "^2.5|^3",
- "symfony/stopwatch": "^5.4|^6.0"
+ "symfony/stopwatch": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -1396,7 +1400,7 @@
"description": "Provides tools that allow your application components to communicate with each other by dispatching events and listening to them",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/event-dispatcher/tree/v6.3.2"
+ "source": "https://github.com/symfony/event-dispatcher/tree/v7.1.1"
},
"funding": [
{
@@ -1412,20 +1416,20 @@
"type": "tidelift"
}
],
- "time": "2023-07-06T06:56:43+00:00"
+ "time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/event-dispatcher-contracts",
- "version": "v3.3.0",
+ "version": "v3.5.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/event-dispatcher-contracts.git",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df"
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/a76aed96a42d2b521153fb382d418e30d18b59df",
- "reference": "a76aed96a42d2b521153fb382d418e30d18b59df",
+ "url": "https://api.github.com/repos/symfony/event-dispatcher-contracts/zipball/8f93aec25d41b72493c6ddff14e916177c9efc50",
+ "reference": "8f93aec25d41b72493c6ddff14e916177c9efc50",
"shasum": ""
},
"require": {
@@ -1435,7 +1439,7 @@
"type": "library",
"extra": {
"branch-alias": {
- "dev-main": "3.4-dev"
+ "dev-main": "3.5-dev"
},
"thanks": {
"name": "symfony/contracts",
@@ -1472,7 +1476,7 @@
"standards"
],
"support": {
- "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.3.0"
+ "source": "https://github.com/symfony/event-dispatcher-contracts/tree/v3.5.0"
},
"funding": [
{
@@ -1488,40 +1492,40 @@
"type": "tidelift"
}
],
- "time": "2023-05-23T14:45:45+00:00"
+ "time": "2024-04-18T09:32:20+00:00"
},
{
"name": "symfony/http-foundation",
- "version": "v6.3.7",
+ "version": "v7.1.1",
"source": {
"type": "git",
"url": "https://github.com/symfony/http-foundation.git",
- "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e"
+ "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/http-foundation/zipball/59d1837d5d992d16c2628cd0d6b76acf8d69b33e",
- "reference": "59d1837d5d992d16c2628cd0d6b76acf8d69b33e",
+ "url": "https://api.github.com/repos/symfony/http-foundation/zipball/74d171d5b6a1d9e4bfee09a41937c17a7536acfa",
+ "reference": "74d171d5b6a1d9e4bfee09a41937c17a7536acfa",
"shasum": ""
},
"require": {
- "php": ">=8.1",
- "symfony/deprecation-contracts": "^2.5|^3",
+ "php": ">=8.2",
"symfony/polyfill-mbstring": "~1.1",
"symfony/polyfill-php83": "^1.27"
},
"conflict": {
- "symfony/cache": "<6.3"
+ "doctrine/dbal": "<3.6",
+ "symfony/cache": "<6.4"
},
"require-dev": {
- "doctrine/dbal": "^2.13.1|^3|^4",
+ "doctrine/dbal": "^3.6|^4",
"predis/predis": "^1.1|^2.0",
- "symfony/cache": "^6.3",
- "symfony/dependency-injection": "^5.4|^6.0",
- "symfony/expression-language": "^5.4|^6.0",
- "symfony/http-kernel": "^5.4.12|^6.0.12|^6.1.4",
- "symfony/mime": "^5.4|^6.0",
- "symfony/rate-limiter": "^5.2|^6.0"
+ "symfony/cache": "^6.4|^7.0",
+ "symfony/dependency-injection": "^6.4|^7.0",
+ "symfony/expression-language": "^6.4|^7.0",
+ "symfony/http-kernel": "^6.4|^7.0",
+ "symfony/mime": "^6.4|^7.0",
+ "symfony/rate-limiter": "^6.4|^7.0"
},
"type": "library",
"autoload": {
@@ -1549,7 +1553,7 @@
"description": "Defines an object-oriented layer for the HTTP specification",
"homepage": "https://symfony.com",
"support": {
- "source": "https://github.com/symfony/http-foundation/tree/v6.3.7"
+ "source": "https://github.com/symfony/http-foundation/tree/v7.1.1"
},
"funding": [
{
@@ -1565,20 +1569,20 @@
"type": "tidelift"
}
],
- "time": "2023-10-28T23:55:27+00:00"
+ "time": "2024-05-31T14:57:53+00:00"
},
{
"name": "symfony/polyfill-mbstring",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-mbstring.git",
- "reference": "42292d99c55abe617799667f454222c54c60e229"
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/42292d99c55abe617799667f454222c54c60e229",
- "reference": "42292d99c55abe617799667f454222c54c60e229",
+ "url": "https://api.github.com/repos/symfony/polyfill-mbstring/zipball/fd22ab50000ef01661e2a31d850ebaa297f8e03c",
+ "reference": "fd22ab50000ef01661e2a31d850ebaa297f8e03c",
"shasum": ""
},
"require": {
@@ -1592,9 +1596,6 @@
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -1632,90 +1633,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.28.0"
- },
- "funding": [
- {
- "url": "https://symfony.com/sponsor",
- "type": "custom"
- },
- {
- "url": "https://github.com/fabpot",
- "type": "github"
- },
- {
- "url": "https://tidelift.com/funding/github/packagist/symfony/symfony",
- "type": "tidelift"
- }
- ],
- "time": "2023-07-28T09:04:16+00:00"
- },
- {
- "name": "symfony/polyfill-php80",
- "version": "v1.28.0",
- "source": {
- "type": "git",
- "url": "https://github.com/symfony/polyfill-php80.git",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5"
- },
- "dist": {
- "type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php80/zipball/6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "reference": "6caa57379c4aec19c0a12a38b59b26487dcfe4b5",
- "shasum": ""
- },
- "require": {
- "php": ">=7.1"
- },
- "type": "library",
- "extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
- "thanks": {
- "name": "symfony/polyfill",
- "url": "https://github.com/symfony/polyfill"
- }
- },
- "autoload": {
- "files": [
- "bootstrap.php"
- ],
- "psr-4": {
- "Symfony\\Polyfill\\Php80\\": ""
- },
- "classmap": [
- "Resources/stubs"
- ]
- },
- "notification-url": "https://packagist.org/downloads/",
- "license": [
- "MIT"
- ],
- "authors": [
- {
- "name": "Ion Bazan",
- "email": "ion.bazan@gmail.com"
- },
- {
- "name": "Nicolas Grekas",
- "email": "p@tchwork.com"
- },
- {
- "name": "Symfony Community",
- "homepage": "https://symfony.com/contributors"
- }
- ],
- "description": "Symfony polyfill backporting some PHP 8.0+ features to lower PHP versions",
- "homepage": "https://symfony.com",
- "keywords": [
- "compatibility",
- "polyfill",
- "portable",
- "shim"
- ],
- "support": {
- "source": "https://github.com/symfony/polyfill-php80/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-mbstring/tree/v1.30.0"
},
"funding": [
{
@@ -1731,31 +1649,27 @@
"type": "tidelift"
}
],
- "time": "2023-01-26T09:26:14+00:00"
+ "time": "2024-06-19T12:30:46+00:00"
},
{
"name": "symfony/polyfill-php83",
- "version": "v1.28.0",
+ "version": "v1.30.0",
"source": {
"type": "git",
"url": "https://github.com/symfony/polyfill-php83.git",
- "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11"
+ "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9"
},
"dist": {
"type": "zip",
- "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
- "reference": "b0f46ebbeeeda3e9d2faebdfbf4b4eae9b59fa11",
+ "url": "https://api.github.com/repos/symfony/polyfill-php83/zipball/dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
+ "reference": "dbdcdf1a4dcc2743591f1079d0c35ab1e2dcbbc9",
"shasum": ""
},
"require": {
- "php": ">=7.1",
- "symfony/polyfill-php80": "^1.14"
+ "php": ">=7.1"
},
"type": "library",
"extra": {
- "branch-alias": {
- "dev-main": "1.28-dev"
- },
"thanks": {
"name": "symfony/polyfill",
"url": "https://github.com/symfony/polyfill"
@@ -1795,7 +1709,7 @@
"shim"
],
"support": {
- "source": "https://github.com/symfony/polyfill-php83/tree/v1.28.0"
+ "source": "https://github.com/symfony/polyfill-php83/tree/v1.30.0"
},
"funding": [
{
@@ -1811,7 +1725,7 @@
"type": "tidelift"
}
],
- "time": "2023-08-16T06:22:46+00:00"
+ "time": "2024-06-19T12:35:24+00:00"
}
],
"packages-dev": [],
@@ -1823,7 +1737,7 @@
"platform": [],
"platform-dev": [],
"platform-overrides": {
- "php": "8.1.0"
+ "php": "8.2.0"
},
- "plugin-api-version": "2.3.0"
+ "plugin-api-version": "2.6.0"
}
From 5d6786e69be0cf03818186d7c2790a7e0af2ceff Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Mon, 29 Jul 2024 13:15:06 +0600
Subject: [PATCH 04/26] pkp/pkp-lib#9892 PHPUnit 11 doc block to attributes
convert to update deprecations
---
.../dc/tests/OAIMetadataFormat_DCTest.php | 39 +++++++++--------
.../classes/search/ArticleSearchIndexTest.php | 42 ++++---------------
tests/classes/search/ArticleSearchTest.php | 13 +++---
3 files changed, 33 insertions(+), 61 deletions(-)
diff --git a/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php b/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
index 24fbe8bf027..d8df8881fc1 100755
--- a/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
+++ b/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
@@ -35,6 +35,7 @@
use APP\section\Section;
use APP\submission\Submission;
use Illuminate\Support\LazyCollection;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\MockObject\MockObject;
use PKP\author\Repository as AuthorRepository;
use PKP\core\Dispatcher;
@@ -48,6 +49,8 @@
use PKP\submission\SubmissionSubjectDAO;
use PKP\tests\PKPTestCase;
+#[CoversClass(OAIMetadataFormat_DC::class)]
+#[CoversClass(\APP\plugins\metadata\dc11\filter\Dc11SchemaArticleAdapter::class)]
class OAIMetadataFormat_DCTest extends PKPTestCase
{
/**
@@ -74,10 +77,6 @@ protected function getMockedContainerKeys(): array
return [...parent::getMockedContainerKeys(), GalleyCollector::class, AuthorRepository::class];
}
- /**
- * @covers OAIMetadataFormat_DC
- * @covers \APP\plugins\metadata\dc11\filter\Dc11SchemaArticleAdapter
- */
public function testToXml()
{
//
@@ -123,14 +122,14 @@ public function testToXml()
->getMock();
$article->expects($this->any())
->method('getId')
- ->will($this->returnValue(9));
+ ->willReturn(9);
$article->setData('locale', 'en');
$article->setId(9);
$article->setData('contextId', $journalId);
$author->setSubmissionId($article->getId());
$article->expects($this->any())
->method('getCurrentPublication')
- ->will($this->returnValue($publication));
+ ->willReturn($publication);
/** @var Doi|MockObject */
$galleyDoiObject = $this->getMockBuilder(Doi::class)
@@ -147,10 +146,10 @@ public function testToXml()
->getMock();
$galley->expects(self::any())
->method('getFileType')
- ->will($this->returnValue('galley-filetype'));
+ ->willReturn('galley-filetype');
$galley->expects(self::any())
->method('getBestGalleyId')
- ->will($this->returnValue(98));
+ ->willReturn(98);
$galley->setId(98);
$galley->setData('doiObject', $galleyDoiObject);
$galley->setData('locale', 'en');
@@ -165,7 +164,7 @@ public function testToXml()
$journal->expects($this->any())
->method('getSetting')
->with('publishingMode')
- ->will($this->returnValue(Journal::PUBLISHING_MODE_OPEN));
+ ->willReturn(Journal::PUBLISHING_MODE_OPEN);
$journal->setName('journal-title', 'en');
$journal->setData('publisherInstitution', 'journal-publisher');
$journal->setPrimaryLocale('en');
@@ -192,7 +191,7 @@ public function testToXml()
->getMock();
$issue->expects($this->any())
->method('getIssueIdentification')
- ->will($this->returnValue('issue-identification'));
+ ->willReturn('issue-identification');
$issue->setId(96);
$issue->setDatePublished('2010-11-05');
$issue->setData('doiObject', $issueDoiObject);
@@ -217,8 +216,8 @@ public function testToXml()
// Dispatcher
/** @var Dispatcher|MockObject */
$dispatcher = $this->getMockBuilder(Dispatcher::class)
- ->onlyMethods(['url'])
- ->getMock();
+ ->onlyMethods(['url'])
+ ->getMock();
$dispatcher->expects($this->any())
->method('url')
->will($this->returnCallback(fn ($request, $shortcut, $newContext = null, $handler = null, $op = null, $path = null) => $handler . '-' . $op . '-' . implode('-', $path)));
@@ -229,10 +228,10 @@ public function testToXml()
->getMock();
$requestMock->expects($this->any())
->method('getRouter')
- ->will($this->returnValue($router));
+ ->willReturn($router);
$requestMock->expects($this->any())
->method('getDispatcher')
- ->will($this->returnValue($dispatcher));
+ ->willReturn($dispatcher);
Registry::set('request', $requestMock);
//
@@ -245,13 +244,13 @@ public function testToXml()
->getMock();
$oaiDao->expects($this->any())
->method('getJournal')
- ->will($this->returnValue($journal));
+ ->willReturn($journal);
$oaiDao->expects($this->any())
->method('getSection')
- ->will($this->returnValue($section));
+ ->willReturn($section);
$oaiDao->expects($this->any())
->method('getIssue')
- ->will($this->returnValue($issue));
+ ->willReturn($issue);
DAORegistry::registerDAO('OAIDAO', $oaiDao);
/** @var GalleyCollector|MockObject */
@@ -261,7 +260,7 @@ public function testToXml()
->getMock();
$mockGalleyCollector->expects($this->any())
->method('getMany')
- ->will($this->returnValue(LazyCollection::wrap($galleys)));
+ ->willReturn(LazyCollection::wrap($galleys));
app()->instance(GalleyCollector::class, $mockGalleyCollector);
// Mocked DAO to return the subjects
@@ -270,7 +269,7 @@ public function testToXml()
->getMock();
$submissionSubjectDao->expects($this->any())
->method('getSubjects')
- ->will($this->returnValue(['en' => ['article-subject', 'article-subject-class']]));
+ ->willReturn(['en' => ['article-subject', 'article-subject-class']]);
DAORegistry::registerDAO('SubmissionSubjectDAO', $submissionSubjectDao);
// Mocked DAO to return the keywords
@@ -279,7 +278,7 @@ public function testToXml()
->getMock();
$submissionKeywordDao->expects($this->any())
->method('getKeywords')
- ->will($this->returnValue(['en' => ['article-keyword']]));
+ ->willReturn(['en' => ['article-keyword']]);
DAORegistry::registerDAO('SubmissionKeywordDAO', $submissionKeywordDao);
diff --git a/tests/classes/search/ArticleSearchIndexTest.php b/tests/classes/search/ArticleSearchIndexTest.php
index f4c85f3fc8d..c8fd1d9f3ff 100644
--- a/tests/classes/search/ArticleSearchIndexTest.php
+++ b/tests/classes/search/ArticleSearchIndexTest.php
@@ -26,6 +26,7 @@
use APP\submission\Submission;
use Mockery;
use Mockery\MockInterface;
+use PHPUnit\Framework\Attributes\CoversClass;
use PHPUnit\Framework\MockObject\MockObject;
use PKP\db\DAORegistry;
use PKP\db\DAOResultFactory;
@@ -34,6 +35,7 @@
use PKP\submissionFile\SubmissionFile;
use PKP\tests\PKPTestCase;
+#[CoversClass(ArticleSearchIndex::class)]
class ArticleSearchIndexTest extends PKPTestCase
{
//
@@ -77,9 +79,7 @@ protected function tearDown(): void
//
// Unit tests
//
- /**
- * @covers ArticleSearchIndex
- */
+
public function testUpdateFileIndexViaPluginHook()
{
// Diverting to the search plugin hook.
@@ -100,9 +100,6 @@ public function testUpdateFileIndexViaPluginHook()
Hook::clear('ArticleSearchIndex::submissionFileChanged');
}
- /**
- * @covers ArticleSearchIndex
- */
public function testDeleteTextIndex()
{
// Prepare the mock environment for this test.
@@ -116,9 +113,6 @@ public function testDeleteTextIndex()
$articleSearchIndex->submissionFileDeleted(0);
}
- /**
- * @covers ArticleSearchIndex
- */
public function testDeleteTextIndexViaPluginHook()
{
// Diverting to the search plugin hook.
@@ -140,9 +134,6 @@ public function testDeleteTextIndexViaPluginHook()
Hook::clear('ArticleSearchIndex::submissionFileDeleted');
}
- /**
- * @covers ArticleSearchIndex
- */
public function testRebuildIndex()
{
// Prepare the mock environment for this test.
@@ -160,9 +151,6 @@ public function testRebuildIndex()
$articleSearchIndex->rebuildIndex(true);
}
- /**
- * @covers ArticleSearchIndex
- */
public function testRebuildIndexViaPluginHook()
{
// Diverting to the search plugin hook.
@@ -180,9 +168,6 @@ public function testRebuildIndexViaPluginHook()
Hook::clear('ArticleSearchIndex::rebuildIndex');
}
- /**
- * @covers ArticleSearchIndex
- */
public function testIndexArticleMetadata()
{
// Make sure that no hook is being called.
@@ -203,16 +188,13 @@ public function testIndexArticleMetadata()
->getMock();
$article->expects($this->any())
->method('getCurrentPublication')
- ->will($this->returnValue($publication));
+ ->willReturn($publication);
// Test indexing an article with a mock environment.
$articleSearchIndex = $this->getMockArticleSearchIndex($this->atLeastOnce());
$articleSearchIndex->submissionMetadataChanged($article);
}
- /**
- * @covers ArticleSearchIndex
- */
public function testIndexArticleMetadataViaPluginHook()
{
// Diverting to the search plugin hook.
@@ -231,9 +213,6 @@ public function testIndexArticleMetadataViaPluginHook()
Hook::clear('ArticleSearchIndex::articleMetadataChanged');
}
- /**
- * @covers ArticleSearchIndex
- */
public function testIndexSubmissionFiles()
{
// Make sure that no hook is being called.
@@ -247,9 +226,6 @@ public function testIndexSubmissionFiles()
$this->assertTrue(true);
}
- /**
- * @covers ArticleSearchIndex
- */
public function testIndexSubmissionFilesViaPluginHook()
{
// Diverting to the search plugin hook.
@@ -388,12 +364,12 @@ private function registerMockArticleSearchDAO($clearIndexExpected, $deleteArticl
// Test the clearIndex() method.
$articleSearchDao->expects($clearIndexExpected)
->method('clearIndex')
- ->will($this->returnValue(null));
+ ->willReturn(null);
// Test the deleteSubmissionKeywords() method.
$articleSearchDao->expects($deleteArticleExpected)
->method('deleteSubmissionKeywords')
- ->will($this->returnValue(null));
+ ->willReturn(null);
// Register the mock DAO.
DAORegistry::registerDAO('ArticleSearchDAO', $articleSearchDao);
@@ -417,12 +393,12 @@ private function registerMockJournalDAO()
->getMock();
$journalsIterator
->method('toIterator')
- ->will($this->returnValue([]));
+ ->willReturn([]);
// Mock the getAll() method.
$journalDao->expects($this->any())
->method('getAll')
- ->will($this->returnValue($journalsIterator));
+ ->willReturn($journalsIterator);
// Register the mock DAO.
DAORegistry::registerDAO('JournalDAO', $journalDao);
@@ -460,7 +436,7 @@ private function getMockArticleSearchIndex($expectedCall)
// Check for _updateTextIndex() calls.
$articleSearchIndex->expects($expectedCall)
->method('_updateTextIndex')
- ->will($this->returnValue(null));
+ ->willReturn(null);
return $articleSearchIndex;
}
}
diff --git a/tests/classes/search/ArticleSearchTest.php b/tests/classes/search/ArticleSearchTest.php
index 52bcdfe95fe..9dce898c7a9 100644
--- a/tests/classes/search/ArticleSearchTest.php
+++ b/tests/classes/search/ArticleSearchTest.php
@@ -26,10 +26,12 @@
use APP\search\ArticleSearchDAO;
use Mockery;
use Mockery\MockInterface;
+use PHPUnit\Framework\Attributes\CoversClass;
use PKP\db\DAORegistry;
use PKP\plugins\Hook;
use PKP\tests\PKPTestCase;
+#[CoversClass(ArticleSearch::class)]
class ArticleSearchTest extends PKPTestCase
{
private const SUBMISSION_SEARCH_TEST_DEFAULT_ARTICLE = 1;
@@ -87,9 +89,7 @@ protected function tearDown(): void
//
// Unit tests
//
- /**
- * @covers ArticleSearch
- */
+
public function testRetrieveResults()
{
// Make sure that no hook is being called.
@@ -133,9 +133,6 @@ public function testRetrieveResults()
self::assertTrue($searchResult->eof());
}
- /**
- * @covers ArticleSearch
- */
public function testRetrieveResultsViaPluginHook()
{
// Diverting a search to the search plugin hook.
@@ -248,7 +245,7 @@ private function registerMockArticleSearchDAO()
// Mock the getPhraseResults() method.
$articleSearchDao->expects($this->any())
->method('getPhraseResults')
- ->will($this->returnValue($searchResult));
+ ->willReturn($searchResult);
// Register the mock DAO.
DAORegistry::registerDAO('ArticleSearchDAO', $articleSearchDao);
@@ -273,7 +270,7 @@ private function registerMockJournalDAO()
// Mock the getById() method.
$journalDao->expects($this->any())
->method('getById')
- ->will($this->returnValue($journal));
+ ->willReturn($journal);
// Register the mock DAO.
DAORegistry::registerDAO('JournalDAO', $journalDao);
From 7e512e41dac0e1af55d6b13b761e4ee9f917ad0b Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Mon, 29 Jul 2024 16:08:50 +0600
Subject: [PATCH 05/26] pkp/pkp-lib#9892 WIP: MariaDB driver compatibility
---
classes/migration/install/MetricsMigration.php | 2 ++
classes/migration/install/OJSMigration.php | 14 ++++++++++----
.../upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php | 1 +
.../upgrade/v3_4_0/I9231_FixMetricsIndexes.php | 2 ++
4 files changed, 15 insertions(+), 4 deletions(-)
diff --git a/classes/migration/install/MetricsMigration.php b/classes/migration/install/MetricsMigration.php
index 035a0b4c4e0..86e798dd469 100644
--- a/classes/migration/install/MetricsMigration.php
+++ b/classes/migration/install/MetricsMigration.php
@@ -221,6 +221,7 @@ public function up(): void
$table->index(['context_id', 'submission_id'], 'msgd_context_id_submission_id');
switch (DB::getDriverName()) {
case 'mysql':
+ case 'mariadb':
// See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
// where city is defined as varchar(80)
$table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
@@ -253,6 +254,7 @@ public function up(): void
$table->index(['context_id', 'submission_id'], 'msgm_context_id_submission_id');
switch (DB::getDriverName()) {
case 'mysql':
+ case 'mariadb':
// See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
// where city is defined as varchar(80)
$table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
diff --git a/classes/migration/install/OJSMigration.php b/classes/migration/install/OJSMigration.php
index 6c5792c8671..0c3ed7785ae 100644
--- a/classes/migration/install/OJSMigration.php
+++ b/classes/migration/install/OJSMigration.php
@@ -115,9 +115,12 @@ public function up(): void
});
// Add partial index (DBMS-specific)
switch (DB::getDriverName()) {
- case 'mysql': DB::unprepared('CREATE INDEX issue_settings_name_value ON issue_settings (setting_name(50), setting_value(150))');
+ case 'mysql':
+ case 'mariadb':
+ DB::unprepared('CREATE INDEX issue_settings_name_value ON issue_settings (setting_name(50), setting_value(150))');
break;
- case 'pgsql': DB::unprepared("CREATE INDEX issue_settings_name_value ON issue_settings (setting_name, setting_value) WHERE setting_name IN ('medra::registeredDoi', 'datacite::registeredDoi')");
+ case 'pgsql':
+ DB::unprepared("CREATE INDEX issue_settings_name_value ON issue_settings (setting_name, setting_value) WHERE setting_name IN ('medra::registeredDoi', 'datacite::registeredDoi')");
break;
}
@@ -303,9 +306,12 @@ public function up(): void
});
// Add partial index (DBMS-specific)
switch (DB::getDriverName()) {
- case 'mysql': DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name(50), setting_value(150))');
+ case 'mysql':
+ case 'mariadb':
+ DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name(50), setting_value(150))');
break;
- case 'pgsql': DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name, setting_value)');
+ case 'pgsql':
+ DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name, setting_value)');
break;
}
diff --git a/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php b/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
index b62d0c9ed85..92024e29575 100644
--- a/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
+++ b/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
@@ -23,6 +23,7 @@ public function up(): void
{
switch (DB::getDriverName()) {
case 'mysql':
+ case 'mariadb':
DB::unprepared(
"DELETE dot
FROM data_object_tombstones dot
diff --git a/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
index b1164da9ff3..1f783d7931b 100644
--- a/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
+++ b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
@@ -54,6 +54,7 @@ public function up(): void
$table->dropUnique('msgd_uc_load_context_submission_c_r_c_date');
switch (DB::getDriverName()) {
case 'mysql':
+ case 'mariadb':
$table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
break;
case 'pgsql':
@@ -65,6 +66,7 @@ public function up(): void
$table->dropUnique('msgm_uc_context_submission_c_r_c_month');
switch (DB::getDriverName()) {
case 'mysql':
+ case 'mariadb':
$table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
break;
case 'pgsql':
From 599452bb25d8d72d0caa3bb40dc0bc1d1516c872 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Thu, 1 Aug 2024 16:37:13 +0600
Subject: [PATCH 06/26] pkp/pkp-lib#9892 fixed column types and added float to
decimal change migration
---
.../migration/install/JournalsMigration.php | 2 +-
.../migration/install/MetricsMigration.php | 30 +++++------
classes/migration/install/OJSMigration.php | 48 ++++++++---------
.../v3_4_0/I7901_Duplicate_OAI_IDs.php | 15 +++---
.../v3_4_0/I9231_FixMetricsIndexes.php | 30 +++++------
.../I9892_FloatToDecimalColumnTypeUpdate.php | 51 +++++++++++++++++++
dbscripts/xml/upgrade.xml | 1 +
7 files changed, 104 insertions(+), 73 deletions(-)
create mode 100644 classes/migration/upgrade/v3_5_0/I9892_FloatToDecimalColumnTypeUpdate.php
diff --git a/classes/migration/install/JournalsMigration.php b/classes/migration/install/JournalsMigration.php
index a39e242b15c..e0bc39cb536 100644
--- a/classes/migration/install/JournalsMigration.php
+++ b/classes/migration/install/JournalsMigration.php
@@ -29,7 +29,7 @@ public function up(): void
$table->comment('A list of all journals in the installation of OJS.');
$table->bigInteger('journal_id')->autoIncrement();
$table->string('path', 32);
- $table->float('seq', 53)->default(0)->comment('Used to order lists of journals');
+ $table->float('seq')->default(0)->comment('Used to order lists of journals');
$table->string('primary_locale', 28);
$table->smallInteger('enabled')->default(1)->comment('Controls whether or not the journal is considered "live" and will appear on the website. (Note that disabled journals may still be accessible, but only if the user knows the URL.)');
$table->unique(['path'], 'journals_path');
diff --git a/classes/migration/install/MetricsMigration.php b/classes/migration/install/MetricsMigration.php
index 86e798dd469..d214809e6c8 100644
--- a/classes/migration/install/MetricsMigration.php
+++ b/classes/migration/install/MetricsMigration.php
@@ -219,17 +219,14 @@ public function up(): void
$table->integer('metric_unique');
$table->index(['context_id', 'submission_id'], 'msgd_context_id_submission_id');
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
// See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
// where city is defined as varchar(80)
- $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
- break;
- case 'pgsql':
- $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date');
- break;
- }
+ $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date'),
+ 'pgsql' =>
+ $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date')
+ };
});
Schema::create('metrics_submission_geo_monthly', function (Blueprint $table) {
@@ -252,17 +249,14 @@ public function up(): void
$table->integer('metric_unique');
$table->index(['context_id', 'submission_id'], 'msgm_context_id_submission_id');
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
// See "Create a database table" here: https://db-ip.com/db/format/ip-to-city-lite/csv.html
// where city is defined as varchar(80)
- $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
- break;
- case 'pgsql':
- $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month');
- break;
- }
+ $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month'),
+ 'pgsql' =>
+ $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month')
+ };
});
// Usage stats total item temporary records
diff --git a/classes/migration/install/OJSMigration.php b/classes/migration/install/OJSMigration.php
index 0c3ed7785ae..329c85aea1f 100644
--- a/classes/migration/install/OJSMigration.php
+++ b/classes/migration/install/OJSMigration.php
@@ -38,7 +38,7 @@ public function up(): void
$table->foreign('review_form_id', 'sections_review_form_id')->references('review_form_id')->on('review_forms')->onDelete('set null');
$table->index(['review_form_id'], 'sections_review_form_id');
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->smallInteger('editor_restricted')->default(0);
$table->smallInteger('meta_indexed')->default(0);
$table->smallInteger('meta_reviewed')->default(1);
@@ -114,15 +114,12 @@ public function up(): void
$table->unique(['issue_id', 'locale', 'setting_name'], 'issue_settings_unique');
});
// Add partial index (DBMS-specific)
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
- DB::unprepared('CREATE INDEX issue_settings_name_value ON issue_settings (setting_name(50), setting_value(150))');
- break;
- case 'pgsql':
- DB::unprepared("CREATE INDEX issue_settings_name_value ON issue_settings (setting_name, setting_value) WHERE setting_name IN ('medra::registeredDoi', 'datacite::registeredDoi')");
- break;
- }
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
+ DB::unprepared('CREATE INDEX issue_settings_name_value ON issue_settings (setting_name(50), setting_value(150))'),
+ 'pgsql' =>
+ DB::unprepared("CREATE INDEX issue_settings_name_value ON issue_settings (setting_name, setting_value) WHERE setting_name IN ('medra::registeredDoi', 'datacite::registeredDoi')")
+ };
Schema::create('issue_files', function (Blueprint $table) {
$table->comment('Relationships between issues and issue files, such as cover images.');
@@ -157,7 +154,7 @@ public function up(): void
$table->index(['file_id'], 'issue_galleys_file_id');
$table->string('label', 255)->nullable();
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->string('url_path', 64)->nullable();
$table->index(['url_path'], 'issue_galleys_url_path');
@@ -192,7 +189,7 @@ public function up(): void
$table->foreign('journal_id', 'custom_issue_orders_journal_id')->references('journal_id')->on('journals')->onDelete('cascade');
$table->index(['journal_id'], 'custom_issue_orders_journal_id');
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->unique(['issue_id'], 'custom_issue_orders_unique');
});
@@ -209,7 +206,7 @@ public function up(): void
$table->foreign('section_id', 'custom_section_orders_section_id')->references('section_id')->on('sections')->onDelete('cascade');
$table->index(['section_id'], 'custom_section_orders_section_id');
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->unique(['issue_id', 'section_id'], 'custom_section_orders_unique');
});
@@ -231,7 +228,7 @@ public function up(): void
$table->foreign('section_id', 'publications_section_id')->references('section_id')->on('sections')->onDelete('set null');
$table->index(['section_id'], 'publications_section_id');
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->bigInteger('submission_id');
$table->foreign('submission_id', 'publications_submission_id')->references('submission_id')->on('submissions')->onDelete('cascade');
@@ -277,7 +274,7 @@ public function up(): void
$table->foreign('submission_file_id')->references('submission_file_id')->on('submission_files');
$table->index(['submission_file_id'], 'publication_galleys_submission_file_id');
- $table->float('seq', 53)->default(0);
+ $table->float('seq')->default(0);
$table->string('remote_url', 2047)->nullable();
$table->smallInteger('is_approved')->default(0);
$table->string('url_path', 64)->nullable();
@@ -305,15 +302,12 @@ public function up(): void
$table->unique(['galley_id', 'locale', 'setting_name'], 'publication_galley_settings_unique');
});
// Add partial index (DBMS-specific)
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
- DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name(50), setting_value(150))');
- break;
- case 'pgsql':
- DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name, setting_value)');
- break;
- }
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
+ DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name(50), setting_value(150))'),
+ 'pgsql' =>
+ DB::unprepared('CREATE INDEX publication_galley_settings_name_value ON publication_galley_settings (setting_name, setting_value)')
+ };
// Subscription types.
Schema::create('subscription_types', function (Blueprint $table) {
@@ -324,14 +318,14 @@ public function up(): void
$table->foreign('journal_id', 'subscription_types_journal_id')->references('journal_id')->on('journals')->onDelete('cascade');
$table->index(['journal_id'], 'subscription_types_journal_id');
- $table->float('cost', 53);
+ $table->decimal('cost', 8, 2)->unsigned();
$table->string('currency_code_alpha', 3);
$table->smallInteger('duration')->nullable();
$table->smallInteger('format');
$table->smallInteger('institutional')->default(0);
$table->smallInteger('membership')->default(0);
$table->smallInteger('disable_public_display');
- $table->float('seq', 53);
+ $table->float('seq');
});
// Locale-specific subscription type data
@@ -421,7 +415,7 @@ public function up(): void
$table->index(['user_id'], 'completed_payments_user_id');
$table->bigInteger('assoc_id')->nullable();
- $table->float('amount', 53);
+ $table->decimal('amount', 8, 2)->unsigned();
$table->string('currency_code_alpha', 3)->nullable();
$table->string('payment_method_plugin_name', 80)->nullable();
});
diff --git a/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php b/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
index 92024e29575..ebb5537ba42 100644
--- a/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
+++ b/classes/migration/upgrade/v3_4_0/I7901_Duplicate_OAI_IDs.php
@@ -21,9 +21,8 @@ class I7901_Duplicate_OAI_IDs extends \PKP\migration\Migration
*/
public function up(): void
{
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
DB::unprepared(
"DELETE dot
FROM data_object_tombstones dot
@@ -33,9 +32,8 @@ public function up(): void
JOIN publication_settings psissue ON (psissue.publication_id = p.publication_id AND psissue.setting_name='issueId' AND psissue.locale='')
JOIN issues i ON (CAST(i.issue_id AS CHAR(20)) = psissue.setting_value)
WHERE i.published = 1 AND j.enabled = 1 AND p.status = 3"
- );
- break;
- case 'pgsql':
+ ),
+ 'pgsql' =>
DB::unprepared(
"DELETE FROM data_object_tombstones dot
USING submissions s, journals j, publications p, publication_settings psissue, issues i
@@ -45,9 +43,8 @@ public function up(): void
AND psissue.publication_id = p.publication_id
AND psissue.setting_name='issueId' AND psissue.locale='' AND (CAST(i.issue_id AS CHAR(20)) = psissue.setting_value)
AND i.published = 1 AND j.enabled = 1 AND p.status = 3"
- );
- break;
- }
+ )
+ };
}
/**
diff --git a/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
index 1f783d7931b..f8fbbc2e980 100644
--- a/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
+++ b/classes/migration/upgrade/v3_4_0/I9231_FixMetricsIndexes.php
@@ -52,27 +52,21 @@ public function up(): void
// and create new ones using city column prefix for MySQL
Schema::table('metrics_submission_geo_daily', function (Blueprint $table) {
$table->dropUnique('msgd_uc_load_context_submission_c_r_c_date');
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
- $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date');
- break;
- case 'pgsql':
- $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date');
- break;
- }
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
+ $table->unique([DB::raw('load_id, context_id, submission_id, country, region, city(80), date')], 'msgd_uc_load_context_submission_c_r_c_date'),
+ 'pgsql' =>
+ $table->unique(['load_id', 'context_id', 'submission_id', 'country', 'region', 'city', 'date'], 'msgd_uc_load_context_submission_c_r_c_date'),
+ };
});
Schema::table('metrics_submission_geo_monthly', function (Blueprint $table) {
$table->dropUnique('msgm_uc_context_submission_c_r_c_month');
- switch (DB::getDriverName()) {
- case 'mysql':
- case 'mariadb':
- $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month');
- break;
- case 'pgsql':
- $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month');
- break;
- }
+ match (DB::getDriverName()) {
+ 'mysql', 'mariadb' =>
+ $table->unique([DB::raw('context_id, submission_id, country, region, city(80), month')], 'msgm_uc_context_submission_c_r_c_month'),
+ 'pgsql' =>
+ $table->unique(['context_id', 'submission_id', 'country', 'region', 'city', 'month'], 'msgm_uc_context_submission_c_r_c_month'),
+ };
});
}
diff --git a/classes/migration/upgrade/v3_5_0/I9892_FloatToDecimalColumnTypeUpdate.php b/classes/migration/upgrade/v3_5_0/I9892_FloatToDecimalColumnTypeUpdate.php
new file mode 100644
index 00000000000..521ad3ff738
--- /dev/null
+++ b/classes/migration/upgrade/v3_5_0/I9892_FloatToDecimalColumnTypeUpdate.php
@@ -0,0 +1,51 @@
+decimal('cost', 8, 2)->unsigned()->change();
+ });
+
+ Schema::table('completed_payments', function (Blueprint $table) {
+ $table->decimal('amount', 8, 2)->unsigned()->change();
+ });
+ }
+
+ /**
+ * Reverse the migrations.
+ */
+ public function down(): void
+ {
+ Schema::table('subscription_types', function (Blueprint $table) {
+ $table->double('cost')->change();
+ });
+
+ Schema::table('completed_payments', function (Blueprint $table) {
+ $table->double('amount')->change();
+ });
+ }
+}
diff --git a/dbscripts/xml/upgrade.xml b/dbscripts/xml/upgrade.xml
index 2f925e9d549..6cb8bcdf44f 100644
--- a/dbscripts/xml/upgrade.xml
+++ b/dbscripts/xml/upgrade.xml
@@ -128,6 +128,7 @@
+
From e8ee0251ce0ab79294a2a93d6dd012792feaaec9 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Tue, 6 Aug 2024 16:11:35 +0600
Subject: [PATCH 07/26] pkp/pkp-lib#9892 fixing failing tests
---
tests/classes/search/ArticleSearchIndexTest.php | 10 ++++++++--
1 file changed, 8 insertions(+), 2 deletions(-)
diff --git a/tests/classes/search/ArticleSearchIndexTest.php b/tests/classes/search/ArticleSearchIndexTest.php
index c8fd1d9f3ff..cb54b014d79 100644
--- a/tests/classes/search/ArticleSearchIndexTest.php
+++ b/tests/classes/search/ArticleSearchIndexTest.php
@@ -24,6 +24,7 @@
use APP\search\ArticleSearchDAO;
use APP\search\ArticleSearchIndex;
use APP\submission\Submission;
+use ArrayIterator;
use Mockery;
use Mockery\MockInterface;
use PHPUnit\Framework\Attributes\CoversClass;
@@ -144,7 +145,12 @@ public function testRebuildIndex()
Hook::clear('ArticleSearchIndex::rebuildIndex');
// Test log output.
- $this->expectOutputString(__('search.cli.rebuildIndex.clearingIndex') . ' ... ' . __('search.cli.rebuildIndex.done') . "\n");
+ $this->expectOutputString(
+ __('search.cli.rebuildIndex.clearingIndex')
+ . ' ... '
+ . __('search.cli.rebuildIndex.done')
+ . "\n"
+ );
// Test rebuilding the index with a mock database back-end.
$articleSearchIndex = Application::getSubmissionSearchIndex();
@@ -393,7 +399,7 @@ private function registerMockJournalDAO()
->getMock();
$journalsIterator
->method('toIterator')
- ->willReturn([]);
+ ->willReturn(new ArrayIterator());
// Mock the getAll() method.
$journalDao->expects($this->any())
From b510b96dd57f766b1817ebb884927ffe5f9222fd Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Wed, 7 Aug 2024 02:34:57 +0600
Subject: [PATCH 08/26] pkp/pkp-lib#9892 removing Doctrine DBAL related method
usage
---
classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php | 6 ++++--
.../migration/upgrade/v3_4_0/PreflightCheckMigration.php | 5 ++++-
2 files changed, 8 insertions(+), 3 deletions(-)
diff --git a/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
index 4b9982a42e2..e8422f13736 100644
--- a/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
+++ b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
@@ -15,11 +15,13 @@
namespace APP\migration\upgrade\v3_4_0;
use Illuminate\Database\Schema\Blueprint;
-use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
+use PKP\core\traits\HasForeignKey;
class I6093_AddForeignKeys extends \PKP\migration\upgrade\v3_4_0\I6093_AddForeignKeys
{
+ use HasForeignKey;
+
protected function getContextTable(): string
{
return 'journals';
@@ -92,7 +94,7 @@ public function up(): void
});
// Attempt to drop the previous foreign key, which doesn't have the cascade rule
- if (DB::getDoctrineSchemaManager()->introspectTable('publication_galleys')->hasForeignKey('publication_galleys_submission_file_id_foreign')) {
+ if ($this->hasForeignKey('publication_galleys', 'publication_galleys_submission_file_id_foreign')) {
Schema::table('publication_galleys', fn (Blueprint $table) => $table->dropForeign('publication_galleys_submission_file_id_foreign'));
}
diff --git a/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
index c9b685cf29d..b596188d355 100644
--- a/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
+++ b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
@@ -19,10 +19,13 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
+use PKP\core\traits\HasForeignKey;
use Throwable;
class PreflightCheckMigration extends \PKP\migration\upgrade\v3_4_0\PreflightCheckMigration
{
+ use HasForeignKey;
+
public function up(): void
{
parent::up();
@@ -301,7 +304,7 @@ protected function getEntityRelationships(): array
protected function dropForeignKeys(): void
{
parent::dropForeignKeys();
- if (DB::getDoctrineSchemaManager()->introspectTable('publication_galleys')->hasForeignKey('publication_galleys_submission_file_id_foreign')) {
+ if ($this->hasForeignKey('publication_galleys', 'publication_galleys_submission_file_id_foreign')) {
Schema::table('publication_galleys', fn (Blueprint $table) => $table->dropForeign('publication_galleys_submission_file_id_foreign'));
}
}
From 76a1c7df7a1870f1b46d78a7a8125f96127db63c Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Wed, 7 Aug 2024 18:19:40 +0600
Subject: [PATCH 09/26] pkp/pkp-lib#9892 added missing upgrade migration
---
dbscripts/xml/upgrade.xml | 1 +
1 file changed, 1 insertion(+)
diff --git a/dbscripts/xml/upgrade.xml b/dbscripts/xml/upgrade.xml
index 6cb8bcdf44f..450e10700d4 100644
--- a/dbscripts/xml/upgrade.xml
+++ b/dbscripts/xml/upgrade.xml
@@ -68,6 +68,7 @@
+
From 012760cdfa9a9e48ecb1a558b1d6f4b8312b8639 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Fri, 9 Aug 2024 23:41:36 +0600
Subject: [PATCH 10/26] pkp/pkp-lib#9892 moved the foreign key check form trait
to core pkp migration class
---
classes/install/Upgrade.php | 5 +++--
classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php | 3 ---
classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php | 3 ---
3 files changed, 3 insertions(+), 8 deletions(-)
diff --git a/classes/install/Upgrade.php b/classes/install/Upgrade.php
index fed8c7acdc2..a85a4450a68 100644
--- a/classes/install/Upgrade.php
+++ b/classes/install/Upgrade.php
@@ -18,6 +18,7 @@
use APP\core\Application;
use APP\template\TemplateManager;
+use Illuminate\Support\Facades\Schema;
use PKP\db\DAORegistry;
use PKP\install\Installer;
use PKP\navigationMenu\NavigationMenuItemDAO;
@@ -90,7 +91,7 @@ public function clearCssCache()
*/
public function migrateStaticPagesToNavigationMenuItems()
{
- if ($this->tableExists('static_pages')) {
+ if (Schema::hasTable('static_pages')) {
$contextDao = Application::getContextDAO();
$navigationMenuItemDao = DAORegistry::getDAO('NavigationMenuItemDAO'); /** @var NavigationMenuItemDAO $navigationMenuItemDao */
@@ -147,4 +148,4 @@ public function _fileStageToPath($fileStage)
if (!PKP_STRICT_MODE) {
class_alias('\APP\install\Upgrade', '\Upgrade');
-}
\ No newline at end of file
+}
diff --git a/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
index e8422f13736..f26ed6fe060 100644
--- a/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
+++ b/classes/migration/upgrade/v3_4_0/I6093_AddForeignKeys.php
@@ -16,12 +16,9 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\Schema;
-use PKP\core\traits\HasForeignKey;
class I6093_AddForeignKeys extends \PKP\migration\upgrade\v3_4_0\I6093_AddForeignKeys
{
- use HasForeignKey;
-
protected function getContextTable(): string
{
return 'journals';
diff --git a/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
index b596188d355..eeee680aab7 100644
--- a/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
+++ b/classes/migration/upgrade/v3_4_0/PreflightCheckMigration.php
@@ -19,13 +19,10 @@
use Illuminate\Database\Schema\Blueprint;
use Illuminate\Support\Facades\DB;
use Illuminate\Support\Facades\Schema;
-use PKP\core\traits\HasForeignKey;
use Throwable;
class PreflightCheckMigration extends \PKP\migration\upgrade\v3_4_0\PreflightCheckMigration
{
- use HasForeignKey;
-
public function up(): void
{
parent::up();
From 3efc6b67c9427fdc5e95aeeb366e88a21b7edc26 Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Mon, 12 Aug 2024 14:42:22 +0600
Subject: [PATCH 11/26] pkp/pkp-lib#9892 fixed deprecated tests method
---
.../oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php | 4 ++--
1 file changed, 2 insertions(+), 2 deletions(-)
diff --git a/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php b/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
index d8df8881fc1..71449fcd7cf 100755
--- a/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
+++ b/plugins/oaiMetadataFormats/dc/tests/OAIMetadataFormat_DCTest.php
@@ -211,7 +211,7 @@ public function testToXml()
$router->setApplication($application);
$router->expects($this->any())
->method('url')
- ->will($this->returnCallback(fn ($request, $newContext = null, $handler = null, $op = null, $path = null) => $handler . '-' . $op . '-' . implode('-', $path)));
+ ->willReturnCallback(fn ($request, $newContext = null, $handler = null, $op = null, $path = null) => $handler . '-' . $op . '-' . implode('-', $path));
// Dispatcher
/** @var Dispatcher|MockObject */
@@ -220,7 +220,7 @@ public function testToXml()
->getMock();
$dispatcher->expects($this->any())
->method('url')
- ->will($this->returnCallback(fn ($request, $shortcut, $newContext = null, $handler = null, $op = null, $path = null) => $handler . '-' . $op . '-' . implode('-', $path)));
+ ->willReturnCallback(fn ($request, $shortcut, $newContext = null, $handler = null, $op = null, $path = null) => $handler . '-' . $op . '-' . implode('-', $path));
// Request
$requestMock = $this->getMockBuilder(Request::class)
From 799cc73fb9918e6ff8de67e4c0c680a224ef37ea Mon Sep 17 00:00:00 2001
From: Touhidur Rahman
Date: Mon, 12 Aug 2024 14:42:35 +0600
Subject: [PATCH 12/26] pkp/pkp-lib#9892 Submodule Update
##touhidurabir/i9892_main##
---
lib/pkp | 2 +-
1 file changed, 1 insertion(+), 1 deletion(-)
diff --git a/lib/pkp b/lib/pkp
index 14d54e52a64..34e7fe70eaf 160000
--- a/lib/pkp
+++ b/lib/pkp
@@ -1 +1 @@
-Subproject commit 14d54e52a644ce9a3a02f700cb005dd924e6b32b
+Subproject commit 34e7fe70eafd47dda983b02440ee66436ddf3586
From 53f1fb6ae593aa7aee2c509f9e77337416761cc7 Mon Sep 17 00:00:00 2001
From: Alec Smecher
Date: Tue, 13 Aug 2024 10:34:36 -0700
Subject: [PATCH 13/26] Merge remote-tracking branch
'translations/stable-3_4_0' into stable-3_4_0
---
locale/fa/author.po | 14 +-
locale/fr_FR/emails.po | 60 +-
locale/mr/editor.po | 10 +-
locale/mr/submission.po | 3 +
locale/nb/emails.po | 170 ++-
locale/nb/locale.po | 11 +-
locale/se/manager.po | 23 +-
locale/th/admin.po | 209 ++-
locale/th/default.po | 100 ++
locale/th/locale.po | 96 ++
locale/th/manager.po | 1201 +++++++++++++++++
locale/th/submission.po | 76 ++
locale/tr/locale.po | 17 +-
.../blocks/developedBy/locale/fa/locale.po | 13 +-
.../importexport/native/locale/th/locale.po | 3 +
.../marcxml/locale/se/locale.po | 3 +
plugins/themes/default/locale/th/locale.po | 95 ++
17 files changed, 1956 insertions(+), 148 deletions(-)
create mode 100644 locale/mr/submission.po
create mode 100644 locale/th/default.po
create mode 100644 locale/th/locale.po
create mode 100644 locale/th/manager.po
create mode 100644 locale/th/submission.po
create mode 100644 plugins/importexport/native/locale/th/locale.po
create mode 100644 plugins/oaiMetadataFormats/marcxml/locale/se/locale.po
create mode 100644 plugins/themes/default/locale/th/locale.po
diff --git a/locale/fa/author.po b/locale/fa/author.po
index 46d6a350838..1942bd6eaf2 100644
--- a/locale/fa/author.po
+++ b/locale/fa/author.po
@@ -1,15 +1,19 @@
+# Mehran Toreihi , 2024.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-11-19T10:49:21+00:00\n"
-"PO-Revision-Date: 2019-11-19T10:49:21+00:00\n"
-"Last-Translator: \n"
-"Language-Team: \n"
-"Language: fa_IR\n"
+"PO-Revision-Date: 2024-08-08 14:36+0000\n"
+"Last-Translator: Mehran Toreihi \n"
+"Language-Team: Persian "
+"\n"
+"Language: fa\n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
"Content-Transfer-Encoding: 8bit\n"
+"Plural-Forms: nplurals=2; plural=n > 1;\n"
+"X-Generator: Weblate 4.18.2\n"
msgid "author.submit"
msgstr "مقاله ارسالی جدید"
@@ -65,7 +69,7 @@ msgid "author.submit.nextSteps"
msgstr "مرحلهی بعدی"
msgid "author.submit.notAccepting"
-msgstr "این مجله در حال حاضر مقاله نمیپذیرد"
+msgstr "این مجله در حال حاضر مقاله نمیپذیرد."
msgid "author.submit.requestWaiver"
msgstr "درخواست تخفیف"
diff --git a/locale/fr_FR/emails.po b/locale/fr_FR/emails.po
index 66f059fa61e..a4902496ca0 100644
--- a/locale/fr_FR/emails.po
+++ b/locale/fr_FR/emails.po
@@ -1,11 +1,12 @@
# Rodolphe Lemétayer , 2024.
+# Germán Huélamo Bautista , 2024.
msgid ""
msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-02T16:17:17-08:00\n"
-"PO-Revision-Date: 2024-06-21 13:38+0000\n"
-"Last-Translator: Rodolphe Lemétayer \n"
+"PO-Revision-Date: 2024-07-27 17:07+0000\n"
+"Last-Translator: Germán Huélamo Bautista \n"
"Language-Team: French \n"
"Language: fr_FR\n"
@@ -41,7 +42,7 @@ msgstr ""
" \n"
"Vous êtes désormais inscrit en tant qu'utilisateur pour {$contextName}. "
"Veuillez conserver précieusement votre nom d'utilisateur et votre mot de "
-"passe. Vous en aurez besoin pour toutes vos interactions avec la revue. À "
+"passe. Vous en aurez besoin pour toutes vos interactions avec la revue. À "
"n'importe quel moment, vous pouvez demander à être retiré de la liste des "
"utilisateurs de la revue en me contactant. \n"
" \n"
@@ -96,14 +97,13 @@ msgstr ""
"évaluation, vous recevrez le titre et le résumé de l'article en question, et "
"serez toujours libre d'accepter ou de refuser une telle invitation. À tout "
"moment, il vous est également possible de demander à ce que votre nom soit "
-"retiré de la liste des évaluateurs-trices.
\n"
-"
Nous vous acheminons un nom d'utilisateur-trice et un mot de passe, car "
-"tous deux sont requis pour tout échange avec la revue via son site Web. Vous "
-"pouvez, par exemple, si vous le souhaitez, effectuer la mise à jour de votre "
-"profil, y compris vos domaines d'intérêt en matière d'évaluation.
\n"
-"
Nom d'utilisateur-trice : {$recipientUsername} \n"
-"Mot de passe : {$password}
\n"
-"
Merci,
{$signature}"
+"retiré de la liste des évaluateurs-trices.
Nous vous acheminons un nom "
+"d'utilisateur-trice et un mot de passe, car tous deux sont requis pour tout "
+"échange avec la revue via son site Web. Vous pouvez, par exemple, si vous le "
+"souhaitez, effectuer la mise à jour de votre profil, y compris vos domaines "
+"d'intérêt en matière d'évaluation.
Nom d'utilisateur-trice : "
+"{$recipientUsername} Mot de passe : "
+"{$password}
La revue {$contextName} a le plaisir de "
"vous annoncer la publication de son dernier numéro : {$issueIdentification}. Nous vous invitons à lire et partager son "
-"contenu avec votre collègues et communauté académique. Nous remercions "
+"contenu avec votre collègues et communauté académique.
Nous remercions "
"vivement nos auteurs-trices, réviseurs-es et rédacteurs-trices pour leurs "
"précieuses contributions à cet ouvrage, ainsi que nos lecteurs-trices pour "
"leur intérêt constant.
Cordialement,
{$signature}"
@@ -130,11 +130,11 @@ msgstr ""
"
{$recipientName},
La soumission suivante vous a été assignée pour "
"le suivi du processus éditorial.
Si vous "
-"jugez la soumission pertinente pour la revue {$contextName}, veuillez la "
-"transmettre à l'étape d'évaluation en sélectionnant \"Envoyer en évaluation\""
-" et en désignant des évaluateur.trice.s en cliquant sur « Ajouter un.e "
-"évaluateur.trice ».
Si la soumission n'est pas appropriée pour cette "
+"/>{$authors}
Résumé
{$submissionAbstract}
Si vous jugez la "
+"soumission pertinente pour la revue {$contextName}, veuillez la transmettre "
+"à l'étape d'évaluation en sélectionnant « Envoyer en évaluation» et en "
+"désignant des évaluateur.trice.s en cliquant sur « Ajouter un.e "
+"évaluateur.trice ».
Si la soumission n'est pas appropriée pour cette "
"revue, veuillez la décliner.
Je vous remercie "
"d'avance.
Cordialement,
{$contextSignature}"
@@ -233,12 +233,13 @@ msgstr "Annulation de la demande d'évaluation"
msgid "emails.reviewCancel.body"
msgstr ""
-"
{$recipientName} :
Récemment, nous vous avons demandé d'évaluer une "
+"
{$recipientName},
Récemment, nous vous avons demandé d'évaluer une "
"soumission pour {$contextName}. Nous avons décidé d'annuler notre demande "
-"que vous évaluiez le manuscrit intitulé « {$submissionTitle} ». Nous sommes "
-"désolés des inconvénients que cela pourrait vous causer et nous espérons que "
-"nous pourrons compter sur votre collaboration pour un autre projet.
Si "
-"vous avez des questions, n'hésitez pas à nous contacter.
{$signature}"
+"que vous évaluiez le manuscrit intitulé « {$submissionTitle} ».
Nous "
+"sommes désolés des inconvénients que cela pourrait vous causer et nous "
+"espérons que nous pourrons compter sur votre collaboration pour un autre "
+"projet.
Si vous avez des questions, n'hésitez pas à nous "
+"contacter.
{$signature}"
msgid "emails.reviewReinstate.subject"
msgstr ""
@@ -428,15 +429,12 @@ msgstr ""
msgid "emails.openAccessNotify.body"
msgstr ""
-"Chers lecteurs et lectrices : \n"
-" \n"
-"{$contextName} vient de rendre disponible en format libre accès le numéro "
-"suivant. Nous vous invitons à lire la table des matières ici puis visiter "
-"notre site Web ({$contextUrl}) pour lire les articles et autres textes qui "
-"pourraient vous intéresser. \n"
-" \n"
-"Merci de votre intérêt continu pour notre travail, \n"
-"{$contextSignature}"
+"
Chers lecteurs et lectrices,
{$contextName} vient de rendre "
+"disponible en libre accès le numéro {$issueIdentification}. Nous vous invitons à visiter notre site Web "
+"({$contextUrl}) pour lire les articles qui pourraient vous intéresser."
+"p>
Nous vous remercions de l'intérêt que vous portez à notre "
+"travail,
{$contextSignature}"
msgid "emails.subscriptionBeforeExpiry.subject"
msgstr "Rappel de l'expiration de l'abonnement"
diff --git a/locale/mr/editor.po b/locale/mr/editor.po
index 3db367ca0e9..b8ecab49838 100644
--- a/locale/mr/editor.po
+++ b/locale/mr/editor.po
@@ -1,7 +1,7 @@
# Murari P Tapaswi , 2024.
msgid ""
msgstr ""
-"PO-Revision-Date: 2024-07-06 12:25+0000\n"
+"PO-Revision-Date: 2024-07-24 10:40+0000\n"
"Last-Translator: Murari P Tapaswi \n"
"Language-Team: Marathi "
"\n"
@@ -74,7 +74,7 @@ msgid "editor.issues.editIssue"
msgstr "अंकाचे व्यवस्थापन : {$issueIdentification}"
msgid "editor.issues.currentIssue"
-msgstr "सद्यकालीन अंक"
+msgstr "वर्तमान अंक"
#, fuzzy
msgid "editor.issues.numArticles"
@@ -327,7 +327,7 @@ msgstr ""
"क भरण्यासाठी सूचित करा किंवा शुल्क सूट द्या."
msgid "editor.article.payment.requestPayment"
-msgstr "रक्कम भरण्यासाठी विनंती करा"
+msgstr "शुल्क भरण्याबाबत विनंती"
msgid "editor.article.removeCoverImageFileNotFound"
msgstr ""
@@ -456,7 +456,7 @@ msgid "editor.issues.subscription"
msgstr "वर्गणी"
msgid "editor.issues.confirmSetCurrentIssue"
-msgstr "तुम्ही तयार केलेला अंक खात्रीने सद्यकालीन असणार आहे?"
+msgstr "तुम्ही तयार केलेला अंक खात्रीने वर्तमान असणार आहे ना?"
msgid "editor.issues.galleys"
msgstr "अंकाची कच्ची मुद्रिते"
@@ -477,7 +477,7 @@ msgstr ""
"तुमची खात्री आहे का की तुम्ही या अंकाचे कच्चे मुद्रित काढून टाकू इच्छिता?"
msgid "grid.action.setCurrentIssue"
-msgstr "सद्यकालीन अंकाची मांडणी करा"
+msgstr "वर्तमान अंकाची मांडणी करा"
msgid "editor.article.designateReviewVersion"
msgstr "मूळ फाईलला समीक्षापूर्व स्वरूप म्हणून निर्देशित करा"
diff --git a/locale/mr/submission.po b/locale/mr/submission.po
new file mode 100644
index 00000000000..19d848b4c1c
--- /dev/null
+++ b/locale/mr/submission.po
@@ -0,0 +1,3 @@
+# Murari P Tapaswi , 2024.
+msgid ""
+msgstr "X-Generator: Weblate\nMIME-Version: 1.0\nContent-Type: text/plain; charset=UTF-8\nContent-Transfer-Encoding: 8bit"
diff --git a/locale/nb/emails.po b/locale/nb/emails.po
index ef0db7c0aec..f044f030d5e 100644
--- a/locale/nb/emails.po
+++ b/locale/nb/emails.po
@@ -8,8 +8,8 @@ msgstr ""
"Project-Id-Version: \n"
"Report-Msgid-Bugs-To: \n"
"POT-Creation-Date: 2019-12-02T16:17:17-08:00\n"
-"PO-Revision-Date: 2024-06-25 13:30+0000\n"
-"Last-Translator: Johanna Skaug \n"
+"PO-Revision-Date: 2024-07-16 14:18+0000\n"
+"Last-Translator: Aysa Ekanger \n"
"Language-Team: Norwegian Bokmål \n"
"Language: nb\n"
@@ -89,8 +89,9 @@ msgstr "Registrering som fagfelle hos {$contextName}"
msgid "emails.reviewerRegister.body"
msgstr ""
-"
På grunn av ditt faglige omdømme, har vi tillatt oss å registrere navnet "
-"ditt i databasen over potensielle fagfeller for {$contextName}. Dette "
+"
Kjære{$recipientName},
\n"
+"
På grunn av dine faglige interesser, har vi tillatt oss å registrere "
+"navnet ditt i databasen over potensielle fagfeller for {$contextName}. Dette "
"innebærer ingen form for forpliktelse fra din side, men gir oss en mulighet "
"til å henvende oss til deg hvis vi mottar manuskript innen ditt fagfelt. "
"Dersom du får en forespørsel om å fagfellevurdere et manuskript, vil du få "
@@ -99,11 +100,11 @@ msgstr ""
"som helst be om at navnet ditt blir fjernet fra listen vår over potensielle "
"fagfeller.
\n"
"
Her får du brukernavn og et passord til nettstedet vårt som kan brukes "
-"til alt arbeid med {$contextName}. Der kan du også endre profilen din, for "
-"eksempel institusjonstilhørighet og faglige interesser.
\n"
+"til alt arbeid med tidsskriftet. Der kan du også endre profilen din, for "
+"eksempel institusjonstilhørighet og fagfellevurderingsinteresser.\n"
"
Jeg tror at du vil være en utmerket "
"fagfelle for et manuskript som er innsendt til {$contextName). Nedenfor "
"finner du manuskriptets tittel og sammendrag, og jeg håper at du kan påta "
"deg denne viktige oppgaven for oss.
Hvis du har mulighet til å vurdere "
-"dette manuskript, er fristen {$reviewDueDate}. Du kan se manuskriptet, laste "
-"opp dokument og sende inn din vurdering ved å logge inn på tidsskriftets "
-"hjemmeside og følge prosessen via lenken nedenfor.
Vennligst aksepter eller avslå denne forespørselen "
-"innen {$responseDueDate}
Ta gjerne kontakt om du har spørsmål om "
-"manuskriptet eller vurderingsprosessen.
Takk for at du vurderer denne "
-"forespørselen.
Med vennlig hilsen
{$signature}"
+"dette manuskriptet, er fristen {$reviewDueDate}. Du kan se manuskriptet, "
+"laste opp fagfellevurderingsfiler og sende inn din vurdering ved å logge inn "
+"på tidsskriftets hjemmeside og følge prosessen via lenken nedenfor.
Vennligst aksepter eller avslå "
+"denne forespørselen innen {$responseDueDate}.
Ta gjerne kontakt "
+"om du har spørsmål om manuskriptet eller vurderingsprosessen.
Takk for "
+"at du vurderer denne forespørselen.
Med vennlig hilsen
{$signature}"
msgid "emails.reviewResponseOverdueAuto.subject"
msgstr "Vil du kunne vurdere dette manuskriptet for oss?"
@@ -186,57 +187,60 @@ msgstr ""
"manuskriptet.
Vær vennlig å sende oss ditt svar via "
"publiseringssystemet.
Om du har mulighet til å vurdere dette "
"manuskript, så er fristen {$reviewDueDate}. Du kan følge stegene for "
-"fagfellevurdering for å se manuskriptet, laste opp dokumenter og sende inn "
-"dine kommentarer.
{$submissionTitle}
Sammendrag"
-"p>{$submissionAbstract}
Ta gjerne kontakt hvis du har spørsmål om "
-"manuskriptet eller vurderingsprosessen
Takk for at du vurderer denne "
-"forespørselen.
Med vennlig hilsen
{$contextSignature}"
+"fagfellevurdering for å se manuskriptet, laste opp fagfellevurderingsfilene "
+"og sende inn dine kommentarer.
Ta gjerne kontakt hvis du har spørsmål om manuskriptet eller "
+"vurderingsprosessen
Takk for at du vurderer denne forespørselen."
+"p>
Med vennlig hilsen,
{$contextSignature}"
msgid "emails.reviewRequestSubsequent.subject"
msgstr "Forespørsel om fagfellevurdering av revidert innlevering"
-#, fuzzy
msgid "emails.reviewRequestSubsequent.body"
msgstr ""
-"
Kjære {$recipientName}
Takk for din vurdering av {$submissionTitle}. Forfatterne har sendt inn "
+"
Kjære {$recipientName}
Takk for din vurdering av {$submissionTitle}. Forfatterne har sendt inn "
"en revidert versjon av manuskriptet. Jeg håper du er villig til å gjøre en "
"ny vurdering av dette reviderte manuskript til {$contextName}.
Hvis du "
"har mulighet til å vurdere dette manuskriptet, er fristen {$reviewDueDate}. "
"Du kan følge stegene for "
-"fagfellevurdering for å se manuskriptet, laste opp dokumenter og sende "
-"inn din kommentarer
Vennligst aksepter eller avslå "
+"denne forespørselen innen {$responseDueDate}.
\n"
+"
Ta gjerne kontakt om du har spørsmål om manuskriptet eller "
+"vurderingsprosessen.
Takk for at du vurderer denne forespørselen, "
+"redaksjonen setter stor pris på din hjelp.
Med vennlig "
+"hilsen
{$signature}"
msgid "emails.reviewCancel.subject"
msgstr "Annulering av forespørsel om fagfellevurdering"
msgid "emails.reviewCancel.body"
msgstr ""
-"{$recipientName}: \n"
-"
Vi har dessverre bestemt oss for å annullere vår forespørsel om "
-"fagfellevurdering av innleveringen «{$submissionTitle}», som vi tidligere "
-"har bedt deg om å påta deg for {$contextName}. Vi beklager bryderiet, men "
-"håper at vi fortsatt kan be deg om å vurdere manuskript for oss i "
-"fremtiden.
\n"
+"
Kjære {$recipientName},
\n"
+"
Vi har nylig bedt deg å vurdere et manuskript for {$contextName}. Vi har "
+"nå bestemt oss å trekke tilbake vår forespørsel om fagfellevurdering av "
+"innleveringen «{$submissionTitle}».
Vi beklager bryderiet denne "
+"gangen, men håper at vi fortsatt kan be deg om å vurdere manuskript for oss "
+"i fremtiden.
\n"
"
Ta kontakt med meg hvis du har spørsmål.
{$signature}"
msgid "emails.reviewReinstate.subject"
msgstr "Har du fremdeles mulighet til å være fagfelle for {$contextName}?"
-#, fuzzy
msgid "emails.reviewReinstate.body"
msgstr ""
-"
Kjære {$recipientName}
Nylig annullerte vi vår forespørsel om å "
+"
Kjære {$recipientName}
Nylig trakk vi tilbake vår forespørsel om å "
"vurdere manuskriptet, {$submissionTitle}, for {$contextName}. Vi har endret "
"vår beslutning og håper at du fremdeles har mulighet til å gjennomføre "
-"fagfellevurderingen.
Hvis du kan ta på deg oppgaven, kan du logge inn "
-"på vår hjemmeside for å se manuskriptet, laste opp dokument og sende inn din "
-"vurdering.
Ta gjerne kontakt hvis du har spørsmål
Med vennlig "
+"fagfellevurderingen.
Hvis du kan ta på deg oppgaven, kan du logge inn på vår hjemmeside for å se "
+"manuskriptet, laste opp fagfellevurderingsfiler og sende inn din vurdering."
+"p>
Ta gjerne kontakt hvis du har spørsmål.
Med vennlig "
"hilsen
{$signature}"
msgid "emails.reviewDecline.subject"
@@ -257,30 +261,31 @@ msgstr "En påminnelse om å fullføre fagfellevurderingen din"
msgid "emails.reviewRemind.body"
msgstr ""
-"
Kjære {$recipientName}
Dette er en påminnelse om vår forespørsel om "
-"fagfellevurdering av manuskriptet: \"{$submissionTitle},\" til "
-"{$contextName}. Vi hadde håpet å motta vurderingen senest {$reviewDueDate} "
-"og ser frem til at motta den så snart den er klar.
Du kan logge inn på "
-"tidsskriftets hjemmeside og følge stegene for fagfellevurdering for å se "
-"manuskriptet, laste opp dokumenter og sende inn dine kommentarer.
Om "
-"du har behov for å utsette fristen, ta kontakt. Jeg ser frem til å høre fra "
-"deg.
På forhånd takk og med vennlig hilsen
{$signature}"
+"
Kjære {$recipientName}
Dette er en vennlig påminnelse om vår "
+"forespørsel om fagfellevurdering av manuskriptet: \"{$submissionTitle},\" "
+"til {$contextName}. Vi hadde håpet å motta vurderingen senest "
+"{$reviewDueDate} og ser frem til at motta den så snart den er klar.
Du "
+"kan logge inn på tidsskriftets "
+"hjemmeside og følge stegene for fagfellevurdering for å se manuskriptet, "
+"laste opp fagfellevurderingsfiler og sende inn dine kommentarer.
Om du "
+"har behov for å utsette fristen, vennligst ta kontakt. Jeg ser frem til å "
+"høre fra deg.
På forhånd takk og med vennlig hilsen,
{$signature}"
msgid "emails.reviewRemindAuto.subject"
msgstr "Påminnelse om å fullføre fagfellevurderingen din"
-#, fuzzy
msgid "emails.reviewRemindAuto.body"
msgstr ""
"
Kjære {$recipientName}
Dette er en automatisk generert e-post fra "
-"{$contextName} som sendes for å minne deg på at du har tatt på deg å vurdere "
-"manuskriptet: \"{$submissionTitle}.\"
Vi hadde håpet å motta "
-"vurderingen senest {$reviewDueDate} og ser frem til å motta den, så snart "
-"den er klar.
Du kan logge inn på tidsskriftets hjemmeside og følge "
-"stegene for fagfellevurdering for å se manuskriptet, laste opp dokumenter og "
-"sende inn dine kommentarer.
Hvis du har behov for å utsette fristen, "
-"ta kontakt. Jeg ser frem til å høre fra deg.
På forhånd takk og med "
-"vennlig hilsen
{$contextSignature}"
+"{$contextName} som sendes for å minne deg på vår forespørsel om din "
+"vurdering av manuskriptet: \"{$submissionTitle}.\"
Vi hadde håpet å "
+"motta vurderingen senest {$reviewDueDate} og ser frem til å motta den, så "
+"snart den er klar.
Du kan logge inn "
+"på tidsskriftets hjemmeside og følge stegene for fagfellevurdering for å "
+"se manuskriptet, laste opp fagfellevurderingsfiler og sende inn dine "
+"kommentarer.
Hvis du har behov for å utsette fristen, vennligst ta "
+"kontakt. Jeg ser frem til å høre fra deg.
På forhånd takk og med "
+"vennlig hilsen,
{$contextSignature}"
msgid "emails.editorDecisionAccept.subject"
msgstr "Innleveringen din har blitt akseptert til {$contextName}"
@@ -326,32 +331,30 @@ msgid "emails.layoutRequest.subject"
msgstr ""
"Innleveringen {$submissionId} er klar for produksjon til {$contextAcronym}"
-#, fuzzy
msgid "emails.layoutRequest.body"
msgstr ""
-"
Kjære{$recipientName}
En ny innlevering er klar til layout "
-"redigering:
1. Klikk på "
-"manuskriptets URL-adresse ovenfor.
2. Last ned de produksjonsklare "
-"filene og bruk dem for å lage et oppsett som følger tidsskriftets "
-"retningslinjer.
3. Last opp oppsettet til ‘Filer klare for "
-"produksjon’ under fanen Produksjon.
4. Gi beskjed til redaktøren om "
-"at oppsettet er lastet opp og klart via produksjonsdiskusjonen.
"
-"ol>
Hvis du ikke er i stand til at påta deg dette arbeidet på nåværende "
-"tidspunkt eller har spørsmål, ta kontakt. Takk for ditt bidrag til dette "
-"tidsskrift.
Med vennlig hilsen
{$signature}"
+"
Kjære{$recipientName}
En ny innlevering er klar til layout-"
+"redigering:
Last ned de produksjonsklare filene og bruk dem "
+"for å lage oppsett som følger tidsskriftets retningslinjer.
Last "
+"opp oppsettet til ‘Filer klare for produksjon’ under fanen Produksjon. "
+"li>
Bruk \"Diskusjon av Produksjon\" for å gi beskjed til redaktøren om "
+"at oppsettet er lastet opp og klart.
Hvis du ikke er i stand til "
+"å påta deg dette arbeidet på nåværende tidspunkt eller har spørsmål, ta "
+"kontakt. Takk for ditt bidrag til dette tidsskrift.
"
msgid "emails.emailLink.subject"
msgstr "En interessant artikkel"
@@ -396,21 +399,17 @@ msgstr ""
" \n"
"{$subscriptionSignature}"
-#, fuzzy
msgid "emails.openAccessNotify.subject"
-msgstr "Ny utgave er åpent tilgjengelig"
+msgstr ""
+"Ny utgave {$issueIdentification} av {$contextName} er nå åpent tilgjengelig."
msgid "emails.openAccessNotify.body"
msgstr ""
-"Til våre lesere: \n"
-" \n"
-"{$contextName} har nå gjort følgende utgave åpent tilgjengelig. "
-"Innholdsfortegnelsen er vedlagt. Vi inviterer deg til å besøk nettstedet "
-"vårt ({$contextUrl}) for å se nærmere på innhold som kan være av interesse."
-" \n"
-" \n"
-"Takk for at du viser interesse for arbeidet vårt. \n"
-"{$contextSignature}"
+"
Kjære {$recipientName}
\n"
+"
Det er vår glede å informere deg at utgaven {$issueIdentification} av {$contextName} er nå åpent tilgjengelig. "
+"Abonnement er ikke lenger nødvendig å lese denne utgaven.
wir freuen uns Ihnen mitteilen zu "
+"können, dass eine neue Ausgabe von {$contextName} veröffentlicht wurde: {$issueIdentification}. Wir laden Sie dazu ein, die "
+"Ausgabe zu lesen und mit Anderen Ihrer wissenschaftlichen Community zu "
+"teilen.
Vielen Dank an unsere Autor/innen, Gutachter/innen und "
+"Redakteur/innen für ihre wertvollen Beiträge - und natürlich an unsere Leser/"
+"innen für das anhaltende Interesse an unserer Arbeit.
angesichts Ihrer Expertise haben wir "
+"uns erlaubt, Ihren Namen der Gutachter/innendatenbank von {$contextName} "
+"hinzuzufügen. Dies verpflichtet Sie zu nichts, ermöglicht uns aber, Sie um "
+"mögliche Gutachten für eine Einreichung zu bitten. Wenn Sie zu einem "
+"Gutachten eingeladen werden, werden Sie Titel und Abstract des Beitrags "
+"sehen können und werden stets selber entscheiden können, ob Sie der "
+"Einladung folgen oder nicht. Sie können zu jedem Zeitpunkt Ihren Namen von "
+"der Gutachter/innenliste entfernen lassen.
Wir senden Ihnen einen "
+"Benutzer/innennamen und ein Passwort, die Sie in allen Schritten der "
+"Zusammenarbeit mit der Zeitschrift über deren Website benötigen. Vielleicht "
+"möchten Sie z.B. Ihr Profil inkl. Ihrer Begutachtungsinteressen "
+"aktualisieren.