From 4dfb88354262a60eb1bd15533e9691cfbee123fb Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Mon, 30 Oct 2023 17:08:17 -0400 Subject: [PATCH 01/17] Uses psr-12 import Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- ScieloSubmissionsReportForm.inc.php | 10 ++-- ScieloSubmissionsReportPlugin.inc.php | 23 ++++----- classes/ScieloArticle.inc.php | 2 +- classes/ScieloArticleFactory.inc.php | 6 +-- classes/ScieloArticlesDAO.inc.php | 9 ++-- classes/ScieloPreprint.inc.php | 47 +++++++++++-------- classes/ScieloPreprintFactory.inc.php | 8 ++-- classes/ScieloPreprintsDAO.inc.php | 7 ++- classes/ScieloSubmissionFactory.inc.php | 6 +-- classes/ScieloSubmissionsDAO.inc.php | 11 ++--- classes/ScieloSubmissionsOJSReport.inc.php | 2 +- classes/ScieloSubmissionsOPSReport.inc.php | 2 +- .../ScieloSubmissionsReportFactory.inc.php | 17 ++++--- ...cieloSubmissionsReportSettingsForm.inc.php | 2 +- classes/tasks/SendReportEmail.inc.php | 10 ++-- tests/ClosedDateIntervalTest.php | 3 +- tests/ScieloArticleFactoryTest.php | 26 +++++----- tests/ScieloArticleTest.php | 7 ++- tests/ScieloPreprintFactoryTest.php | 40 ++++++++-------- tests/ScieloPreprintTest.php | 7 ++- tests/ScieloSubmissionFactoryTest.php | 14 +++--- tests/ScieloSubmissionTest.php | 5 +- tests/ScieloSubmissionsOJSReportTest.php | 13 +++-- tests/ScieloSubmissionsOPSReportTest.php | 21 ++++----- tests/ScieloSubmissionsReportFactoryTest.php | 14 +++--- tests/ScieloSubmissionsReportTest.php | 11 ++--- tests/SubmissionAuthorTest.php | 3 +- 27 files changed, 161 insertions(+), 165 deletions(-) diff --git a/ScieloSubmissionsReportForm.inc.php b/ScieloSubmissionsReportForm.inc.php index be9411f..5868092 100644 --- a/ScieloSubmissionsReportForm.inc.php +++ b/ScieloSubmissionsReportForm.inc.php @@ -1,4 +1,5 @@ assign('application', $this->application); $templateManager->assign('sections', $sections); $templateManager->assign('sections_options', $sections_options); - $templateManager->assign('years', array(0=>$args[0], 1=>$args[1])); + $templateManager->assign('years', array(0 => $args[0], 1 => $args[1])); $templateManager->assign([ 'breadcrumbs' => [ [ diff --git a/ScieloSubmissionsReportPlugin.inc.php b/ScieloSubmissionsReportPlugin.inc.php index 12537bd..f2ec185 100644 --- a/ScieloSubmissionsReportPlugin.inc.php +++ b/ScieloSubmissionsReportPlugin.inc.php @@ -13,9 +13,12 @@ * @brief SciELO Submissions report plugin */ -import('lib.pkp.classes.plugins.ReportPlugin'); -import('classes.submission.Submission'); -import('plugins.reports.scieloSubmissionsReport.classes.ClosedDateInterval'); +use PKP\plugins\ReportPlugin; +use APP\submission\Submission; +use PKP\linkAction\request\AjaxModal; +use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; +use APP\plugins\reports\scieloSubmissionsReport\ScieloSubmissionsReportForm; +use APP\plugins\reports\scieloSubmissionsReport\classes\form\ScieloSubmissionsReportSettingsForm; class ScieloSubmissionsReportPlugin extends ReportPlugin { @@ -27,7 +30,6 @@ public function register($category, $path, $mainContextId = null) $success = parent::register($category, $path, $mainContextId); if ($success && Config::getVar('general', 'installed')) { - $this->import('ScieloSubmissionsReportForm'); $this->addLocaleData(); HookRegistry::register('AcronPlugin::parseCronTab', array($this, 'addPluginTasksToCrontab')); @@ -50,11 +52,12 @@ public function getDescription() return __('plugins.reports.scieloSubmissionsReport.description'); } - public function addPluginTasksToCrontab($hookName, $args) { - $taskFilesPath =& $args[0]; + public function addPluginTasksToCrontab($hookName, $args) + { + $taskFilesPath = & $args[0]; $taskFilesPath[] = $this->getPluginPath() . DIRECTORY_SEPARATOR . 'scheduledTasks.xml'; return false; - } + } public function display($args, $request) { @@ -78,9 +81,8 @@ public function display($args, $request) public function getActions($request, $actionArgs) { $router = $request->getRouter(); - import('lib.pkp.classes.linkAction.request.AjaxModal'); $actions = array_merge( - $this->getEnabled()?array( + $this->getEnabled() ? array( new LinkAction( 'pluginSettings', new AjaxModal( @@ -89,7 +91,7 @@ public function getActions($request, $actionArgs) ), __('manager.plugins.settings'), ) - ):array(), + ) : array(), parent::getActions($request, $actionArgs) ); return $actions; @@ -102,7 +104,6 @@ public function manage($args, $request) switch ($request->getUserVar('verb')) { case 'pluginSettings': - $this->import('classes.form.ScieloSubmissionsReportSettingsForm'); $form = new ScieloSubmissionsReportSettingsForm($this, $contextId); if ($request->getUserVar('save')) { $form->readInputData(); diff --git a/classes/ScieloArticle.inc.php b/classes/ScieloArticle.inc.php index 74212d5..0deb682 100644 --- a/classes/ScieloArticle.inc.php +++ b/classes/ScieloArticle.inc.php @@ -1,6 +1,6 @@ submitterIsScieloJournal = $submitterIsScieloJournal; $this->responsibles = $responsibles; @@ -24,49 +25,57 @@ public function __construct(int $id, string $title, string $submitter, string $s $this->stats = $stats; } - public function asRecord(): array { + public function asRecord(): array + { $record = array($this->id, $this->title, $this->submitter, $this->submitterCountry, $this->getSubmitterIsScieloJournal(), $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->getSectionModerators(), $this->getResponsibles(), $this->authorsAsRecord(), $this->section, $this->language, $this->getPublicationStatus(), $this->getPublicationDOI(), $this->getNotes(), $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()); - if(!is_null($this->stats)) + if(!is_null($this->stats)) { $record = array_merge($record, $this->stats->asRecord()); - + } + return $record; } - public function getSubmitterIsScieloJournal() : string { + public function getSubmitterIsScieloJournal(): string + { return $this->submitterIsScieloJournal ? __("common.yes") : __("common.no"); } - public function getResponsibles() : string { + public function getResponsibles(): string + { $messageNoResponsibles = __("plugins.reports.scieloSubmissionsReport.warning.noResponsibles"); return $this->implodeEmptyFields($this->responsibles, $messageNoResponsibles); } - public function getSectionModerators() : string { + public function getSectionModerators(): string + { $messageNoModerators = __("plugins.reports.scieloSubmissionsReport.warning.noModerators"); return $this->implodeEmptyFields($this->sectionModerators, $messageNoModerators); } - public function getPublicationStatus() : string { + public function getPublicationStatus(): string + { $messageNoPublicationStatus = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationStatus"); return $this->fillEmptyFields($this->publicationStatus, $messageNoPublicationStatus); } - public function getPublicationDOI() : string { + public function getPublicationDOI(): string + { $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); return $this->fillEmptyFields($this->publicationDOI, $messageNoPublicationDOI); } - public function getNotes() : string { - if(empty($this->notes)) + public function getNotes(): string + { + if(empty($this->notes)) { return __("plugins.reports.scieloSubmissionsReport.warning.noNotes"); - + } + return trim(preg_replace('/\s+/', ' ', "Note: " . implode(". Note: ", $this->notes))); } - public function getStats() : ?SubmissionStats { + public function getStats(): ?SubmissionStats + { return $this->stats; } } - -?> \ No newline at end of file diff --git a/classes/ScieloPreprintFactory.inc.php b/classes/ScieloPreprintFactory.inc.php index 939c06d..25847b0 100644 --- a/classes/ScieloPreprintFactory.inc.php +++ b/classes/ScieloPreprintFactory.inc.php @@ -1,9 +1,9 @@ buildCSV($csvFile); - + return $reportFilePath; } diff --git a/tests/ClosedDateIntervalTest.php b/tests/ClosedDateIntervalTest.php index 7f028e7..f1ac443 100644 --- a/tests/ClosedDateIntervalTest.php +++ b/tests/ClosedDateIntervalTest.php @@ -1,8 +1,7 @@ 'section editor', - 'pt_BR'=>'editor de seção', - 'es_ES'=> 'editor de sección']; + 'en_US' => 'section editor', + 'pt_BR' => 'editor de seção', + 'es_ES' => 'editor de sección']; $sectionEditorsUserGroup = new UserGroup(); $sectionEditorsUserGroup->setData('name', $sectionEditorUserGroupLocalizedNames); $sectionEditorsUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); @@ -87,9 +87,9 @@ private function createEditorUserGroup(): int { $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $editorUserGroupLocalizedNames = [ - 'en_US'=>'editor', - 'pt_BR'=>'editor', - 'es_ES'=>'editor']; + 'en_US' => 'editor', + 'pt_BR' => 'editor', + 'es_ES' => 'editor']; $editorsUserGroup = new UserGroup(); $editorsUserGroup->setData('name', $editorUserGroupLocalizedNames); $editorsUserGroup->setData('roleId', ROLE_ID_MANAGER); diff --git a/tests/ScieloArticleTest.php b/tests/ScieloArticleTest.php index 8d83f60..3b23ada 100644 --- a/tests/ScieloArticleTest.php +++ b/tests/ScieloArticleTest.php @@ -1,10 +1,9 @@ 'resp', - 'pt_BR'=>'resp', - 'es_ES'=>'resp' + 'en_US' => 'resp', + 'pt_BR' => 'resp', + 'es_ES' => 'resp' ]; $responsiblesUserGroup = new UserGroup(); $responsiblesUserGroup->setData("abbrev", $responsiblesUserGroupLocalizedAbbrev); @@ -207,9 +205,9 @@ private function createSectionModeratorUserGroup(): int $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $sectionModeratorUserGroupLocalizedAbbrev = [ - 'en_US'=>'am', - 'pt_BR'=>'ma', - 'es_ES'=>'ma' + 'en_US' => 'am', + 'pt_BR' => 'ma', + 'es_ES' => 'ma' ]; $sectionModeratorUserGroup = new UserGroup(); $sectionModeratorUserGroup->setData('abbrev', $sectionModeratorUserGroupLocalizedAbbrev); @@ -224,14 +222,14 @@ private function createScieloJournalUserGroup(): int $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $scieloJournalUserGroupLocalizedNames = [ - 'en_US'=>'SciELO Journal', - 'pt_BR'=>'Periódico SciELO', - 'es_ES'=>'Revista SciELO' + 'en_US' => 'SciELO Journal', + 'pt_BR' => 'Periódico SciELO', + 'es_ES' => 'Revista SciELO' ]; $scieloJournalUserGroupLocalizedAbbrev = [ - 'en_US'=>'SciELO', - 'pt_BR'=>'SciELO', - 'es_ES'=>'SciELO' + 'en_US' => 'SciELO', + 'pt_BR' => 'SciELO', + 'es_ES' => 'SciELO' ]; $scieloJournalUserGroup = new UserGroup(); $scieloJournalUserGroup->setData('name', $scieloJournalUserGroupLocalizedNames); diff --git a/tests/ScieloPreprintTest.php b/tests/ScieloPreprintTest.php index 67ecb83..04ec2fa 100644 --- a/tests/ScieloPreprintTest.php +++ b/tests/ScieloPreprintTest.php @@ -1,10 +1,9 @@ generateCSV(); $csvRows = array_map('str_getcsv', file($this->filePath)); - $lastRow = $csvRows[sizeof($csvRows)-1]; - $penultimateCellFromLastRow = $lastRow[sizeof($lastRow)-2]; + $lastRow = $csvRows[sizeof($csvRows) - 1]; + $penultimateCellFromLastRow = $lastRow[sizeof($lastRow) - 2]; $expectedAverageReviewingTime = 4; $this->assertEquals($expectedAverageReviewingTime, $penultimateCellFromLastRow); diff --git a/tests/ScieloSubmissionsOPSReportTest.php b/tests/ScieloSubmissionsOPSReportTest.php index 2377ce6..521d976 100644 --- a/tests/ScieloSubmissionsOPSReportTest.php +++ b/tests/ScieloSubmissionsOPSReportTest.php @@ -1,13 +1,12 @@ sections, $this->submissions, $includeViews); $headers = $report->getHeaders(); - $penultimateColumn = $headers[count($headers)-2]; - $lastColumn = $headers[count($headers)-1]; + $penultimateColumn = $headers[count($headers) - 2]; + $lastColumn = $headers[count($headers) - 1]; $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), $penultimateColumn); $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval"), $lastColumn); } @@ -134,8 +133,8 @@ public function testGeneratedCSVHasAverageReviewingTime(): void $this->generateCSV(); $csvRows = array_map('str_getcsv', file($this->filePath)); - $lastRow = $csvRows[sizeof($csvRows)-1]; - $penultimateCellFromLastRow = $lastRow[sizeof($lastRow)-2]; + $lastRow = $csvRows[sizeof($csvRows) - 1]; + $penultimateCellFromLastRow = $lastRow[sizeof($lastRow) - 2]; $expectedAverageReviewingTime = 4; $this->assertEquals($expectedAverageReviewingTime, $penultimateCellFromLastRow); diff --git a/tests/ScieloSubmissionsReportFactoryTest.php b/tests/ScieloSubmissionsReportFactoryTest.php index 45bcd0f..9fea5d2 100644 --- a/tests/ScieloSubmissionsReportFactoryTest.php +++ b/tests/ScieloSubmissionsReportFactoryTest.php @@ -1,13 +1,11 @@ filePath)); $expectedSections = implode(",", $this->sections); - $lastRow = $csvRows[sizeof($csvRows)-1]; - $lastCellFromLastRow = $lastRow[sizeof($lastRow)-1]; + $lastRow = $csvRows[sizeof($csvRows) - 1]; + $lastCellFromLastRow = $lastRow[sizeof($lastRow) - 1]; $this->assertEquals($expectedSections, $lastCellFromLastRow); } @@ -63,7 +62,7 @@ public function testGeneratedCSVHasSecondHeaders(): void $this->createCSVReport(); $csvRows = array_map('str_getcsv', file($this->filePath)); - $penultimateRow = $csvRows[sizeof($csvRows)-2]; + $penultimateRow = $csvRows[sizeof($csvRows) - 2]; $expectedPenultimateRow = [__("plugins.reports.scieloSubmissionsReport.header.AverageReviewingTime"), __("section.sections")]; $this->assertEquals($expectedPenultimateRow, $penultimateRow); diff --git a/tests/SubmissionAuthorTest.php b/tests/SubmissionAuthorTest.php index 00657b5..8954cde 100644 --- a/tests/SubmissionAuthorTest.php +++ b/tests/SubmissionAuthorTest.php @@ -1,8 +1,7 @@ Date: Mon, 30 Oct 2023 17:15:29 -0400 Subject: [PATCH 02/17] Fixes locale directories Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- locale/{en_US => en}/locale.po | 0 locale/{es_ES => es}/locale.po | 0 2 files changed, 0 insertions(+), 0 deletions(-) rename locale/{en_US => en}/locale.po (100%) rename locale/{es_ES => es}/locale.po (100%) diff --git a/locale/en_US/locale.po b/locale/en/locale.po similarity index 100% rename from locale/en_US/locale.po rename to locale/en/locale.po diff --git a/locale/es_ES/locale.po b/locale/es/locale.po similarity index 100% rename from locale/es_ES/locale.po rename to locale/es/locale.po From a7d967d00da310207032d26b286c538925e8aa84 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Tue, 31 Oct 2023 17:26:49 -0400 Subject: [PATCH 03/17] Fixes classes import error in unit tests Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- ...nterval.inc.php => ClosedDateInterval.php} | 4 ++ ...inalDecision.inc.php => FinalDecision.php} | 2 + ...cieloArticle.inc.php => ScieloArticle.php} | 2 + ...ctory.inc.php => ScieloArticleFactory.php} | 7 +-- ...iclesDAO.inc.php => ScieloArticlesDAO.php} | 28 +++++----- ...eloPreprint.inc.php => ScieloPreprint.php} | 2 + ...tory.inc.php => ScieloPreprintFactory.php} | 2 + ...intsDAO.inc.php => ScieloPreprintsDAO.php} | 10 ++-- ...ubmission.inc.php => ScieloSubmission.php} | 2 + ...ry.inc.php => ScieloSubmissionFactory.php} | 16 ++++-- ...nsDAO.inc.php => ScieloSubmissionsDAO.php} | 29 +++++++---- ...inc.php => ScieloSubmissionsOJSReport.php} | 2 + ...inc.php => ScieloSubmissionsOPSReport.php} | 2 + ...rt.inc.php => ScieloSubmissionsReport.php} | 2 + ...php => ScieloSubmissionsReportFactory.php} | 2 + ...ionAuthor.inc.php => SubmissionAuthor.php} | 1 + ...ssionStats.inc.php => SubmissionStats.php} | 1 + tests/ScieloArticleFactoryTest.php | 51 +++++++++++-------- tests/ScieloPreprintFactoryTest.php | 17 ++++--- tests/ScieloSubmissionFactoryTest.php | 2 +- tests/ScieloSubmissionsReportFactoryTest.php | 2 +- 21 files changed, 120 insertions(+), 66 deletions(-) rename classes/{ClosedDateInterval.inc.php => ClosedDateInterval.php} (92%) rename classes/{FinalDecision.inc.php => FinalDecision.php} (86%) rename classes/{ScieloArticle.inc.php => ScieloArticle.php} (97%) rename classes/{ScieloArticleFactory.inc.php => ScieloArticleFactory.php} (84%) rename classes/{ScieloArticlesDAO.inc.php => ScieloArticlesDAO.php} (84%) rename classes/{ScieloPreprint.inc.php => ScieloPreprint.php} (98%) rename classes/{ScieloPreprintFactory.inc.php => ScieloPreprintFactory.php} (98%) rename classes/{ScieloPreprintsDAO.inc.php => ScieloPreprintsDAO.php} (94%) rename classes/{ScieloSubmission.inc.php => ScieloSubmission.php} (98%) rename classes/{ScieloSubmissionFactory.inc.php => ScieloSubmissionFactory.php} (93%) rename classes/{ScieloSubmissionsDAO.inc.php => ScieloSubmissionsDAO.php} (88%) rename classes/{ScieloSubmissionsOJSReport.inc.php => ScieloSubmissionsOJSReport.php} (96%) rename classes/{ScieloSubmissionsOPSReport.inc.php => ScieloSubmissionsOPSReport.php} (97%) rename classes/{ScieloSubmissionsReport.inc.php => ScieloSubmissionsReport.php} (97%) rename classes/{ScieloSubmissionsReportFactory.inc.php => ScieloSubmissionsReportFactory.php} (97%) rename classes/{SubmissionAuthor.inc.php => SubmissionAuthor.php} (92%) rename classes/{SubmissionStats.inc.php => SubmissionStats.php} (89%) diff --git a/classes/ClosedDateInterval.inc.php b/classes/ClosedDateInterval.php similarity index 92% rename from classes/ClosedDateInterval.inc.php rename to classes/ClosedDateInterval.php index eb9b218..8661fbc 100644 --- a/classes/ClosedDateInterval.inc.php +++ b/classes/ClosedDateInterval.php @@ -1,5 +1,9 @@ getSubmission($submissionId); $publicationId = $submission['current_publication_id']; diff --git a/classes/ScieloArticlesDAO.inc.php b/classes/ScieloArticlesDAO.php similarity index 84% rename from classes/ScieloArticlesDAO.inc.php rename to classes/ScieloArticlesDAO.php index fb8abe6..f7bd9f8 100644 --- a/classes/ScieloArticlesDAO.inc.php +++ b/classes/ScieloArticlesDAO.php @@ -8,12 +8,17 @@ * Operations for retrieving articles and other data */ +namespace APP\plugins\reports\scieloSubmissionsReport\classes; + use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsDAO; use Illuminate\Database\Capsule\Manager as Capsule; use Illuminate\Support\Collection; use APP\decision\Decision; +use PKP\db\DAORegistry; +use PKP\security\Role; +use APP\facades\Repo; class ScieloArticlesDAO extends ScieloSubmissionsDAO { @@ -35,14 +40,12 @@ public function getReviews($submissionId): array public function getSectionEditor($submissionId): string { - $userDao = DAORegistry::getDAO('UserDAO'); - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $stageAssignmentsSectionEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); + $stageAssignmentsSectionEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_MANAGER, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsSectionEditorResults->next()) { - $user = $userDao->getById($stageAssignment->getUserId(), false); - $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); + $user = Repo::user()->get($stageAssignment->getUserId(), false); + $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); $currentUserGroupName = strtolower($userGroup->getName('en_US')); if ($currentUserGroupName == 'section editor') { return $user->getFullName(); @@ -53,15 +56,13 @@ public function getSectionEditor($submissionId): string public function getEditors($submissionId): array { - $userDao = DAORegistry::getDAO('UserDAO'); - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $stageAssignmentsEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_MANAGER, self::SUBMISSION_STAGE_ID); + $stageAssignmentsEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_MANAGER, self::SUBMISSION_STAGE_ID); $journalEditors = array(); while ($stageAssignment = $stageAssignmentsEditorResults->next()) { - $user = $userDao->getById($stageAssignment->getUserId(), false); - $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); + $user = Repo::user()->get($stageAssignment->getUserId(), false); + $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); $currentUserGroupName = strtolower($userGroup->getName('en_US')); if ($currentUserGroupName == 'editor') { array_push($journalEditors, $user->getFullName()); @@ -106,10 +107,11 @@ public function getDecisionMessage($decision) public function getLastDecision($submissionId): string { - $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); - $decisionsSubmission = $editDecisionDao->getEditorDecisions($submissionId); + $decisionIterator = Repo::decision()->getCollector() + ->filterBySubmissionIds([$submissionId]) + ->getMany(); $lastDecision = ''; - foreach ($decisionsSubmission as $decisions) { + foreach ($decisionIterator as $decisions) { $lastDecision = $decisions['decision']; } diff --git a/classes/ScieloPreprint.inc.php b/classes/ScieloPreprint.php similarity index 98% rename from classes/ScieloPreprint.inc.php rename to classes/ScieloPreprint.php index 34617fa..a6f9f71 100644 --- a/classes/ScieloPreprint.inc.php +++ b/classes/ScieloPreprint.php @@ -1,5 +1,7 @@ 'publication.relation.none', - PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', - PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' + Publication::PUBLICATION_RELATION_NONE => 'publication.relation.none', + Publication::PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', + Publication::PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' ]; return __($relationsMap[$relationStatus]); @@ -168,7 +170,7 @@ public function getFinalDecisionWithDate($submissionId, $locale) ->first(); $publicationDatePublished = get_object_vars($result)['date_published']; - if (!is_null($publicationDatePublished) && $submissionStatus == STATUS_PUBLISHED) { + if (!is_null($publicationDatePublished) && $submissionStatus == Submission::STATUS_PUBLISHED) { return new FinalDecision(__('common.accepted', [], $locale), $publicationDatePublished); } diff --git a/classes/ScieloSubmission.inc.php b/classes/ScieloSubmission.php similarity index 98% rename from classes/ScieloSubmission.inc.php rename to classes/ScieloSubmission.php index 44e930d..af3c25d 100644 --- a/classes/ScieloSubmission.inc.php +++ b/classes/ScieloSubmission.php @@ -1,5 +1,7 @@ 'submissions.queued', - STATUS_PUBLISHED => 'submission.status.published', + Submission::STATUS_PUBLISHED => 'submission.status.published', STATUS_DECLINED => 'submission.status.declined', STATUS_SCHEDULED => 'submission.status.scheduled' ]; @@ -115,7 +121,7 @@ protected function retrieveAuthors($publicationId, $locale) $submissionAuthors = []; foreach ($authorsIds as $authorId) { - $author = DAORegistry::getDAO('AuthorDAO')->getById($authorId); + $author = Repo::author()->get($authorId); $fullName = $author->getFullName($locale); $country = $author->getCountryLocalized(); $affiliation = $author->getLocalizedData('affiliation', $locale); diff --git a/classes/ScieloSubmissionsDAO.inc.php b/classes/ScieloSubmissionsDAO.php similarity index 88% rename from classes/ScieloSubmissionsDAO.inc.php rename to classes/ScieloSubmissionsDAO.php index 4b97631..dcd1d51 100644 --- a/classes/ScieloSubmissionsDAO.inc.php +++ b/classes/ScieloSubmissionsDAO.php @@ -9,13 +9,16 @@ * Operations for retrieving submissions and other data */ +namespace APP\plugins\reports\scieloSubmissionsReport\classes; + use PKP\db\DAO; use APP\decision\Decision; use APP\log\event\SubmissionEventLogEntry; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; -use Illuminate\Database\Capsule\Manager as Capsule; use Illuminate\Support\Collection; +use Illuminate\Support\Facades\DB; +use PKP\log\event\PKPSubmissionEventLogEntry; class ScieloSubmissionsDAO extends DAO { @@ -23,7 +26,7 @@ class ScieloSubmissionsDAO extends DAO public function getSubmissions($locale, $contextId, $sectionsIds, $submissionDateInterval, $finalDecisionDateInterval) { - $query = Capsule::table('submissions') + $query = DB::table('submissions') ->join('publications', 'submissions.current_publication_id', '=', 'publications.publication_id') ->where('submissions.context_id', $contextId) ->whereNotNull('submissions.date_submitted') @@ -60,7 +63,7 @@ public function getSubmissions($locale, $contextId, $sectionsIds, $submissionDat public function getSubmission($submissionId) { - $result = Capsule::table('submissions') + $result = DB::table('submissions') ->where('submission_id', '=', $submissionId) ->select('current_publication_id', 'date_submitted', 'date_last_activity', 'status', 'locale', 'context_id') ->first(); @@ -70,7 +73,7 @@ public function getSubmission($submissionId) public function getPublicationTitle($publicationId, $locale, $submissionLocale) { - $result = Capsule::table('publication_settings') + $result = DB::table('publication_settings') ->where('publication_id', '=', $publicationId) ->where('setting_name', '=', 'title') ->select('locale', 'setting_value as title') @@ -96,13 +99,13 @@ public function getPublicationTitle($publicationId, $locale, $submissionLocale) public function getPublicationSection($publicationId, $locale) { - $result = Capsule::table('publications') + $result = DB::table('publications') ->where('publication_id', '=', $publicationId) ->select('section_id') ->first(); $sectionId = get_object_vars($result)['section_id']; - $result = Capsule::table('section_settings') + $result = DB::table('section_settings') ->where('section_id', '=', $sectionId) ->where('setting_name', '=', 'title') ->where('locale', '=', $locale) @@ -115,7 +118,7 @@ public function getPublicationSection($publicationId, $locale) public function getPublicationAuthors($publicationId) { - $result = Capsule::table('authors') + $result = DB::table('authors') ->where('publication_id', '=', $publicationId) ->select('author_id') ->get(); @@ -130,9 +133,13 @@ public function getPublicationAuthors($publicationId) public function getFinalDecisionWithDate($submissionId, $locale) { - $possibleFinalDecisions = [SUBMISSION_EDITOR_DECISION_ACCEPT, SUBMISSION_EDITOR_DECISION_DECLINE, SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE]; + $possibleFinalDecisions = [ + Decision::ACCEPT, + Decision::DECLINE, + Decision::INITIAL_DECLINE + ]; - $result = Capsule::table('edit_decisions') + $result = DB::table('edit_decisions') ->where('submission_id', $submissionId) ->whereIn('decision', $possibleFinalDecisions) ->orderBy('date_decided', 'asc') @@ -149,8 +156,8 @@ public function getFinalDecisionWithDate($submissionId, $locale) public function getIdOfSubmitterUser($submissionId) { - $result = Capsule::table('event_log') - ->where('event_type', SUBMISSION_LOG_SUBMISSION_SUBMIT) + $result = DB::table('event_log') + ->where('event_type', PKPSubmissionEventLogEntry::SUBMISSION_LOG_SUBMISSION_SUBMIT) ->where('assoc_type', ASSOC_TYPE_SUBMISSION) ->where('assoc_id', $submissionId) ->select('user_id') diff --git a/classes/ScieloSubmissionsOJSReport.inc.php b/classes/ScieloSubmissionsOJSReport.php similarity index 96% rename from classes/ScieloSubmissionsOJSReport.inc.php rename to classes/ScieloSubmissionsOJSReport.php index 36a4883..a3ac166 100644 --- a/classes/ScieloSubmissionsOJSReport.inc.php +++ b/classes/ScieloSubmissionsOJSReport.php @@ -1,5 +1,7 @@ addCurrentPublicationToSubmission(); } + private function clearDB() + { + + } + protected function getAffectedTables() { return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', @@ -44,21 +54,19 @@ protected function getAffectedTables() private function createSubmission(): int { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = new Submission(); + $submission = Repo::submission()->newDataObject(); $submission->setData('contextId', $this->contextId); $submission->setData('dateSubmitted', $this->dateSubmitted); $submission->setData('status', $this->statusCode); $submission->setData('locale', $this->locale); $submission->setData('dateLastActivity', $this->dateLastActivity); - return $submissionDao->insertObject($submission); + return Repo::submission()->dao->insert($submission); } private function createPublication($sectionId): int { - $publicationDao = DAORegistry::getDAO('PublicationDAO'); - $publication = new Publication(); + $publication = Repo::publication()->newDataObject(); $publication->setData('submissionId', $this->submissionId); $publication->setData('title', $this->title, $this->locale); $publication->setData('sectionId', $sectionId); @@ -66,7 +74,7 @@ private function createPublication($sectionId): int $publication->setData('vorDoi', $this->doi); $publication->setData('status', $this->statusCode); - return $publicationDao->insertObject($publication); + return Repo::publication()->dao->insert($publication); } private function createSectionEditorUserGroup(): int @@ -99,19 +107,24 @@ private function createEditorUserGroup(): int private function createSection(): int { - $sectionDao = DAORegistry::getDAO('SectionDAO'); - $section = new Section(); + $section = Repo::section()->newDataObject(); $section->setTitle($this->sectionName, $this->locale); - $sectionId = $sectionDao->insertObject($section); + $section->setAbbrev(__('section.default.abbrev'), $this->locale); + $section->setMetaIndexed(true); + $section->setMetaReviewed(true); + $section->setPolicy(__('section.default.policy'), $this->locale); + $section->setEditorRestricted(false); + $section->setHideTitle(false); + $section->setContextId($this->contextId); + $sectionId = Repo::section()->add($section); return $sectionId; } private function createAuthors(): array { - $authorDao = DAORegistry::getDAO('AuthorDAO'); - $author1 = new Author(); - $author2 = new Author(); + $author1 = Repo::author()->newDataObject(); + $author2 = Repo::author()->newDataObject(); $author1->setData('publicationId', $this->publicationId); $author2->setData('publicationId', $this->publicationId); $author1->setData('email', "anaalice@harvard.com"); @@ -125,18 +138,16 @@ private function createAuthors(): array $author1->setData('country', 'US'); $author2->setData('country', 'BR'); - $authorDao->insertObject($author1); - $authorDao->insertObject($author2); + Repo::author()->dao->insert($author1); + Repo::author()->dao->insert($author2); return [new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University")]; } private function addCurrentPublicationToSubmission(): void { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = $submissionDao->getById($this->submissionId); - $submission->setData('currentPublicationId', $this->publicationId); - $submissionDao->updateObject($submission); + $submission = Repo::submission()->get($this->submissionId); + Repo::submission()->edit($submission, ['currentPublicationId' => $this->publicationId]); } private function createEditorUsers(bool $isSectionEditor = false) diff --git a/tests/ScieloPreprintFactoryTest.php b/tests/ScieloPreprintFactoryTest.php index 73fbdd4..a1ec94f 100644 --- a/tests/ScieloPreprintFactoryTest.php +++ b/tests/ScieloPreprintFactoryTest.php @@ -21,24 +21,29 @@ class ScieloPreprintFactoryTest extends DatabaseTestCase private $title = "eXtreme Programming: A practical guide"; private $submitter = "Don Vito Corleone"; private $dateSubmitted = '2021-05-31 15:38:24'; - private $statusCode = STATUS_PUBLISHED; + private $statusCode = Submission::STATUS_PUBLISHED; private $statusMessage; private $sectionName = "Biological Sciences"; private $dateLastActivity = '2021-06-03 16:00:00'; private $submissionAuthors; private $vorDoi = "10.666/949494"; - private $relationStatus = PUBLICATION_RELATION_PUBLISHED; + private $relationStatus; private $abstractViews = 10; private $pdfViews = 21; public function setUp(): void { parent::setUp(); + + $this->markTestSkipped( + 'Not OPS', + ); $this->sectionId = $this->createSection(); $this->submissionId = $this->createSubmission($this->statusCode); $this->publicationId = $this->createPublication($this->submissionId); $this->submissionAuthors = $this->createAuthors(); $this->statusMessage = __('submission.status.published', [], 'en_US'); + $this->relationStatus = Publication::PUBLICATION_RELATION_PUBLISHED; $this->addCurrentPublicationToSubmission($this->submissionId, $this->publicationId); } @@ -273,7 +278,7 @@ public function testSubmissionGetsFinalDecisionWithDatePosted(): void $finalDecision = __('common.accepted', [], $this->locale); $finalDecisionDate = '2021-07-31'; - $submissionId = $this->createSubmission(STATUS_PUBLISHED); + $submissionId = $this->createSubmission(Submission::STATUS_PUBLISHED); $publicationId = $this->createPublication($submissionId, $finalDecisionDate); $this->addCurrentPublicationToSubmission($submissionId, $publicationId); @@ -314,9 +319,9 @@ public function testSubmissionGetsPublicationStatus(): void $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); $relationsMap = [ - PUBLICATION_RELATION_NONE => 'publication.relation.none', - PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', - PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' + Publication::PUBLICATION_RELATION_NONE => 'publication.relation.none', + Publication::PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', + Publication::PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' ]; $expectedPublicationStatus = __($relationsMap[$this->relationStatus]); diff --git a/tests/ScieloSubmissionFactoryTest.php b/tests/ScieloSubmissionFactoryTest.php index de7299f..3fd24fc 100644 --- a/tests/ScieloSubmissionFactoryTest.php +++ b/tests/ScieloSubmissionFactoryTest.php @@ -18,7 +18,7 @@ class ScieloSubmissionFactoryTest extends DatabaseTestCase private $submitter = "Don Vito Corleone"; private $submitterCountry = "Brazil"; private $dateSubmitted = '2021-05-31 15:38:24'; - private $statusCode = STATUS_PUBLISHED; + private $statusCode = Submission::STATUS_PUBLISHED; private $statusMessage; private $sectionName = "Biological Sciences"; private $dateLastActivity = '2021-06-03 16:00:00'; diff --git a/tests/ScieloSubmissionsReportFactoryTest.php b/tests/ScieloSubmissionsReportFactoryTest.php index 9fea5d2..f695268 100644 --- a/tests/ScieloSubmissionsReportFactoryTest.php +++ b/tests/ScieloSubmissionsReportFactoryTest.php @@ -56,7 +56,7 @@ private function createSubmission($dateSubmitted = null, $dateFinalDecision = nu $submission = new Submission(); $submission->setData('contextId', $this->contextId); $submission->setData('locale', $this->locale); - $submission->setData('status', STATUS_PUBLISHED); + $submission->setData('status', Submission::STATUS_PUBLISHED); if (!is_null($dateSubmitted)) { $submission->setData('dateSubmitted', $dateSubmitted); From 44b63e38b69143f58cd1eecee613df1d3a47cae0 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Wed, 1 Nov 2023 17:58:02 -0400 Subject: [PATCH 04/17] WIP: Fixes unit tests Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloArticlesDAO.php | 6 +- classes/ScieloPreprintsDAO.php | 4 +- tests/ScieloArticleFactoryTest.php | 176 ++++++++++++++----- tests/ScieloArticleTest.php | 6 +- tests/ScieloPreprintFactoryTest.php | 12 +- tests/ScieloPreprintTest.php | 10 +- tests/ScieloSubmissionFactoryTest.php | 4 +- tests/ScieloSubmissionTest.php | 2 +- tests/ScieloSubmissionsOJSReportTest.php | 12 +- tests/ScieloSubmissionsOPSReportTest.php | 8 +- tests/ScieloSubmissionsReportFactoryTest.php | 2 +- 11 files changed, 161 insertions(+), 81 deletions(-) diff --git a/classes/ScieloArticlesDAO.php b/classes/ScieloArticlesDAO.php index f7bd9f8..9a67d36 100644 --- a/classes/ScieloArticlesDAO.php +++ b/classes/ScieloArticlesDAO.php @@ -41,12 +41,12 @@ public function getReviews($submissionId): array public function getSectionEditor($submissionId): string { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $stageAssignmentsSectionEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_MANAGER, self::SUBMISSION_STAGE_ID); + $stageAssignmentsSectionEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsSectionEditorResults->next()) { $user = Repo::user()->get($stageAssignment->getUserId(), false); $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); - $currentUserGroupName = strtolower($userGroup->getName('en_US')); + $currentUserGroupName = strtolower($userGroup->getName('en')); if ($currentUserGroupName == 'section editor') { return $user->getFullName(); } @@ -63,7 +63,7 @@ public function getEditors($submissionId): array while ($stageAssignment = $stageAssignmentsEditorResults->next()) { $user = Repo::user()->get($stageAssignment->getUserId(), false); $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); - $currentUserGroupName = strtolower($userGroup->getName('en_US')); + $currentUserGroupName = strtolower($userGroup->getName('en')); if ($currentUserGroupName == 'editor') { array_push($journalEditors, $user->getFullName()); } diff --git a/classes/ScieloPreprintsDAO.php b/classes/ScieloPreprintsDAO.php index dbc3127..f64e696 100644 --- a/classes/ScieloPreprintsDAO.php +++ b/classes/ScieloPreprintsDAO.php @@ -89,7 +89,7 @@ public function getSectionModerators($submissionId): array while ($stageAssignment = $stageAssignmentsResults->next()) { $user = $userDao->getById($stageAssignment->getUserId(), false); $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); - $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en_US')); + $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en')); if ($currentUserGroupAbbrev == 'am') { array_push($sectionModeratorUsers, $user->getFullName()); @@ -110,7 +110,7 @@ public function getResponsibles($submissionId): array while ($stageAssignment = $stageAssignmentsResults->next()) { $user = $userDao->getById($stageAssignment->getUserId(), false); $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); - $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en_US')); + $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en')); if ($currentUserGroupAbbrev == 'resp') { array_push($moderatorUsers, $user->getFullName()); diff --git a/tests/ScieloArticleFactoryTest.php b/tests/ScieloArticleFactoryTest.php index 57126dd..9a7857d 100644 --- a/tests/ScieloArticleFactoryTest.php +++ b/tests/ScieloArticleFactoryTest.php @@ -10,6 +10,8 @@ use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\decision\Decision; +use PKP\userGroup\relationships\UserGroupStage; +use PKP\security\Role; class ScieloArticleFactoryTest extends DatabaseTestCase { @@ -17,8 +19,15 @@ class ScieloArticleFactoryTest extends DatabaseTestCase private $submissionId; private $publicationId; private $sectionId; - - private $locale = 'en_US'; + private $sectionEditorUserGroupId; + private $editorUserGroupId; + private $author1Id; + private $author2Id; + private $firstEditorUserId; + private $secondEditorUserId; + private $stageAssignmentIds = []; + + private $locale = 'en'; private $title = "eXtreme Programming: A practical guide"; private $submitter = "Don Vito Corleone"; private $dateSubmitted = '2021-05-31 15:38:24'; @@ -32,26 +41,86 @@ class ScieloArticleFactoryTest extends DatabaseTestCase public function setUp(): void { parent::setUp(); - $sectionId = $this->createSection(); + + $this->sectionId = $this->createSection(); $this->submissionId = $this->createSubmission(); - $this->publicationId = $this->createPublication($sectionId); + $this->publicationId = $this->createPublication(); $this->submissionAuthors = $this->createAuthors(); - $this->statusMessage = __('submission.status.published', [], 'en_US'); + $this->statusMessage = __('submission.status.published', [], 'en'); $this->addCurrentPublicationToSubmission(); } - private function clearDB() + protected function tearDown(): void { - + $this->clearDB(); + parent::tearDown(); } - protected function getAffectedTables() + private function clearDB(): void { - return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', - 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', - 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage', 'review_assignments']; + $publication = Repo::publication()->get($this->publicationId); + if ($publication) { + Repo::publication()->delete($publication); + } + + $submission = Repo::submission()->get($this->submissionId); + if ($submission) { + Repo::submission()->delete($submission); + } + + $section = Repo::section()->get($this->sectionId, $this->contextId); + if ($section) { + Repo::section()->delete($section); + } + + $sectionEditorUserGroup = $this->sectionEditorUserGroupId ? Repo::userGroup()->get($this->sectionEditorUserGroupId) : null; + if ($sectionEditorUserGroup) { + Repo::userGroup()->delete($sectionEditorUserGroup); + } + + $editorUserGroup = $this->editorUserGroupId ? Repo::userGroup()->get($this->editorUserGroupId) : null; + if ($editorUserGroup) { + Repo::userGroup()->delete($editorUserGroup); + } + + $author1 = $this->author1Id ? Repo::author()->get($this->author1Id) : null; + if ($author1) { + Repo::author()->delete($author1); + } + + $author2 = $this->author2Id ? Repo::author()->get($this->author2Id) : null; + if ($author2) { + Repo::author()->delete($author2); + } + + $firstEditorUser = $this->firstEditorUserId ? Repo::user()->get($this->firstEditorUserId) : null; + if ($firstEditorUser) { + Repo::user()->delete($firstEditorUser); + } + + $secondEditorUser = $this->secondEditorUserId ? Repo::user()->get($this->secondEditorUserId) : null; + if ($secondEditorUser) { + Repo::user()->delete($secondEditorUser); + } + + if (empty($this->stageAssignmentIds)) { + return; + } + + $stageAssignmentDAO = DAORegistry::getDAO('StageAssignmentDAO'); + foreach ($this->stageAssignmentIds as $stageAssignmentId) { + $stageAssignmentDAO->getById($stageAssignmentId); + $stageAssignmentDAO->deleteObject($stageAssignment); + } } + // protected function getAffectedTables() + // { + // return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', + // 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', + // 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage', 'review_assignments']; + // } + private function createSubmission(): int { $submission = Repo::submission()->newDataObject(); @@ -64,12 +133,12 @@ private function createSubmission(): int return Repo::submission()->dao->insert($submission); } - private function createPublication($sectionId): int + private function createPublication(): int { $publication = Repo::publication()->newDataObject(); $publication->setData('submissionId', $this->submissionId); $publication->setData('title', $this->title, $this->locale); - $publication->setData('sectionId', $sectionId); + $publication->setData('sectionId', $this->sectionId); $publication->setData('relationStatus', '1'); $publication->setData('vorDoi', $this->doi); $publication->setData('status', $this->statusCode); @@ -79,30 +148,30 @@ private function createPublication($sectionId): int private function createSectionEditorUserGroup(): int { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $sectionEditorUserGroupLocalizedNames = [ - 'en_US' => 'section editor', + 'en' => 'section editor', 'pt_BR' => 'editor de seção', - 'es_ES' => 'editor de sección']; - $sectionEditorsUserGroup = new UserGroup(); + 'es' => 'editor de sección' + ]; + $sectionEditorsUserGroup = Repo::userGroup()->newDataObject(); $sectionEditorsUserGroup->setData('name', $sectionEditorUserGroupLocalizedNames); - $sectionEditorsUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); + $sectionEditorsUserGroup->setData('roleId', Role::ROLE_ID_SUB_EDITOR); $sectionEditorsUserGroup->setData('contextId', $this->contextId); - return $userGroupDao->insertObject($sectionEditorsUserGroup); + return Repo::userGroup()->add($sectionEditorsUserGroup); } private function createEditorUserGroup(): int { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $editorUserGroupLocalizedNames = [ - 'en_US' => 'editor', + 'en' => 'editor', 'pt_BR' => 'editor', - 'es_ES' => 'editor']; - $editorsUserGroup = new UserGroup(); + 'es' => 'editor' + ]; + $editorsUserGroup = Repo::userGroup()->newDataObject(); $editorsUserGroup->setData('name', $editorUserGroupLocalizedNames); - $editorsUserGroup->setData('roleId', ROLE_ID_MANAGER); + $editorsUserGroup->setData('roleId', Role::ROLE_ID_MANAGER); $editorsUserGroup->setData('contextId', $this->contextId); - return $userGroupDao->insertObject($editorsUserGroup); + return Repo::userGroup()->add($editorsUserGroup); } private function createSection(): int @@ -138,8 +207,8 @@ private function createAuthors(): array $author1->setData('country', 'US'); $author2->setData('country', 'BR'); - Repo::author()->dao->insert($author1); - Repo::author()->dao->insert($author2); + $this->author1Id = Repo::author()->dao->insert($author1); + $this->author2Id = Repo::author()->dao->insert($author2); return [new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University")]; } @@ -152,38 +221,46 @@ private function addCurrentPublicationToSubmission(): void private function createEditorUsers(bool $isSectionEditor = false) { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); - - $firstEditorUser = new User(); + $firstEditorUser = Repo::user()->newDataObject(); $firstEditorUser->setUsername('examplePeter'); $firstEditorUser->setEmail('peter@exemple.com'); $firstEditorUser->setPassword('examplepass'); $firstEditorUser->setGivenName("Peter", $this->locale); $firstEditorUser->setFamilyName("Parker", $this->locale); + $firstEditorUser->setDateRegistered(Core::getCurrentDate()); - $secondEditorUser = new User(); + $secondEditorUser = Repo::user()->newDataObject(); $secondEditorUser->setUsername('exampleJhon'); $secondEditorUser->setEmail('jhon@exemple.com'); $secondEditorUser->setPassword('exemplepass'); $secondEditorUser->setGivenName("Jhon", $this->locale); $secondEditorUser->setFamilyName("Carter", $this->locale); + $secondEditorUser->setDateRegistered(Core::getCurrentDate()); - $firstEditorUserId = $userDao->insertObject($firstEditorUser); - $secondEditorUserId = $userDao->insertObject($secondEditorUser); + $this->firstEditorUserId = Repo::user()->add($firstEditorUser); + $this->secondEditorUserId = Repo::user()->add($secondEditorUser); if ($isSectionEditor) { - $sectionEditorGroupId = $this->createSectionEditorUserGroup(); - $userGroupDao->assignUserToGroup($firstEditorUserId, $sectionEditorGroupId); - $this->createStageAssignments([$firstEditorUserId], $sectionEditorGroupId); - $userGroupDao->assignGroupToStage($this->contextId, $sectionEditorGroupId, 5); + $this->sectionEditorGroupId = $this->createSectionEditorUserGroup(); + $userGroup = Repo::userGroup()->get($this->sectionEditorGroupId); + Repo::userGroup()->assignUserToGroup($this->firstEditorUserId, $this->sectionEditorGroupId); + $this->createStageAssignments([$this->firstEditorUserId], $this->sectionEditorGroupId); + UserGroupStage::create([ + 'contextId' => $this->contextId, + 'userGroupId' => $this->sectionEditorGroupId, + 'stageId' => 5 + ]); return $firstEditorUser; } else { - $editorGroupId = $this->createEditorUserGroup(); - $userGroupDao->assignUserToGroup($firstEditorUserId, $editorGroupId); - $userGroupDao->assignUserToGroup($secondEditorUserId, $editorGroupId); - $this->createStageAssignments([$firstEditorUserId, $secondEditorUserId], $editorGroupId); - $userGroupDao->assignGroupToStage($this->contextId, $editorGroupId, 5); + $this->editorGroupId = $this->createEditorUserGroup(); + Repo::userGroup()->assignUserToGroup($this->firstEditorUserId, $this->editorGroupId); + Repo::userGroup()->assignUserToGroup($this->secondEditorUserId, $this->editorGroupId); + $this->createStageAssignments([$this->firstEditorUserId, $this->secondEditorUserId], $this->editorGroupId); + UserGroupStage::create([ + 'contextId' => $this->contextId, + 'userGroupId' => $this->editorGroupId, + 'stageId' => 5 + ]); return [$firstEditorUser, $secondEditorUser]; } } @@ -197,14 +274,13 @@ private function createDecision($submissionId, $decision, $dateDecided): void private function createStageAssignments(array $userIds, $groupId): void { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - foreach ($userIds as $userId) { - $stageAssignment = new StageAssignment(); + $stageAssignment = $stageAssignmentDao->newDataObject(); $stageAssignment->setSubmissionId($this->submissionId); $stageAssignment->setUserId($userId); $stageAssignment->setUserGroupId($groupId); $stageAssignment->setStageId(5); - $stageAssignmentDao->insertObject($stageAssignment); + $stageAssignmentIds[] = $stageAssignmentDao->insertObject($stageAssignment); } } @@ -262,8 +338,12 @@ public function testSubmissionGetsSectionEditor(): void */ public function testSubmissionGetsNoSectionEditor(): void { - $sectionEditorGroupId = $this->createSectionEditorUserGroup(); - DAORegistry::getDAO('UserGroupDAO')->assignGroupToStage($this->contextId, $sectionEditorGroupId, 5); + $this->sectionEditorGroupId = $this->createSectionEditorUserGroup(); + UserGroupStage::create([ + 'contextId' => $this->contextId, + 'userGroupId' => $this->sectionEditorGroupId, + 'stageId' => 5 + ]); $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); diff --git a/tests/ScieloArticleTest.php b/tests/ScieloArticleTest.php index 3b23ada..6d24e8d 100644 --- a/tests/ScieloArticleTest.php +++ b/tests/ScieloArticleTest.php @@ -17,7 +17,7 @@ class ScieloArticleTest extends TestCase private $status = "Published"; private $authors; private $section = "Biological Sciences"; - private $language = "en_US"; + private $language = "en"; private $finalDecision = "Accepted"; private $finalDecisionDate = "2013-09-14 22:00:00"; private $expectedReviewingTime = 8; @@ -85,9 +85,9 @@ public function testHasReviewsWhenHasAtLeastOneReview(): void public function testGetRecord(): void { - $article = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en_US", "Accepted", "2021-04-23", ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); + $article = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en_US", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; + $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; $this->assertEquals($expectedRecord, $article->asRecord()); } } diff --git a/tests/ScieloPreprintFactoryTest.php b/tests/ScieloPreprintFactoryTest.php index a1ec94f..df5c43c 100644 --- a/tests/ScieloPreprintFactoryTest.php +++ b/tests/ScieloPreprintFactoryTest.php @@ -13,7 +13,7 @@ class ScieloPreprintFactoryTest extends DatabaseTestCase { protected const WORKFLOW_STAGE_ID_SUBMISSION = 5; - private $locale = 'en_US'; + private $locale = 'en'; private $contextId = 1; private $submissionId; private $publicationId; @@ -42,7 +42,7 @@ public function setUp(): void $this->submissionId = $this->createSubmission($this->statusCode); $this->publicationId = $this->createPublication($this->submissionId); $this->submissionAuthors = $this->createAuthors(); - $this->statusMessage = __('submission.status.published', [], 'en_US'); + $this->statusMessage = __('submission.status.published', [], 'en'); $this->relationStatus = Publication::PUBLICATION_RELATION_PUBLISHED; $this->addCurrentPublicationToSubmission($this->submissionId, $this->publicationId); } @@ -193,7 +193,7 @@ private function createResponsiblesUserGroup(): int $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $responsiblesUserGroupLocalizedAbbrev = [ - 'en_US' => 'resp', + 'en' => 'resp', 'pt_BR' => 'resp', 'es_ES' => 'resp' ]; @@ -210,7 +210,7 @@ private function createSectionModeratorUserGroup(): int $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $sectionModeratorUserGroupLocalizedAbbrev = [ - 'en_US' => 'am', + 'en' => 'am', 'pt_BR' => 'ma', 'es_ES' => 'ma' ]; @@ -227,12 +227,12 @@ private function createScieloJournalUserGroup(): int $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); $scieloJournalUserGroupLocalizedNames = [ - 'en_US' => 'SciELO Journal', + 'en' => 'SciELO Journal', 'pt_BR' => 'Periódico SciELO', 'es_ES' => 'Revista SciELO' ]; $scieloJournalUserGroupLocalizedAbbrev = [ - 'en_US' => 'SciELO', + 'en' => 'SciELO', 'pt_BR' => 'SciELO', 'es_ES' => 'SciELO' ]; diff --git a/tests/ScieloPreprintTest.php b/tests/ScieloPreprintTest.php index 04ec2fa..634d9d5 100644 --- a/tests/ScieloPreprintTest.php +++ b/tests/ScieloPreprintTest.php @@ -18,7 +18,7 @@ class ScieloPreprintTest extends TestCase private $status = "Published"; private $authors; private $section = "Biological Sciences"; - private $language = "en_US"; + private $language = "en"; private $finalDecision = "Accepted"; private $finalDecisionDate = "2013-09-14 22:00:00"; private $expectedReviewingTime = 8; @@ -122,21 +122,21 @@ public function testHasStats(): void public function testGetRecord(): void { $stats = new SubmissionStats($this->abstractViews, $this->pdfViews); - $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en_US", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""], $stats); + $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""], $stats); $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); $messageSubmitterIsNotScieloJournal = __("common.no"); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en_US", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2", "10", "21"]; + $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2", "10", "21"]; $this->assertEquals($expectedRecord, $preprint->asRecord()); } public function testRecordDoesntHaveStats(): void { - $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en_US", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""]); + $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""]); $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); $messageSubmitterIsNotScieloJournal = __("common.no"); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en_US", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2"]; + $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2"]; $this->assertEquals($expectedRecord, $preprint->asRecord()); } } diff --git a/tests/ScieloSubmissionFactoryTest.php b/tests/ScieloSubmissionFactoryTest.php index 3fd24fc..ddf6f26 100644 --- a/tests/ScieloSubmissionFactoryTest.php +++ b/tests/ScieloSubmissionFactoryTest.php @@ -10,7 +10,7 @@ class ScieloSubmissionFactoryTest extends DatabaseTestCase { - private $locale = 'en_US'; + private $locale = 'en'; private $contextId = 1; private $submissionId; private $publicationId; @@ -32,7 +32,7 @@ public function setUp(): void $this->submissionId = $this->createSubmission(); $this->publicationId = $this->createPublication($sectionId); $this->submissionAuthors = $this->createAuthors(); - $this->statusMessage = __('submission.status.published', [], 'en_US'); + $this->statusMessage = __('submission.status.published', [], 'en'); $this->addCurrentPublicationToSubmission(); } diff --git a/tests/ScieloSubmissionTest.php b/tests/ScieloSubmissionTest.php index 32d0687..fab1438 100644 --- a/tests/ScieloSubmissionTest.php +++ b/tests/ScieloSubmissionTest.php @@ -16,7 +16,7 @@ class ScieloSubmissionTest extends TestCase private $status = "Published"; private $authors; private $section = "Biological Sciences"; - private $language = "en_US"; + private $language = "en"; private $finalDecision = "Accepted"; private $finalDecisionDate = "2013-09-14 22:00:00"; private $expectedReviewingTime = 8; diff --git a/tests/ScieloSubmissionsOJSReportTest.php b/tests/ScieloSubmissionsOJSReportTest.php index 349dead..6517130 100644 --- a/tests/ScieloSubmissionsOJSReportTest.php +++ b/tests/ScieloSubmissionsOJSReportTest.php @@ -39,11 +39,11 @@ private function createTestArticles(): array $finalDecisionDatesForArticles = ["2021-04-23", "2021-03-08", "2020-11-15", "", "2020-11-18"]; $noReviews = ["", ""]; - $article1 = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", $submittedDatesForArticles[0], 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en_US", "Accepted", $finalDecisionDatesForArticles[0], ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); - $article2 = new ScieloArticle(2, "Titulo 2", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[1], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "Accepted", $finalDecisionDatesForArticles[1], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article3 = new ScieloArticle(3, "Titulo 3", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[2], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "Accepted", $finalDecisionDatesForArticles[2], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article4 = new ScieloArticle(4, "Titulo 4", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[3], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "", $finalDecisionDatesForArticles[3], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article5 = new ScieloArticle(5, "Titulo 5", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[4], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "", $finalDecisionDatesForArticles[4], ["Richard Feynman"], "Neil Tyson", $noReviews, "Accept"); + $article1 = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", $submittedDatesForArticles[0], 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", $finalDecisionDatesForArticles[0], ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); + $article2 = new ScieloArticle(2, "Titulo 2", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[1], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDatesForArticles[1], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); + $article3 = new ScieloArticle(3, "Titulo 3", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[2], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDatesForArticles[2], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); + $article4 = new ScieloArticle(4, "Titulo 4", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[3], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "", $finalDecisionDatesForArticles[3], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); + $article5 = new ScieloArticle(5, "Titulo 5", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[4], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "", $finalDecisionDatesForArticles[4], ["Richard Feynman"], "Neil Tyson", $noReviews, "Accept"); return [$article1, $article2, $article3, $article4, $article5]; } @@ -141,7 +141,7 @@ public function testGeneratedCSVHasArticlesData(): void $firstLine = fgetcsv($csvFile); fclose($csvFile); - $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en_US", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; + $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; $this->assertEquals($expectedLine, $firstLine); } diff --git a/tests/ScieloSubmissionsOPSReportTest.php b/tests/ScieloSubmissionsOPSReportTest.php index 521d976..030d948 100644 --- a/tests/ScieloSubmissionsOPSReportTest.php +++ b/tests/ScieloSubmissionsOPSReportTest.php @@ -46,9 +46,9 @@ private function createTestPreprints(): array $finalDecisionDateForPreprint3 = "2020-11-15"; $stats = new SubmissionStats(10, 10); - $preprint1 = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, $submittedDateForPreprint1, 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en_US", "Accepted", $finalDecisionDateForPreprint1, ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "No DOI informed", [""], $stats); - $preprint2 = new ScieloPreprint(2, "Titulo 2", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint2, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "Accepted", $finalDecisionDateForPreprint2, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); - $preprint3 = new ScieloPreprint(3, "Titulo 3", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint3, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en_US", "Accepted", $finalDecisionDateForPreprint3, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); + $preprint1 = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, $submittedDateForPreprint1, 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", $finalDecisionDateForPreprint1, ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "No DOI informed", [""], $stats); + $preprint2 = new ScieloPreprint(2, "Titulo 2", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint2, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDateForPreprint2, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); + $preprint3 = new ScieloPreprint(3, "Titulo 3", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint3, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDateForPreprint3, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); return [$preprint1, $preprint2, $preprint3]; } @@ -153,7 +153,7 @@ public function testGeneratedCSVHasPreprintData(): void fclose($csvFile); $noMsg = __("common.no"); - $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", $noMsg, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en_US", "Sent to journal publication", "No DOI informed", "Note:", "Accepted", "2021-04-23", "2", "2", "10", "10"]; + $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", $noMsg, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", "No DOI informed", "Note:", "Accepted", "2021-04-23", "2", "2", "10", "10"]; $this->assertEquals($expectedLine, $firstLine); } } diff --git a/tests/ScieloSubmissionsReportFactoryTest.php b/tests/ScieloSubmissionsReportFactoryTest.php index f695268..d437d5f 100644 --- a/tests/ScieloSubmissionsReportFactoryTest.php +++ b/tests/ScieloSubmissionsReportFactoryTest.php @@ -10,7 +10,7 @@ class ScieloSubmissionsReportFactoryTest extends DatabaseTestCase { private $application = 'ojs'; - private $locale = 'en_US'; + private $locale = 'en'; private $contextId = 1; private $reportFactory; private $firstSectionName = "Biological Sciences"; From 017556ece0e038694a09337c3481b017ceec7dcb Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Fri, 3 Nov 2023 17:05:33 -0400 Subject: [PATCH 05/17] Fixes ScieloArticleFactory tesst class Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloArticlesDAO.php | 12 ++++---- classes/ScieloSubmission.php | 2 ++ classes/ScieloSubmissionsDAO.php | 1 + tests/ScieloArticleFactoryTest.php | 48 ++++++++++++++++++++++-------- 4 files changed, 46 insertions(+), 17 deletions(-) diff --git a/classes/ScieloArticlesDAO.php b/classes/ScieloArticlesDAO.php index 9a67d36..3146713 100644 --- a/classes/ScieloArticlesDAO.php +++ b/classes/ScieloArticlesDAO.php @@ -107,14 +107,16 @@ public function getDecisionMessage($decision) public function getLastDecision($submissionId): string { - $decisionIterator = Repo::decision()->getCollector() + $decisions = Repo::decision()->getCollector() ->filterBySubmissionIds([$submissionId]) ->getMany(); - $lastDecision = ''; - foreach ($decisionIterator as $decisions) { - $lastDecision = $decisions['decision']; + + $decision = null; + if (!$decisions->isEmpty()) { + $lastDecision = $decisions->last(); + $decision = $lastDecision->getData('decision'); } - return $this->getDecisionMessage($lastDecision); + return $this->getDecisionMessage($decision); } } diff --git a/classes/ScieloSubmission.php b/classes/ScieloSubmission.php index af3c25d..d0fe12f 100644 --- a/classes/ScieloSubmission.php +++ b/classes/ScieloSubmission.php @@ -2,6 +2,8 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; +use DateTime; + class ScieloSubmission { protected $id; diff --git a/classes/ScieloSubmissionsDAO.php b/classes/ScieloSubmissionsDAO.php index dcd1d51..997196b 100644 --- a/classes/ScieloSubmissionsDAO.php +++ b/classes/ScieloSubmissionsDAO.php @@ -18,6 +18,7 @@ use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; use Illuminate\Support\Collection; use Illuminate\Support\Facades\DB; +use DateTime; use PKP\log\event\PKPSubmissionEventLogEntry; class ScieloSubmissionsDAO extends DAO diff --git a/tests/ScieloArticleFactoryTest.php b/tests/ScieloArticleFactoryTest.php index 9a7857d..dfe6bb7 100644 --- a/tests/ScieloArticleFactoryTest.php +++ b/tests/ScieloArticleFactoryTest.php @@ -6,12 +6,16 @@ use APP\section\Section; use APP\author\Author; use APP\facades\Repo; +use Mockery; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticlesDAO; use APP\decision\Decision; use PKP\userGroup\relationships\UserGroupStage; use PKP\security\Role; +use PKP\submission\reviewRound\ReviewRound; +use PKP\submission\reviewAssignment\ReviewAssignment; class ScieloArticleFactoryTest extends DatabaseTestCase { @@ -114,13 +118,6 @@ private function clearDB(): void } } - // protected function getAffectedTables() - // { - // return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', - // 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', - // 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage', 'review_assignments']; - // } - private function createSubmission(): int { $submission = Repo::submission()->newDataObject(); @@ -265,10 +262,35 @@ private function createEditorUsers(bool $isSectionEditor = false) } } - private function createDecision($submissionId, $decision, $dateDecided): void + private function createReviewRound($submissionId) { - $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); - $editDecisionDao->updateEditorDecision($submissionId, ['editDecisionId' => null, 'decision' => $decision, 'dateDecided' => $dateDecided, 'editorId' => 1]); + $reviewRoundDao = DAORegistry::getDAO('ReviewRoundDAO'); + $stageId = 2; + $round = 1; + + $reviewRound = $reviewRoundDao->build( + $submissionId, + $stageId, + $round, + ReviewRound::REVIEW_ROUND_STATUS_PENDING_REVIEWERS + ); + + return $reviewRound; + } + + private function createDecision($submissionId, $decision, $dateDecided, $reviewRoundId = null): void + { + + $params = [ + 'decision' => $decision, + 'submissionId' => $submissionId, + 'dateDecided' => $dateDecided, + 'editorId' => 1, + 'reviewRoundId' => $reviewRoundId, + ]; + + $decision = Repo::decision()->newDataObject($params); + $decisionId = Repo::decision()->dao->insert($decision); } private function createStageAssignments(array $userIds, $groupId): void @@ -372,8 +394,10 @@ public function testSubmissionGetsLastDecision(): void */ public function testSubmissionGetsLastDecisionOfNewRound(): void { + $reviewRound = $this->createReviewRound($this->submissionId); + $decision = SUBMISSION_EDITOR_DECISION_NEW_ROUND; - $this->createDecision($this->submissionId, $decision, date(Core::getCurrentDate())); + $this->createDecision($this->submissionId, $decision, date(Core::getCurrentDate()), $reviewRound->getId()); $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); @@ -398,7 +422,7 @@ public function testSubmissionGetsNoLastDecision(): void */ public function testSubmissionGetsReviews(): void { - $recommendation = SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT; + $recommendation = ReviewAssignment::SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT; $reviewAssignment = new ReviewAssignment(); $reviewAssignment->setRecommendation($recommendation); From 1d8ff2b432a59e8c320d5e7663f1c36d0111260e Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Fri, 3 Nov 2023 17:16:10 -0400 Subject: [PATCH 06/17] Skip ScieloPreprintFactory tests in OJS Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- tests/ScieloPreprintFactoryTest.php | 14 ++++++++++---- tests/ScieloPreprintTest.php | 1 + 2 files changed, 11 insertions(+), 4 deletions(-) diff --git a/tests/ScieloPreprintFactoryTest.php b/tests/ScieloPreprintFactoryTest.php index df5c43c..2370429 100644 --- a/tests/ScieloPreprintFactoryTest.php +++ b/tests/ScieloPreprintFactoryTest.php @@ -35,9 +35,15 @@ public function setUp(): void { parent::setUp(); - $this->markTestSkipped( - 'Not OPS', - ); + $application = Application::get(); + $applicationName = $application->getName(); + + if ($applicationName != 'ops') { + $this->markTestSkipped( + 'Not OPS', + ); + } + $this->sectionId = $this->createSection(); $this->submissionId = $this->createSubmission($this->statusCode); $this->publicationId = $this->createPublication($this->submissionId); @@ -51,7 +57,7 @@ protected function getAffectedTables() { return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', - 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage', 'metrics']; + 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage']; } private function createSubmission($statusCode): int diff --git a/tests/ScieloPreprintTest.php b/tests/ScieloPreprintTest.php index 634d9d5..9c17727 100644 --- a/tests/ScieloPreprintTest.php +++ b/tests/ScieloPreprintTest.php @@ -4,6 +4,7 @@ use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; class ScieloPreprintTest extends TestCase { From a59a83d519bb44bc5f370148f839843a46e08dcf Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Mon, 6 Nov 2023 16:48:43 -0400 Subject: [PATCH 07/17] Fixes ScieloSubmissionFactory test class Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloSubmissionFactory.php | 12 +- tests/ScieloArticleFactoryTest.php | 1 - tests/ScieloFactoryTestCase.php | 157 +++++++++++++++++ tests/ScieloSubmissionFactoryTest.php | 234 ++++++++++++-------------- 4 files changed, 265 insertions(+), 139 deletions(-) create mode 100644 tests/ScieloFactoryTestCase.php diff --git a/classes/ScieloSubmissionFactory.php b/classes/ScieloSubmissionFactory.php index 0a5defa..be10785 100644 --- a/classes/ScieloSubmissionFactory.php +++ b/classes/ScieloSubmissionFactory.php @@ -71,8 +71,7 @@ protected function retrieveSubmitter($submissionId) return ""; } - $userDao = DAORegistry::getDAO('UserDAO'); - $submitter = $userDao->getById($userId); + $submitter = Repo::user()->get($userId); return $submitter->getFullName(); } @@ -86,8 +85,7 @@ protected function retrieveSubmitterCountry($submissionId) return ""; } - $userDao = DAORegistry::getDAO('UserDAO'); - $submitter = $userDao->getById($userId); + $submitter = Repo::user()->get($userId); $submitterCountry = $submitter->getCountryLocalized(); return !is_null($submitterCountry) ? $submitterCountry : ""; @@ -105,10 +103,10 @@ protected function calculateDaysUntilStatusChange($dateSubmitted, $dateLastActiv protected function getStatusMessage($statusKey) { $statusMap = [ - STATUS_QUEUED => 'submissions.queued', + Submission::STATUS_QUEUED => 'submissions.queued', Submission::STATUS_PUBLISHED => 'submission.status.published', - STATUS_DECLINED => 'submission.status.declined', - STATUS_SCHEDULED => 'submission.status.scheduled' + Submission::STATUS_DECLINED => 'submission.status.declined', + Submission::STATUS_SCHEDULED => 'submission.status.scheduled' ]; return __($statusMap[$statusKey]); diff --git a/tests/ScieloArticleFactoryTest.php b/tests/ScieloArticleFactoryTest.php index dfe6bb7..cc807dc 100644 --- a/tests/ScieloArticleFactoryTest.php +++ b/tests/ScieloArticleFactoryTest.php @@ -6,7 +6,6 @@ use APP\section\Section; use APP\author\Author; use APP\facades\Repo; -use Mockery; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; diff --git a/tests/ScieloFactoryTestCase.php b/tests/ScieloFactoryTestCase.php new file mode 100644 index 0000000..ddbf9aa --- /dev/null +++ b/tests/ScieloFactoryTestCase.php @@ -0,0 +1,157 @@ +createContext(); + $this->createSection(); + $this->createSubmission(); + $this->createAuthors(); + } + + protected function getLocale(): string + { + return 'en'; + } + + protected function getContextData(): array + { + $locale = $this->getLocale(); + + return [ + 'urlPath' => [$locale => 'test'], + 'primaryLocale' => $this->getLocale() + ]; + } + + protected function getSubmissionData(): array + { + return [ + 'contextId' => $this->context->getId(), + 'locale' => $this->getLocale() + ]; + } + + protected function getPublicationData(): array + { + return [ + 'sectionId' => $this->section->getId(), + ]; + } + + protected function getSectionData(): array + { + $locale = $this->getLocale(); + + return [ + 'abbrev' => [$locale => __('section.default.abbrev')], + 'policy' => [$locale => __('section.default.policy')], + 'metaIndexed' => true, + 'metaReviewed' => true, + 'editorRestricted' => false, + 'hideTitle' => false, + 'contextId' => $this->context->getId() + ]; + } + + protected function getAuthorsData(): array + { + $locale = $this->getLocale(); + + return [ + 'first' => [ + 'publicationId' => $this->publication->getId(), + 'email' => 'anaalice@ufam.edu.br', + 'givenName' => [$locale => 'Ana Alice'], + 'familyName' => [$locale => 'Caldas Novas'], + 'affiliation' => [$locale => 'Amazonas Federal University'], + 'country' => 'BR' + ], + 'second' => [ + 'publicationId' => $this->publication->getId(), + 'email' => 'seizi.tagima@harvard.com', + 'givenName' => [$locale => 'Seizi'], + 'familyName' => [$locale => 'Tagima'], + 'affiliation' => [$locale => 'Harvard University'], + 'country' => 'US' + ], + ]; + } + + protected function createContext(): void + { + $contextDAO = \Application::getContextDAO(); + $context = $contextDAO->newDataObject(); + $context->setAllData($this->getContextData()); + $contextDAO->insertObject($context); + + $this->context = $context; + } + + protected function createSubmission(): void + { + $submission = Repo::submission()->newDataObject($this->getSubmissionData()); + $submissionId = Repo::submission()->dao->insert($submission); + + $publication = Repo::publication()->newDataObject($this->getPublicationData()); + $publication->setData('submissionId', $submissionId); + $publicationId = Repo::publication()->add($publication); + + $submission = Repo::submission()->get($submissionId); + $submission->setData('currentPublicationId', $publicationId); + Repo::submission()->dao->update($submission); + + $this->submission = Repo::submission()->get($submission->getId()); + $this->publication = Repo::publication()->get($publicationId); + } + + protected function createSection(): void + { + $section = Repo::section()->newDataObject($this->getSectionData()); + $sectionId = Repo::section()->add($section); + + $this->section = Repo::section()->get($sectionId); + } + + protected function createAuthors(): void + { + foreach ($this->getAuthorsData() as $authorData) { + $author = Repo::author()->newDataObject($authorData); + $authorId = Repo::author()->add($author); + $author = Repo::author()->get($authorId); + + $this->authors[] = new SubmissionAuthor( + $author->getFullName(), + $author->getCountryLocalized(), + $author->getLocalizedAffiliation() + ); + } + } + + protected function tearDown(): void + { + parent::tearDown(); + + $this->deleteContext(); + } + + protected function deleteContext(): void + { + $contextDAO = \Application::getContextDAO(); + $contextDAO->deleteObject($this->context); + } +} diff --git a/tests/ScieloSubmissionFactoryTest.php b/tests/ScieloSubmissionFactoryTest.php index ddf6f26..b67f9f2 100644 --- a/tests/ScieloSubmissionFactoryTest.php +++ b/tests/ScieloSubmissionFactoryTest.php @@ -1,204 +1,166 @@ createSection(); - $this->submissionId = $this->createSubmission(); - $this->publicationId = $this->createPublication($sectionId); - $this->submissionAuthors = $this->createAuthors(); - $this->statusMessage = __('submission.status.published', [], 'en'); - $this->addCurrentPublicationToSubmission(); - } + private $submitterUser; - protected function getAffectedTables() + protected function getSectionData(): array { - return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'user_group_stage', 'stage_assignments']; + return [ + ...parent::getSectionData(), + 'title' => [ + $this->getLocale() => 'Biological Sciences' + ] + ]; } - private function createSubmission(): int + protected function getSubmissionData(): array { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = new Submission(); - $submission->setData('contextId', $this->contextId); - $submission->setData('dateSubmitted', $this->dateSubmitted); - $submission->setData('status', $this->statusCode); - $submission->setData('locale', $this->locale); - $submission->setData('dateLastActivity', $this->dateLastActivity); - - return $submissionDao->insertObject($submission); + return [ + ...parent::getSubmissionData(), + 'dateSubmitted' => '2021-05-31 15:38:24', + 'dateLastActivity' => '2021-06-03 16:00:00', + 'status' => Submission::STATUS_PUBLISHED + ]; } - private function createPublication($sectionId): int + protected function getPublicationData(): array { - $publicationDao = DAORegistry::getDAO('PublicationDAO'); - $publication = new Publication(); - $publication->setData('submissionId', $this->submissionId); - $publication->setData('title', $this->title, $this->locale); - $publication->setData('sectionId', $sectionId); - $publication->setData('relationStatus', '1'); - $publication->setData('vorDoi', $this->doi); - $publication->setData('status', $this->statusCode); - - return $publicationDao->insertObject($publication); + return [ + ...parent::getPublicationData(), + 'title' => [ + $this->getLocale() => 'eXtreme Programming: A practical guide', + ], + 'relationStatus' => 1, + 'doiObject' => Repo::doi()->newDataObject( + [ + 'doi' => '10.666/949494', + 'contextId' => $this->context->getId() + ] + ), + 'status' => Submission::STATUS_PUBLISHED + ]; } - private function createSubmitter() + private function createSubmitterUser() { - $submissionEventLogDao = DAORegistry::getDAO('SubmissionEventLogDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); - - $userSubmitter = new User(); - $userSubmitter->setUsername('the_godfather'); - $userSubmitter->setEmail('donvito@corleone.com'); - $userSubmitter->setPassword('miaumiau'); - $userSubmitter->setCountry('BR'); - $userSubmitter->setGivenName("Don", $this->locale); - $userSubmitter->setFamilyName("Vito Corleone", $this->locale); - $userSubmitterId = $userDao->insertObject($userSubmitter); - - $submissionEvent = $submissionEventLogDao->newDataObject(); - $submissionEvent->setSubmissionId($this->submissionId); - $submissionEvent->setEventType(SUBMISSION_LOG_SUBMISSION_SUBMIT); - $submissionEvent->setUserId($userSubmitterId); - $submissionEvent->setDateLogged('2021-05-28 15:19:24'); - $submissionEventLogDao->insertObject($submissionEvent); - } + $locale = $this->getLocale(); - private function createSection(): int - { - $sectionDao = DAORegistry::getDAO('SectionDAO'); - $section = new Section(); - $section->setTitle($this->sectionName, $this->locale); - $sectionId = $sectionDao->insertObject($section); + $user = Repo::user()->newDataObject([ + 'userName' => 'the_godfather', + 'email' => 'donvito@corleone.com', + 'password' => 'miaumiau', + 'country' => 'BR', + 'givenName' => [$locale => 'Don'], + 'familyName' => [$locale => 'Vito Corleone'], + 'dateRegistered' => Core::getCurrentDate() + ]); - return $sectionId; - } + $userId = Repo::user()->add($user); - private function createAuthors(): array - { - $authorDao = DAORegistry::getDAO('AuthorDAO'); - $author1 = new Author(); - $author2 = new Author(); - $author1->setData('publicationId', $this->publicationId); - $author2->setData('publicationId', $this->publicationId); - $author1->setData('email', "anaalice@harvard.com"); - $author2->setData('email', "seizi.tagima@ufam.edu.br"); - $author1->setGivenName('Ana Alice', $this->locale); - $author1->setFamilyName('Caldas Novas', $this->locale); - $author2->setGivenName('Seizi', $this->locale); - $author2->setFamilyName('Tagima', $this->locale); - $author1->setAffiliation("Harvard University", $this->locale); - $author2->setAffiliation("Amazonas Federal University", $this->locale); - $author1->setData('country', 'US'); - $author2->setData('country', 'BR'); - - $authorDao->insertObject($author1); - $authorDao->insertObject($author2); - - return [new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University")]; + $eventLog = Repo::eventLog()->newDataObject([ + 'assocType' => PKPApplication::ASSOC_TYPE_SUBMISSION, + 'assocId' => $this->submission->getId(), + 'eventType' => PKPSubmissionEventLogEntry::SUBMISSION_LOG_SUBMISSION_SUBMIT, + 'userId' => $user->getId(), + 'dateLogged' => '2021-05-28 15:19:24' + ]); + + Repo::eventLog()->add($eventLog); + + $this->submitterUser = Repo::user()->get($userId); } - private function addCurrentPublicationToSubmission(): void + private function deleteSubmitterUser(): void { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = $submissionDao->getById($this->submissionId); - $submission->setData('currentPublicationId', $this->publicationId); - $submissionDao->updateObject($submission); + if (!$this->submitterUser) { + return; + } + + Repo::user()->delete($this->submitterUser); } - public function testSubmissionGetsTitle(): void + public function testGetScieloSubmissionTitle(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->title, $scieloSubmission->getTitle()); + $this->assertEquals( + $this->publication->getLocalizedTitle($this->getLocale()), + $scieloSubmission->getTitle() + ); } public function testSubmissionGetsSubmitter(): void { - $this->createSubmitter(); + $this->createSubmitterUser(); $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->submitter, $scieloSubmission->getSubmitter()); + $this->assertEquals($this->submitterUser->getFullName(), $scieloSubmission->getSubmitter()); } public function testSubmissionGetsSubmitterCountry(): void { - $this->createSubmitter(); + $this->createSubmitterUser(); $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->submitterCountry, $scieloSubmission->getSubmitterCountry()); + $this->assertEquals($this->submitterUser->getCountryLocalized(), $scieloSubmission->getSubmitterCountry()); } public function testSubmissionGetsDateSubmitted(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->dateSubmitted, $scieloSubmission->getDateSubmitted()); + $this->assertEquals($this->submission->getData('dateSubmitted'), $scieloSubmission->getDateSubmitted()); } public function testSubmissionGetsStatus(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->statusMessage, $scieloSubmission->getStatus()); + $statusKey = $this->submission->getStatusKey(); + $this->assertEquals(__($statusKey), $scieloSubmission->getStatus()); } public function testSubmissionGetsSectionName(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->sectionName, $scieloSubmission->getSection()); + $this->assertEquals($this->section->getLocalizedTitle(), $scieloSubmission->getSection()); } public function testSubmissionGetsLanguage(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $this->assertEquals($this->locale, $scieloSubmission->getLanguage()); + $this->assertEquals($this->getLocale(), $scieloSubmission->getLanguage()); } public function testSubmissionsGetsDaysUntilStatusChange(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); - $dateSubmitted = new DateTime($this->dateSubmitted); - $dateLastActivity = new DateTime($this->dateLastActivity); + $dateSubmitted = new DateTime('2021-05-31 15:38:24'); + $dateLastActivity = new DateTime('2021-06-03 16:00:00'); $daysUntilStatusChange = $dateLastActivity->diff($dateSubmitted)->format('%a'); $this->assertEquals($daysUntilStatusChange, $scieloSubmission->getDaysUntilStatusChange()); @@ -207,8 +169,18 @@ public function testSubmissionsGetsDaysUntilStatusChange(): void public function testSubmissionGetsSubmissionAuthors(): void { $submissionFactory = new ScieloSubmissionFactory(); - $scieloSubmission = $submissionFactory->createSubmission($this->submissionId, $this->locale); + $scieloSubmission = $submissionFactory->createSubmission($this->submission->getId(), $this->getLocale()); + + dump($this->authors); + dump($scieloSubmission->getAuthors()); + + $this->assertEquals($this->authors, $scieloSubmission->getAuthors()); + } + + protected function tearDown(): void + { + parent::tearDown(); - $this->assertEquals($this->submissionAuthors, $scieloSubmission->getAuthors()); + $this->deleteSubmitterUser(); } } From 956b37a14ebc90959750b5877fe086fe43110d96 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Tue, 7 Nov 2023 15:09:35 -0400 Subject: [PATCH 08/17] Fixes OJS unit tests Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloPreprintFactory.php | 1 - classes/ScieloPreprintsDAO.php | 75 +++++++++-------- classes/ScieloSubmissionsReportFactory.php | 8 +- ...{CSVFileUtils.inc.php => CSVFileUtils.php} | 2 + tests/ScieloSubmissionFactoryTest.php | 3 - tests/ScieloSubmissionsOJSReportTest.php | 3 + tests/ScieloSubmissionsReportFactoryTest.php | 82 +++++++++++++------ 7 files changed, 109 insertions(+), 65 deletions(-) rename tests/{CSVFileUtils.inc.php => CSVFileUtils.php} (81%) diff --git a/classes/ScieloPreprintFactory.php b/classes/ScieloPreprintFactory.php index d38516a..ce173b9 100644 --- a/classes/ScieloPreprintFactory.php +++ b/classes/ScieloPreprintFactory.php @@ -20,7 +20,6 @@ public function __construct(bool $includeViews = false) public function createSubmission(int $submissionId, string $locale) { $scieloPreprintsDAO = new ScieloPreprintsDAO(); - AppLocale::requireComponents(LOCALE_COMPONENT_PKP_SUBMISSION, $locale); $submission = $scieloPreprintsDAO->getSubmission($submissionId); $publicationId = $submission['current_publication_id']; diff --git a/classes/ScieloPreprintsDAO.php b/classes/ScieloPreprintsDAO.php index f64e696..c611428 100644 --- a/classes/ScieloPreprintsDAO.php +++ b/classes/ScieloPreprintsDAO.php @@ -13,41 +13,52 @@ use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsDAO; -use Illuminate\Database\Capsule\Manager as Capsule; +use Illuminate\Support\Facades\DB; use Illuminate\Support\Collection; +use APP\submission\Submission; +use APP\core\Services; +use PKP\db\DAORegistry; class ScieloPreprintsDAO extends ScieloSubmissionsDAO { public function getAbstractViews($submissionId, $contextId): int { - $statsService = \Services::get('stats'); - $abstractRecords = $statsService->getRecords([ - 'assocTypes' => ASSOC_TYPE_SUBMISSION, - 'submissionIds' => [$submissionId], - 'contextIds' => [$contextId] - ]); - $abstractViews = array_reduce($abstractRecords, [$statsService, 'sumMetric'], 0); - - return $abstractViews; + $statsService = Services::get('publicationStats'); + $metricsByType = $statsService->getTotalsByType($submissionId, $contextId, null, null); + // $statsService = \Services::get('stats'); + // $abstractRecords = $statsService->getRecords([ + // 'assocTypes' => ASSOC_TYPE_SUBMISSION, + // 'submissionIds' => [$submissionId], + // 'contextIds' => [$contextId] + // ]); + // $abstractViews = array_reduce($abstractRecords, [$statsService, 'sumMetric'], 0); + + // return $abstractViews; + + return $metricsByType['abstract']; } public function getPdfViews($submissionId, $contextId): int { - $statsService = \Services::get('stats'); - $galleyRecords = $statsService->getRecords([ - 'assocTypes' => ASSOC_TYPE_SUBMISSION_FILE, - 'fileType' => STATISTICS_FILE_TYPE_PDF, - 'submissionIds' => [$submissionId], - 'contextIds' => [$contextId] - ]); - $pdfViews = array_reduce($galleyRecords, [$statsService, 'sumMetric'], 0); - - return $pdfViews; + // $statsService = \Services::get('stats'); + // $galleyRecords = $statsService->getRecords([ + // 'assocTypes' => ASSOC_TYPE_SUBMISSION_FILE, + // 'fileType' => STATISTICS_FILE_TYPE_PDF, + // 'submissionIds' => [$submissionId], + // 'contextIds' => [$contextId] + // ]); + // $pdfViews = array_reduce($galleyRecords, [$statsService, 'sumMetric'], 0); + + // return $pdfViews; + + $statsService = Services::get('publicationStats'); + $metricsByType = $statsService->getTotalsByType($submissionId, $contextId, null, null); + return $metricsByType['pdf']; } public function getSubmissionNotes($submissionId): array { - $resultNotes = Capsule::table('notes') + $resultNotes = DB::table('notes') ->where('assoc_type', 1048585) ->where('assoc_id', $submissionId) ->select('contents') @@ -80,15 +91,13 @@ public function getSubmitterIsScieloJournal($submitterId) public function getSectionModerators($submissionId): array { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); $sectionModeratorUsers = array(); $stageAssignmentsResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsResults->next()) { - $user = $userDao->getById($stageAssignment->getUserId(), false); - $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); + $user = Repo::user()->get($stageAssignment->getUserId(), false); + $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en')); if ($currentUserGroupAbbrev == 'am') { @@ -101,15 +110,13 @@ public function getSectionModerators($submissionId): array public function getResponsibles($submissionId): array { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); $moderatorUsers = array(); $stageAssignmentsResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsResults->next()) { - $user = $userDao->getById($stageAssignment->getUserId(), false); - $userGroup = $userGroupDao->getById($stageAssignment->getUserGroupId()); + $user = Repo::user()->get($stageAssignment->getUserId(), false); + $userGroup = Repo::userGroup()->get($stageAssignment->getUserGroupId()); $currentUserGroupAbbrev = strtolower($userGroup->getData('abbrev', 'en')); if ($currentUserGroupAbbrev == 'resp') { @@ -121,7 +128,7 @@ public function getResponsibles($submissionId): array public function getPublicationStatus($publicationId): string { - $result = Capsule::table('publication_settings') + $result = DB::table('publication_settings') ->where('publication_id', '=', $publicationId) ->where('setting_name', '=', 'relationStatus') ->select('setting_value as relationStatus') @@ -143,7 +150,7 @@ public function getPublicationStatus($publicationId): string public function getPublicationDOI($publicationId): string { - $result = Capsule::table('publication_settings') + $result = DB::table('publication_settings') ->where('publication_id', '=', $publicationId) ->where('setting_name', '=', 'vorDoi') ->select('setting_value as vorDoi') @@ -158,13 +165,13 @@ public function getPublicationDOI($publicationId): string public function getFinalDecisionWithDate($submissionId, $locale) { - $result = Capsule::table('submissions') + $result = DB::table('submissions') ->where('submission_id', $submissionId) ->select('status') ->first(); $submissionStatus = get_object_vars($result)['status']; - $result = Capsule::table('publications') + $result = DB::table('publications') ->where('submission_id', '=', $submissionId) ->select('date_published') ->first(); @@ -176,7 +183,7 @@ public function getFinalDecisionWithDate($submissionId, $locale) $possibleFinalDecisions = [SUBMISSION_EDITOR_DECISION_ACCEPT, SUBMISSION_EDITOR_DECISION_DECLINE, SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE]; - $result = Capsule::table('edit_decisions') + $result = DB::table('edit_decisions') ->where('submission_id', $submissionId) ->whereIn('decision', $possibleFinalDecisions) ->orderBy('date_decided', 'asc') diff --git a/classes/ScieloSubmissionsReportFactory.php b/classes/ScieloSubmissionsReportFactory.php index 81a1ac8..674ed32 100644 --- a/classes/ScieloSubmissionsReportFactory.php +++ b/classes/ScieloSubmissionsReportFactory.php @@ -10,6 +10,7 @@ use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintsDAO; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; +use APP\facades\Repo; class ScieloSubmissionsReportFactory { @@ -34,20 +35,19 @@ public function __construct(string $application, int $contextId, array $sections public function createReport(): ScieloSubmissionsReport { - $sectionDao = DAORegistry::getDAO('SectionDAO'); $sections = []; foreach ($this->sectionsIds as $sectionId) { - $sections[$sectionId] = ($sectionDao->getById($sectionId))->getTitle($this->locale); + $sections[$sectionId] = (Repo::section()->get($sectionId))->getTitle($this->locale); } if ($this->application == 'ops') { - $submissionsDao = new ScieloPreprintsDAO(); + $submissionsDao = app(ScieloPreprintsDAO::class); $submissionFactory = new ScieloPreprintFactory($this->includeViews); $scieloSubmissions = $this->getScieloSubmissions($submissionsDao, $submissionFactory); return new ScieloSubmissionsOPSReport($sections, $scieloSubmissions, $this->includeViews); } elseif ($this->application == 'ojs') { - $submissionsDao = new ScieloArticlesDAO(); + $submissionsDao = app(ScieloArticlesDAO::class); $submissionFactory = new ScieloArticleFactory(); $scieloSubmissions = $this->getScieloSubmissions($submissionsDao, $submissionFactory); return new ScieloSubmissionsOJSReport($sections, $scieloSubmissions); diff --git a/tests/CSVFileUtils.inc.php b/tests/CSVFileUtils.php similarity index 81% rename from tests/CSVFileUtils.inc.php rename to tests/CSVFileUtils.php index 7c229ca..8fcdd2a 100644 --- a/tests/CSVFileUtils.inc.php +++ b/tests/CSVFileUtils.php @@ -1,5 +1,7 @@ createSubmission($this->submission->getId(), $this->getLocale()); - dump($this->authors); - dump($scieloSubmission->getAuthors()); - $this->assertEquals($this->authors, $scieloSubmission->getAuthors()); } diff --git a/tests/ScieloSubmissionsOJSReportTest.php b/tests/ScieloSubmissionsOJSReportTest.php index 6517130..de3c004 100644 --- a/tests/ScieloSubmissionsOJSReportTest.php +++ b/tests/ScieloSubmissionsOJSReportTest.php @@ -1,9 +1,12 @@ createContext(); $this->sectionsIds = $this->createTestSections(); $this->submissionsIds = $this->createTestSubmissions(); $this->publicationsIds = $this->createTestPublications(); $this->addCurrentPublicationToTestSubmissions(); } - protected function getAffectedTables() + protected function tearDown(): void { - return array("sections", "section_settings", "submissions", "submission_settings", "publications", "publication_settings", "edit_decisions"); + parent::tearDown(); + + $contextDAO = \Application::getContextDAO(); + $context = $contextDAO->getById($this->contextId); + $contextDAO->deleteObject($context); + } + + private function createContext(): void + { + $contextDAO = \Application::getContextDAO(); + $context = $contextDAO->newDataObject(); + $context->setAllData([ + 'urlPath' => [$this->locale => 'test'], + 'primaryLocale' => $this->locale + ]); + ; + + $this->contextId = $contextDAO->insertObject($context); } private function createTestSections(): array { - $sectionDao = DAORegistry::getDAO('SectionDAO'); - $section1 = new Section(); - $section2 = new Section(); - $section1->setTitle($this->firstSectionName, $this->locale); - $section2->setTitle($this->secondSectionName, $this->locale); - $firstSectionId = $sectionDao->insertObject($section1); - $secondSectionId = $sectionDao->insertObject($section2); + $section1 = Repo::section()->newDataObject([ + 'abbrev' => [$this->locale => __('section.default.abbrev')], + 'policy' => [$this->locale => __('section.default.policy')], + 'title' => [$this->locale => $this->firstSectionName], + 'metaIndexed' => true, + 'metaReviewed' => true, + 'editorRestricted' => false, + 'hideTitle' => false, + 'contextId' => $this->contextId + ]); + $section2 = Repo::section()->newDataObject([ + 'abbrev' => [$this->locale => __('section.default.abbrev')], + 'policy' => [$this->locale => __('section.default.policy')], + 'title' => [$this->locale => $this->secondSectionName], + 'metaIndexed' => true, + 'metaReviewed' => true, + 'editorRestricted' => false, + 'hideTitle' => false, + 'contextId' => $this->contextId + ]); + $firstSectionId = Repo::section()->dao->insert($section1); + $secondSectionId = Repo::section()->dao->insert($section2); return [$firstSectionId, $secondSectionId]; } private function createSubmission($dateSubmitted = null, $dateFinalDecision = null): int { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - - $submission = new Submission(); + $submission = Repo::submission()->newDataObject(); $submission->setData('contextId', $this->contextId); $submission->setData('locale', $this->locale); $submission->setData('status', Submission::STATUS_PUBLISHED); @@ -61,7 +93,7 @@ private function createSubmission($dateSubmitted = null, $dateFinalDecision = nu if (!is_null($dateSubmitted)) { $submission->setData('dateSubmitted', $dateSubmitted); } - $submissionId = $submissionDao->insertObject($submission); + $submissionId = Repo::submission()->dao->insert($submission); if (!is_null($dateFinalDecision)) { $this->addFinalDecision($submissionId, $dateFinalDecision); @@ -82,15 +114,20 @@ private function createTestSubmissions(): array private function addFinalDecision($submissionId, $dateDecided) { - $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); - $editDecisionDao->updateEditorDecision($submissionId, ['editDecisionId' => null, 'decision' => SUBMISSION_EDITOR_DECISION_DECLINE, 'dateDecided' => $dateDecided, 'editorId' => 1]); + $params = [ + 'decision' => SUBMISSION_EDITOR_DECISION_DECLINE, + 'submissionId' => $submissionId, + 'dateDecided' => $dateDecided, + 'editorId' => 1, + ]; + + $decision = Repo::decision()->newDataObject($params); + $decisionId = Repo::decision()->dao->insert($decision); } private function createPublication($submissionId, $sectionId, $datePublished = null) { - $publicationDao = DAORegistry::getDAO('PublicationDAO'); - - $publication = new Publication(); + $publication = Repo::publication()->newDataObject(); $publication->setData('submissionId', $submissionId); $publication->setData('sectionId', $sectionId); $publication->setData('title', "Generic title", $this->locale); @@ -98,7 +135,7 @@ private function createPublication($submissionId, $sectionId, $datePublished = n $publication->setData('datePublished', $datePublished); } - return $publicationDao->insertObject($publication); + return Repo::publication()->dao->insert($publication); } private function createTestPublications(): array @@ -113,10 +150,9 @@ private function createTestPublications(): array private function addCurrentPublicationToSubmission($submissionId, $publicationId) { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = $submissionDao->getById($submissionId); + $submission = Repo::submission()->get($submissionId); $submission->setData('currentPublicationId', $publicationId); - $submissionDao->updateObject($submission); + Repo::submission()->dao->update($submission); } private function addCurrentPublicationToTestSubmissions() From c34e74d28caa0f4895d8a0328638268f74356648 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Tue, 7 Nov 2023 15:47:52 -0400 Subject: [PATCH 09/17] Fixes decisions constants Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloArticlesDAO.php | 28 ++++++++++++++-------------- 1 file changed, 14 insertions(+), 14 deletions(-) diff --git a/classes/ScieloArticlesDAO.php b/classes/ScieloArticlesDAO.php index 3146713..464750b 100644 --- a/classes/ScieloArticlesDAO.php +++ b/classes/ScieloArticlesDAO.php @@ -73,32 +73,32 @@ public function getEditors($submissionId): array public function getDecisionMessage($decision) { - switch($decision) { - case SUBMISSION_EDITOR_DECISION_ACCEPT: + switch ($decision) { + case Decision::ACCEPT: return __('editor.submission.decision.accept'); - case SUBMISSION_EDITOR_DECISION_PENDING_REVISIONS: + case Decision::PENDING_REVISIONS: return __('editor.submission.decision.requestRevisions'); - case SUBMISSION_EDITOR_DECISION_RESUBMIT: + case Decision::RESUBMIT: return __('editor.submission.decision.resubmit'); - case SUBMISSION_EDITOR_DECISION_DECLINE: + case Decision::DECLINE: return __('editor.submission.decision.decline'); - case SUBMISSION_EDITOR_DECISION_SEND_TO_PRODUCTION: + case Decision::SEND_TO_PRODUCTION: return __('editor.submission.decision.sendToProduction'); - case SUBMISSION_EDITOR_DECISION_NEW_ROUND: + case Decision::NEW_EXTERNAL_ROUND: return __('editor.submission.decision.newRound'); - case SUBMISSION_EDITOR_DECISION_EXTERNAL_REVIEW: + case Decision::EXTERNAL_REVIEW: return __('editor.submission.decision.sendExternalReview'); - case SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE: + case Decision::INITIAL_DECLINE: return __('editor.submission.decision.decline'); - case SUBMISSION_EDITOR_DECISION_REVERT_DECLINE: + case Decision::REVERT_DECLINE: return __('editor.submission.decision.revertDecline'); - case SUBMISSION_EDITOR_RECOMMEND_ACCEPT: + case Decision::RECOMMEND_ACCEPT: return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.accept'))); - case SUBMISSION_EDITOR_RECOMMEND_DECLINE: + case Decision::RECOMMEND_DECLINE: return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.decline'))); - case SUBMISSION_EDITOR_RECOMMEND_PENDING_REVISIONS: + case Decision::RECOMMEND_PENDING_REVISIONS: return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.requestRevisions'))); - case SUBMISSION_EDITOR_RECOMMEND_RESUBMIT: + case Decision::RECOMMEND_RESUBMIT: return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.resubmit'))); default: return ''; From e2dbd1275b476db6d24906fddcb41d0e4c9e6d98 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Tue, 7 Nov 2023 16:11:35 -0400 Subject: [PATCH 10/17] Fixes ScieloPreprintDao class Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloPreprintsDAO.php | 22 +--------------------- 1 file changed, 1 insertion(+), 21 deletions(-) diff --git a/classes/ScieloPreprintsDAO.php b/classes/ScieloPreprintsDAO.php index c611428..487d04c 100644 --- a/classes/ScieloPreprintsDAO.php +++ b/classes/ScieloPreprintsDAO.php @@ -25,32 +25,12 @@ public function getAbstractViews($submissionId, $contextId): int { $statsService = Services::get('publicationStats'); $metricsByType = $statsService->getTotalsByType($submissionId, $contextId, null, null); - // $statsService = \Services::get('stats'); - // $abstractRecords = $statsService->getRecords([ - // 'assocTypes' => ASSOC_TYPE_SUBMISSION, - // 'submissionIds' => [$submissionId], - // 'contextIds' => [$contextId] - // ]); - // $abstractViews = array_reduce($abstractRecords, [$statsService, 'sumMetric'], 0); - - // return $abstractViews; return $metricsByType['abstract']; } public function getPdfViews($submissionId, $contextId): int { - // $statsService = \Services::get('stats'); - // $galleyRecords = $statsService->getRecords([ - // 'assocTypes' => ASSOC_TYPE_SUBMISSION_FILE, - // 'fileType' => STATISTICS_FILE_TYPE_PDF, - // 'submissionIds' => [$submissionId], - // 'contextIds' => [$contextId] - // ]); - // $pdfViews = array_reduce($galleyRecords, [$statsService, 'sumMetric'], 0); - - // return $pdfViews; - $statsService = Services::get('publicationStats'); $metricsByType = $statsService->getTotalsByType($submissionId, $contextId, null, null); return $metricsByType['pdf']; @@ -181,7 +161,7 @@ public function getFinalDecisionWithDate($submissionId, $locale) return new FinalDecision(__('common.accepted', [], $locale), $publicationDatePublished); } - $possibleFinalDecisions = [SUBMISSION_EDITOR_DECISION_ACCEPT, SUBMISSION_EDITOR_DECISION_DECLINE, SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE]; + $possibleFinalDecisions = [Decision::ACCEPT, Decision::DECLINE, SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE]; $result = DB::table('edit_decisions') ->where('submission_id', $submissionId) From ddcd9b731cfb7078ceff667f9412464b51ca86f7 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Tue, 7 Nov 2023 16:12:23 -0400 Subject: [PATCH 11/17] Adds namespace to test classes Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloSubmissionsDAO.php | 4 ++-- tests/ClosedDateIntervalTest.php | 2 ++ tests/ScieloArticleFactoryTest.php | 18 ++++++++++++++---- tests/ScieloArticleTest.php | 2 ++ tests/ScieloPreprintFactoryTest.php | 4 +++- tests/ScieloPreprintTest.php | 2 ++ tests/ScieloSubmissionTest.php | 2 ++ tests/ScieloSubmissionsOPSReportTest.php | 2 ++ tests/ScieloSubmissionsReportFactoryTest.php | 4 +++- tests/ScieloSubmissionsReportTest.php | 2 ++ tests/SubmissionAuthorTest.php | 2 ++ 11 files changed, 36 insertions(+), 8 deletions(-) diff --git a/classes/ScieloSubmissionsDAO.php b/classes/ScieloSubmissionsDAO.php index 997196b..981a1fe 100644 --- a/classes/ScieloSubmissionsDAO.php +++ b/classes/ScieloSubmissionsDAO.php @@ -183,9 +183,9 @@ protected function finalDecisionFromRow($row, $locale) $dateDecided = new DateTime($row['date_decided']); $decision = ""; - if ($row['decision'] == SUBMISSION_EDITOR_DECISION_ACCEPT) { + if ($row['decision'] == Decision::ACCEPT) { $decision = __('common.accepted', [], $locale); - } elseif ($row['decision'] == SUBMISSION_EDITOR_DECISION_DECLINE || $row['decision'] == SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE) { + } elseif ($row['decision'] == Decision::DECLINE || $row['decision'] == SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE) { $decision = __('common.declined', [], $locale); } diff --git a/tests/ClosedDateIntervalTest.php b/tests/ClosedDateIntervalTest.php index f1ac443..4157379 100644 --- a/tests/ClosedDateIntervalTest.php +++ b/tests/ClosedDateIntervalTest.php @@ -1,5 +1,7 @@ getById($stageAssignmentId); $stageAssignmentDAO->deleteObject($stageAssignment); } + + if ($this->reviewAssignmentId) { + $reviewRoundDAO = DAORegistry::getDAO('ReviewAssignmentDAO'); + $reviewAssignment = $reviewRoundDAO->getById($this->reviewAssignmentId); + $reviewRoundDAO->deleteObject($reviewAssignment); + } } private function createSubmission(): int @@ -422,6 +431,7 @@ public function testSubmissionGetsNoLastDecision(): void public function testSubmissionGetsReviews(): void { $recommendation = ReviewAssignment::SUBMISSION_REVIEWER_RECOMMENDATION_ACCEPT; + $reviewRound = $this->createReviewRound($this->submissionId); $reviewAssignment = new ReviewAssignment(); $reviewAssignment->setRecommendation($recommendation); @@ -430,10 +440,10 @@ public function testSubmissionGetsReviews(): void $reviewAssignment->setDateAssigned(Core::getCurrentDate()); $reviewAssignment->setStageId(1); $reviewAssignment->setRound(1); - $reviewAssignment->setReviewRoundId(1); + $reviewAssignment->setReviewRoundId($reviewRound->getId()); $reviewAssignment->setDateCompleted(Core::getCurrentDate()); - DAORegistry::getDAO('ReviewAssignmentDAO')->insertObject($reviewAssignment); + $this->reviewAssignmentId = DAORegistry::getDAO('ReviewAssignmentDAO')->insertObject($reviewAssignment); $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); @@ -463,7 +473,7 @@ public function testSubmissionGetsFinalDecisionWithDateInitialDecline(): void */ public function testSubmissionGetsFinalDecisionWithDateDecline(): void { - $finalDecisionCode = SUBMISSION_EDITOR_DECISION_DECLINE; + $finalDecisionCode = Decision::DECLINE; $finalDecision = __('common.declined', [], $this->locale); $finalDecisionDate = '2021-04-21'; $this->createDecision($this->submissionId, $finalDecisionCode, $finalDecisionDate); @@ -480,7 +490,7 @@ public function testSubmissionGetsFinalDecisionWithDateDecline(): void */ public function testSubmissionGetsFinalDecisionWithDateAccept(): void { - $finalDecisionCode = SUBMISSION_EDITOR_DECISION_ACCEPT; + $finalDecisionCode = Decision::ACCEPT; $finalDecision = __('common.accepted', [], $this->locale); $finalDecisionDate = '2021-07-07'; $this->createDecision($this->submissionId, $finalDecisionCode, $finalDecisionDate); diff --git a/tests/ScieloArticleTest.php b/tests/ScieloArticleTest.php index 6d24e8d..0c91d7f 100644 --- a/tests/ScieloArticleTest.php +++ b/tests/ScieloArticleTest.php @@ -1,5 +1,7 @@ createSubmission(STATUS_DECLINED); $publicationId = $this->createPublication($submissionId, $datePosted); $this->addCurrentPublicationToSubmission($submissionId, $publicationId); - $this->createDecision($submissionId, SUBMISSION_EDITOR_DECISION_DECLINE, $finalDecisionDate); + $this->createDecision($submissionId, Decision::DECLINE, $finalDecisionDate); $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($submissionId, $this->locale); diff --git a/tests/ScieloPreprintTest.php b/tests/ScieloPreprintTest.php index 9c17727..bb88f99 100644 --- a/tests/ScieloPreprintTest.php +++ b/tests/ScieloPreprintTest.php @@ -1,5 +1,7 @@ SUBMISSION_EDITOR_DECISION_DECLINE, + 'decision' => Decision::DECLINE, 'submissionId' => $submissionId, 'dateDecided' => $dateDecided, 'editorId' => 1, diff --git a/tests/ScieloSubmissionsReportTest.php b/tests/ScieloSubmissionsReportTest.php index a54e5f6..011f892 100644 --- a/tests/ScieloSubmissionsReportTest.php +++ b/tests/ScieloSubmissionsReportTest.php @@ -1,5 +1,7 @@ Date: Tue, 7 Nov 2023 17:06:05 -0400 Subject: [PATCH 12/17] Fixes ScieloArticleFactory imports Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- tests/ScieloArticleFactoryTest.php | 3 +++ 1 file changed, 3 insertions(+) diff --git a/tests/ScieloArticleFactoryTest.php b/tests/ScieloArticleFactoryTest.php index 6bce190..91de327 100644 --- a/tests/ScieloArticleFactoryTest.php +++ b/tests/ScieloArticleFactoryTest.php @@ -8,6 +8,9 @@ use APP\section\Section; use APP\author\Author; use APP\facades\Repo; +use PKP\core\Core; +use PKP\db\DAORegistry; +use APP\core\Application; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; From 20aeae70d3e519e8550fbd6391b581e86821b1bb Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Thu, 9 Nov 2023 12:01:03 -0400 Subject: [PATCH 13/17] Fixes unit tests in OPS Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- classes/ScieloPreprintsDAO.php | 10 +- tests/ScieloPreprintFactoryTest.php | 196 +++++++++++-------- tests/ScieloSubmissionTest.php | 1 + tests/ScieloSubmissionsReportFactoryTest.php | 1 + 4 files changed, 118 insertions(+), 90 deletions(-) diff --git a/classes/ScieloPreprintsDAO.php b/classes/ScieloPreprintsDAO.php index 487d04c..8a546c8 100644 --- a/classes/ScieloPreprintsDAO.php +++ b/classes/ScieloPreprintsDAO.php @@ -16,6 +16,9 @@ use Illuminate\Support\Facades\DB; use Illuminate\Support\Collection; use APP\submission\Submission; +use APP\facades\Repo; +use APP\publication\Publication; +use APP\decision\Decision; use APP\core\Services; use PKP\db\DAORegistry; @@ -55,10 +58,8 @@ public function getSubmissionNotes($submissionId): array public function getSubmitterIsScieloJournal($submitterId) { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - - $submitterUserGroups = $userGroupDao->getByUserId($submitterId); - while ($userGroup = $submitterUserGroups->next()) { + $submitterUserGroups = Repo::userGroup()->userUserGroups($submitterId); + foreach ($submitterUserGroups as $userGroup) { $journalGroupAbbrev = "SciELO"; if ($userGroup->getLocalizedData('abbrev', 'pt_BR') == $journalGroupAbbrev) { return true; @@ -121,7 +122,6 @@ public function getPublicationStatus($publicationId): string $relationStatus = get_object_vars($result)['relationStatus']; $relationsMap = [ Publication::PUBLICATION_RELATION_NONE => 'publication.relation.none', - Publication::PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', Publication::PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' ]; diff --git a/tests/ScieloPreprintFactoryTest.php b/tests/ScieloPreprintFactoryTest.php index b21a431..4e72720 100644 --- a/tests/ScieloPreprintFactoryTest.php +++ b/tests/ScieloPreprintFactoryTest.php @@ -6,10 +6,20 @@ use APP\submission\Submission; use APP\publication\Publication; use APP\section\Section; +use APP\core\Application; +use APP\facades\Repo; +use PKP\db\DAORegistry; +use PKP\core\Core; +use PKP\userGroup\relationships\UserGroupStage; use APP\author\Author; +use PKP\log\event\PKPSubmissionEventLogEntry; +use PKP\statistics\PKPStatisticsHelper; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintFactory; +use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; use APP\decision\Decision; -use Illuminate\Database\Capsule\Manager as Capsule; +use Illuminate\Support\Facades\DB; class ScieloPreprintFactoryTest extends DatabaseTestCase { @@ -64,21 +74,19 @@ protected function getAffectedTables() private function createSubmission($statusCode): int { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = new Submission(); + $submission = Repo::submission()->newDataObject(); $submission->setData('contextId', $this->contextId); $submission->setData('dateSubmitted', $this->dateSubmitted); $submission->setData('status', $statusCode); $submission->setData('locale', $this->locale); $submission->setData('dateLastActivity', $this->dateLastActivity); - return $submissionDao->insertObject($submission); + return Repo::submission()->dao->insert($submission); } private function createPublication($submissionId, $datePublished = null): int { - $publicationDao = DAORegistry::getDAO('PublicationDAO'); - $publication = new Publication(); + $publication = Repo::publication()->newDataObject(); $publication->setData('submissionId', $submissionId); $publication->setData('title', $this->title, $this->locale); $publication->setData('sectionId', $this->sectionId); @@ -88,30 +96,43 @@ private function createPublication($submissionId, $datePublished = null): int $publication->setData('datePublished', $datePublished); } - return $publicationDao->insertObject($publication); + return Repo::publication()->dao->insert($publication); } private function createDecision($submissionId, $decision, $dateDecided): void { - $editDecisionDao = DAORegistry::getDAO('EditDecisionDAO'); - $editDecisionDao->updateEditorDecision($submissionId, ['editDecisionId' => null, 'decision' => $decision, 'dateDecided' => $dateDecided, 'editorId' => 1]); + $params = [ + 'decision' => $decision, + 'submissionId' => $submissionId, + 'dateDecided' => $dateDecided, + 'editorId' => 1, + ]; + + $decision = Repo::decision()->newDataObject($params); + $decisionId = Repo::decision()->dao->insert($decision); } private function createSection(): int { - $sectionDao = DAORegistry::getDAO('SectionDAO'); - $section = new Section(); + $section = Repo::section()->newDataObject(); $section->setTitle($this->sectionName, $this->locale); - $sectionId = $sectionDao->insertObject($section); + $section->setAbbrev(__('section.default.abbrev'), $this->locale); + $section->setPath(__('section.default.path')); + $section->setMetaIndexed(true); + $section->setMetaReviewed(true); + $section->setPolicy(__('section.default.policy'), $this->locale); + $section->setEditorRestricted(false); + $section->setHideTitle(false); + $section->setContextId($this->contextId); + $sectionId = Repo::section()->dao->insert($section); return $sectionId; } private function createAuthors(): array { - $authorDao = DAORegistry::getDAO('AuthorDAO'); - $author1 = new Author(); - $author2 = new Author(); + $author1 = Repo::author()->newDataObject(); + $author2 = Repo::author()->newDataObject(); $author1->setData('publicationId', $this->publicationId); $author2->setData('publicationId', $this->publicationId); $author1->setData('email', "anaalice@harvard.com"); @@ -125,59 +146,63 @@ private function createAuthors(): array $author1->setData('country', 'US'); $author2->setData('country', 'BR'); - $authorDao->insertObject($author1); - $authorDao->insertObject($author2); + Repo::author()->dao->insert($author1); + Repo::author()->dao->insert($author2); - return [new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University")]; + return [ + new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), + new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University") + ]; } private function addCurrentPublicationToSubmission($submissionId, $publicationId): void { - $submissionDao = DAORegistry::getDAO('SubmissionDAO'); - $submission = $submissionDao->getById($submissionId); + $submission = Repo::submission()->get($submissionId); $submission->setData('currentPublicationId', $publicationId); - $submissionDao->updateObject($submission); + Repo::submission()->dao->update($submission); } private function createSubmitter(): int { - $submissionEventLogDao = DAORegistry::getDAO('SubmissionEventLogDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); - - $userSubmitter = new User(); + $userSubmitter = Repo::user()->newDataObject(); $userSubmitter->setUsername('the_godfather'); $userSubmitter->setEmail('donvito@corleone.com'); $userSubmitter->setPassword('miaumiau'); $userSubmitter->setCountry('BR'); $userSubmitter->setGivenName("Don", $this->locale); $userSubmitter->setFamilyName("Vito Corleone", $this->locale); - $userSubmitterId = $userDao->insertObject($userSubmitter); - - $submissionEvent = $submissionEventLogDao->newDataObject(); - $submissionEvent->setSubmissionId($this->submissionId); - $submissionEvent->setEventType(SUBMISSION_LOG_SUBMISSION_SUBMIT); - $submissionEvent->setUserId($userSubmitterId); - $submissionEvent->setDateLogged($this->dateSubmitted); - $submissionEventLogDao->insertObject($submissionEvent); + $userSubmitter->setDateRegistered(Core::getCurrentDate()); + $userSubmitterId = Repo::user()->dao->insert($userSubmitter); + + $eventLog = Repo::eventLog()->newDataObject([ + 'assocType' => Application::ASSOC_TYPE_SUBMISSION, + 'assocId' => $this->submissionId, + 'eventType' => PKPSubmissionEventLogEntry::SUBMISSION_LOG_SUBMISSION_SUBMIT, + 'userId' => $userSubmitterId, + 'dateLogged' => $this->dateSubmitted + ]); + Repo::eventLog()->add($eventLog); return $userSubmitterId; } private function createResponsibleUsers(): array { - $userResponsible = new User(); + $userResponsible = Repo::user()->newDataObject(); $userResponsible->setUsername('f4ustao'); $userResponsible->setEmail('faustosilva@noexists.com'); $userResponsible->setPassword('oloco'); $userResponsible->setGivenName("Fausto", $this->locale); $userResponsible->setFamilyName("Silva", $this->locale); + $userResponsible->setDateRegistered(Core::getCurrentDate()); - $secondUserResponsible = new User(); + $secondUserResponsible = Repo::user()->newDataObject(); $secondUserResponsible->setUsername('silvinho122'); $secondUserResponsible->setEmail('silvio@stb.com'); $secondUserResponsible->setPassword('aviaozinho'); $secondUserResponsible->setGivenName("Silvio", $this->locale); $secondUserResponsible->setFamilyName("Santos", $this->locale); + $secondUserResponsible->setDateRegistered(Core::getCurrentDate()); return [$userResponsible, $secondUserResponsible]; } @@ -187,7 +212,7 @@ private function createStageAssignments(array $userIds, $groupId): void $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); foreach ($userIds as $userId) { - $stageAssignment = new StageAssignment(); + $stageAssignment = $stageAssignmentDao->newDataObject(); $stageAssignment->setSubmissionId($this->submissionId); $stageAssignment->setUserId($userId); $stageAssignment->setUserGroupId($groupId); @@ -198,42 +223,36 @@ private function createStageAssignments(array $userIds, $groupId): void private function createResponsiblesUserGroup(): int { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $responsiblesUserGroupLocalizedAbbrev = [ 'en' => 'resp', 'pt_BR' => 'resp', - 'es_ES' => 'resp' + 'es' => 'resp' ]; - $responsiblesUserGroup = new UserGroup(); + $responsiblesUserGroup = Repo::userGroup()->newDataObject(); $responsiblesUserGroup->setData("abbrev", $responsiblesUserGroupLocalizedAbbrev); $responsiblesUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); $responsiblesUserGroup->setData('contextId', $this->contextId); - return $userGroupDao->insertObject($responsiblesUserGroup); + return Repo::userGroup()->add($responsiblesUserGroup); } private function createSectionModeratorUserGroup(): int { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $sectionModeratorUserGroupLocalizedAbbrev = [ 'en' => 'am', 'pt_BR' => 'ma', - 'es_ES' => 'ma' + 'es' => 'ma' ]; - $sectionModeratorUserGroup = new UserGroup(); + $sectionModeratorUserGroup = Repo::userGroup()->newDataObject(); $sectionModeratorUserGroup->setData('abbrev', $sectionModeratorUserGroupLocalizedAbbrev); $sectionModeratorUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); $sectionModeratorUserGroup->setData('contextId', $this->contextId); - return $userGroupDao->insertObject($sectionModeratorUserGroup); + return Repo::userGroup()->add($sectionModeratorUserGroup); } private function createScieloJournalUserGroup(): int { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $scieloJournalUserGroupLocalizedNames = [ 'en' => 'SciELO Journal', 'pt_BR' => 'Periódico SciELO', @@ -244,37 +263,33 @@ private function createScieloJournalUserGroup(): int 'pt_BR' => 'SciELO', 'es_ES' => 'SciELO' ]; - $scieloJournalUserGroup = new UserGroup(); + $scieloJournalUserGroup = Repo::userGroup()->newDataObject(); $scieloJournalUserGroup->setData('name', $scieloJournalUserGroupLocalizedNames); $scieloJournalUserGroup->setData('abbrev', $scieloJournalUserGroupLocalizedAbbrev); $scieloJournalUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); $scieloJournalUserGroup->setData('contextId', $this->contextId); - return $userGroupDao->insertObject($scieloJournalUserGroup); + return Repo::userGroup()->add($scieloJournalUserGroup); } private function createMetrics(): void { - Capsule::table('metrics')->insert([ - 'load_id' => 'usage_events_20210520.log', + DB::table('metrics_submission')->insert([ + 'load_id' => 'test_events_20220520', 'context_id' => $this->contextId, - 'assoc_type' => ASSOC_TYPE_SUBMISSION, - 'assoc_id' => $this->submissionId, 'submission_id' => $this->submissionId, - 'metric_type' => METRIC_TYPE_COUNTER, + 'assoc_type' => Application::ASSOC_TYPE_SUBMISSION, + 'date' => '20220520', 'metric' => $this->abstractViews, - 'day' => '20220520' ]); - Capsule::table('metrics')->insert([ - 'load_id' => 'usage_events_20210520.log', + DB::table('metrics_submission')->insert([ + 'load_id' => 'test_events_20220520', 'context_id' => $this->contextId, - 'assoc_type' => ASSOC_TYPE_SUBMISSION_FILE, - 'file_type' => STATISTICS_FILE_TYPE_PDF, - 'assoc_id' => 1, 'submission_id' => $this->submissionId, - 'metric_type' => METRIC_TYPE_COUNTER, + 'assoc_type' => Application::ASSOC_TYPE_SUBMISSION_FILE, + 'file_type' => PKPStatisticsHelper::STATISTICS_FILE_TYPE_PDF, + 'date' => '20220520', 'metric' => $this->pdfViews, - 'day' => '20220520' ]); } @@ -323,12 +338,16 @@ public function testSubmissionDecliningIsFinalDecisionEvenWhenHasPostedDate(): v */ public function testSubmissionGetsPublicationStatus(): void { + $datePosted = '2021-08-27'; + $submissionId = $this->createSubmission(Submission::STATUS_PUBLISHED); + $publicationId = $this->createPublication($submissionId, $datePosted); + $this->addCurrentPublicationToSubmission($submissionId, $publicationId); + $preprintFactory = new ScieloPreprintFactory(); - $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); + $scieloPreprint = $preprintFactory->createSubmission($submissionId, $this->locale); $relationsMap = [ Publication::PUBLICATION_RELATION_NONE => 'publication.relation.none', - Publication::PUBLICATION_RELATION_SUBMITTED => 'publication.relation.submitted', Publication::PUBLICATION_RELATION_PUBLISHED => 'publication.relation.published' ]; $expectedPublicationStatus = __($relationsMap[$this->relationStatus]); @@ -352,10 +371,9 @@ public function testSubmissionGetsPublicationDOI(): void */ public function testSubmissionWithoutPublicationDOI(): void { - $publicationDao = DAORegistry::getDAO('PublicationDAO'); - $publication = $publicationDao->getById($this->publicationId); + $publication = Repo::publication()->get($this->publicationId); $publication->setData('vorDoi', null); - $publicationDao->updateObject($publication); + Repo::publication()->dao->update($publication); $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); @@ -380,11 +398,12 @@ public function testSubmissionIsPreprint(): void */ public function testSubmissionGetsIfUserIsScieloJournal(): void { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $submitterId = $this->createSubmitter(); $scieloJournalGroupId = $this->createScieloJournalUserGroup(); - $userGroupDao->assignUserToGroup($submitterId, $scieloJournalGroupId); + Repo::userGroup()->assignUserToGroup( + $submitterId, + $scieloJournalGroupId + ); $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); @@ -397,21 +416,22 @@ public function testSubmissionGetsIfUserIsScieloJournal(): void */ public function testSubmissionGetsResponsibles(): void { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); - $responsiblesGroupId = $this->createResponsiblesUserGroup(); $responsibleUsers = $this->createResponsibleUsers(); - $firstResponsibleId = $userDao->insertObject($responsibleUsers[0]); - $secondResponsibleId = $userDao->insertObject($responsibleUsers[1]); + $firstResponsibleId = Repo::user()->dao->insert($responsibleUsers[0]); + $secondResponsibleId = Repo::user()->dao->insert($responsibleUsers[1]); - $userGroupDao->assignUserToGroup($firstResponsibleId, $responsiblesGroupId); - $userGroupDao->assignUserToGroup($secondResponsibleId, $responsiblesGroupId); + Repo::userGroup()->assignUserToGroup($firstResponsibleId, $responsiblesGroupId); + Repo::userGroup()->assignUserToGroup($secondResponsibleId, $responsiblesGroupId); $this->createStageAssignments([$firstResponsibleId, $secondResponsibleId], $responsiblesGroupId); - $userGroupDao->assignGroupToStage($this->contextId, $responsiblesGroupId, self::WORKFLOW_STAGE_ID_SUBMISSION); + UserGroupStage::create([ + 'contextId' => $this->contextId, + 'userGroupId' => $responsiblesGroupId, + 'stageId' => self::WORKFLOW_STAGE_ID_SUBMISSION + ]); $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); @@ -426,18 +446,19 @@ public function testSubmissionGetsResponsibles(): void */ public function testSubmissionGetsSectionModerator(): void { - $userGroupDao = DAORegistry::getDAO('UserGroupDAO'); - $userDao = DAORegistry::getDAO('UserDAO'); - $userSectionModerator = $this->createResponsibleUsers()[0]; - $userSectionModeratorId = $userDao->insertObject($userSectionModerator); + $userSectionModeratorId = Repo::user()->add($userSectionModerator); $sectionModeratorUserGroupId = $this->createSectionModeratorUserGroup(); - $userGroupDao->assignUserToGroup($userSectionModeratorId, $sectionModeratorUserGroupId); + Repo::userGroup()->assignUserToGroup($userSectionModeratorId, $sectionModeratorUserGroupId); $this->createStageAssignments([$userSectionModeratorId], $sectionModeratorUserGroupId); - $userGroupDao->assignGroupToStage($this->contextId, $sectionModeratorUserGroupId, self::WORKFLOW_STAGE_ID_SUBMISSION); + UserGroupStage::create([ + 'contextId' => $this->contextId, + 'userGroupId' => $sectionModeratorUserGroupId, + 'stageId' => self::WORKFLOW_STAGE_ID_SUBMISSION + ]); $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); @@ -450,17 +471,22 @@ public function testSubmissionGetsSectionModerator(): void */ public function testSubmissionGetsNotes(): void { + $userSectionModerator = $this->createResponsibleUsers()[0]; + $userSectionModeratorId = Repo::user()->add($userSectionModerator); + $noteDao = DAORegistry::getDAO('NoteDAO'); $contentsForFirstNote = "Um breve resumo sobre a inteligência computacional"; $contentsForSecondNote = "Algoritmos Genéticos: Implementação no jogo do dino"; $note = $noteDao->newDataObject(); + $note->setUserId($userSectionModeratorId); $note->setContents($contentsForFirstNote); $note->setAssocType(1048585); $note->setAssocId($this->submissionId); $noteDao->insertObject($note); $note = $noteDao->newDataObject(); + $note->setUserId($userSectionModeratorId); $note->setContents($contentsForSecondNote); $note->setAssocType(1048585); $note->setAssocId($this->submissionId); diff --git a/tests/ScieloSubmissionTest.php b/tests/ScieloSubmissionTest.php index 8bd4be0..c063150 100644 --- a/tests/ScieloSubmissionTest.php +++ b/tests/ScieloSubmissionTest.php @@ -3,6 +3,7 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; use PHPUnit\Framework\TestCase; +use DateTime; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; diff --git a/tests/ScieloSubmissionsReportFactoryTest.php b/tests/ScieloSubmissionsReportFactoryTest.php index aff5f00..a08877e 100644 --- a/tests/ScieloSubmissionsReportFactoryTest.php +++ b/tests/ScieloSubmissionsReportFactoryTest.php @@ -6,6 +6,7 @@ use APP\section\Section; use APP\submission\Submission; use APP\facades\Repo; +use APP\decision\Decision; use APP\publication\Publication; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReportFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; From 32597c3bcf0c25819ae1b47356abea9789b08f13 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Thu, 9 Nov 2023 14:08:17 -0400 Subject: [PATCH 14/17] Update gitlab-ci.yml Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- .gitlab-ci.yml | 2 +- 1 file changed, 1 insertion(+), 1 deletion(-) diff --git a/.gitlab-ci.yml b/.gitlab-ci.yml index 9d1b636..4c28a94 100644 --- a/.gitlab-ci.yml +++ b/.gitlab-ci.yml @@ -6,4 +6,4 @@ include: ref: main file: - 'templates/groups/pkp_plugin.yml' - - 'templates/groups/ops_plugins_unit_tests_model.yml' + - 'templates/groups/ojs_3_4_plugins_unit_tests_model.yml' \ No newline at end of file From eef2437982cb96f751bf59b1e4591d90fc65dd2d Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Thu, 9 Nov 2023 14:51:20 -0400 Subject: [PATCH 15/17] Fixes code formatting Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- ScieloSubmissionsReportForm.inc.php | 17 ++-- ScieloSubmissionsReportPlugin.inc.php | 29 +++---- classes/ClosedDateInterval.php | 4 +- classes/ScieloArticle.php | 10 +-- classes/ScieloArticleFactory.php | 2 +- classes/ScieloArticlesDAO.php | 20 ++--- classes/ScieloPreprint.php | 19 ++--- classes/ScieloPreprintFactory.php | 7 +- classes/ScieloPreprintsDAO.php | 69 ++++++++-------- classes/ScieloSubmission.php | 10 +-- classes/ScieloSubmissionFactory.php | 29 +++---- classes/ScieloSubmissionsDAO.php | 79 +++++++++--------- classes/ScieloSubmissionsOJSReport.php | 40 +++++---- classes/ScieloSubmissionsOPSReport.php | 44 +++++----- classes/ScieloSubmissionsReport.php | 46 +++++------ classes/ScieloSubmissionsReportFactory.php | 8 -- classes/SubmissionAuthor.php | 2 +- ...cieloSubmissionsReportSettingsForm.inc.php | 6 +- classes/tasks/SendReportEmail.inc.php | 10 +-- tests/CSVFileUtils.php | 2 +- tests/ClosedDateIntervalTest.php | 18 ++-- tests/ScieloArticleFactoryTest.php | 56 ++++++------- tests/ScieloArticleTest.php | 53 ++++++------ tests/ScieloPreprintFactoryTest.php | 72 ++++++++-------- tests/ScieloPreprintTest.php | 79 +++++++++--------- tests/ScieloSubmissionFactoryTest.php | 8 +- tests/ScieloSubmissionTest.php | 36 ++++---- tests/ScieloSubmissionsOJSReportTest.php | 62 +++++++------- tests/ScieloSubmissionsOPSReportTest.php | 82 +++++++++---------- tests/ScieloSubmissionsReportFactoryTest.php | 16 ++-- tests/ScieloSubmissionsReportTest.php | 11 ++- tests/SubmissionAuthorTest.php | 10 +-- 32 files changed, 454 insertions(+), 502 deletions(-) diff --git a/ScieloSubmissionsReportForm.inc.php b/ScieloSubmissionsReportForm.inc.php index 5868092..15c1e09 100644 --- a/ScieloSubmissionsReportForm.inc.php +++ b/ScieloSubmissionsReportForm.inc.php @@ -12,9 +12,9 @@ * @brief SciELO Submissions report Form */ -use PKP\form\Form; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReportFactory; +use PKP\form\Form; class ScieloSubmissionsReportForm extends Form { @@ -32,6 +32,7 @@ class ScieloSubmissionsReportForm extends Form /** * Constructor + * * @param $plugin ReviewersReport Manual payment plugin */ public function __construct($plugin) @@ -40,7 +41,7 @@ public function __construct($plugin) $this->application = substr(Application::getName(), 0, 3); $request = Application::get()->getRequest(); $this->contextId = $request->getContext()->getId(); - $this->sections = array(); + $this->sections = []; $this->submissionDateInterval = null; $this->finalDecisionDateInterval = null; $this->includeViews = false; @@ -103,7 +104,7 @@ private function emitHttpHeaders($request) { $context = $request->getContext(); header('content-type: text/comma-separated-values'); - $acronym = PKPString::regexp_replace("/[^A-Za-z0-9 ]/", '', $context->getLocalizedAcronym()); + $acronym = PKPString::regexp_replace('/[^A-Za-z0-9 ]/', '', $context->getLocalizedAcronym()); header('content-disposition: attachment; filename=submissions' . $acronym . '-' . date('YmdHis') . '.csv'); } @@ -126,14 +127,14 @@ public function display($request = null, $template = null, $args = null) $templateManager = TemplateManager::getManager(); $url = $request->getBaseUrl() . '/' . $this->plugin->getPluginPath() . '/templates/scieloSubmissionsStyleSheet.css'; - $templateManager->addStyleSheet('scieloSubmissionsStyleSheet', $url, array( + $templateManager->addStyleSheet('scieloSubmissionsStyleSheet', $url, [ 'priority' => STYLE_SEQUENCE_CORE, 'contexts' => 'backend', - )); + ]); $templateManager->assign('application', $this->application); $templateManager->assign('sections', $sections); $templateManager->assign('sections_options', $sections_options); - $templateManager->assign('years', array(0 => $args[0], 1 => $args[1])); + $templateManager->assign('years', [0 => $args[0], 1 => $args[1]]); $templateManager->assign([ 'breadcrumbs' => [ [ @@ -156,7 +157,7 @@ private function getAvailableSections($contextId) { $sections = Services::get('section')->getSectionList($contextId); - $listOfSections = array(); + $listOfSections = []; foreach ($sections as $section) { $listOfSections[$section['id']] = $section['title']; } @@ -166,7 +167,7 @@ private function getAvailableSections($contextId) public function getSectionsOptions($contextId, $sections) { $sectionDao = DAORegistry::getDAO('SectionDAO'); - $sectionsOptions = array(); + $sectionsOptions = []; foreach ($sections as $sectionId => $sectionName) { $sectionObject = $sectionDao->getById($sectionId, $contextId); diff --git a/ScieloSubmissionsReportPlugin.inc.php b/ScieloSubmissionsReportPlugin.inc.php index f2ec185..258c953 100644 --- a/ScieloSubmissionsReportPlugin.inc.php +++ b/ScieloSubmissionsReportPlugin.inc.php @@ -8,22 +8,23 @@ * Distributed under the GNU GPL v3. For full terms see LICENSE or https://www.gnu.org/licenses/gpl-3.0.txt * * @class ScieloSubmissionsReportPlugin + * * @ingroup plugins_reports_scieloSubmissions * * @brief SciELO Submissions report plugin */ -use PKP\plugins\ReportPlugin; -use APP\submission\Submission; -use PKP\linkAction\request\AjaxModal; -use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; -use APP\plugins\reports\scieloSubmissionsReport\ScieloSubmissionsReportForm; use APP\plugins\reports\scieloSubmissionsReport\classes\form\ScieloSubmissionsReportSettingsForm; +use APP\plugins\reports\scieloSubmissionsReport\ScieloSubmissionsReportForm; +use PKP\linkAction\request\AjaxModal; +use PKP\plugins\ReportPlugin; class ScieloSubmissionsReportPlugin extends ReportPlugin { /** * @copydoc Plugin::register() + * + * @param null|mixed $mainContextId */ public function register($category, $path, $mainContextId = null) { @@ -32,7 +33,7 @@ public function register($category, $path, $mainContextId = null) if ($success && Config::getVar('general', 'installed')) { $this->addLocaleData(); - HookRegistry::register('AcronPlugin::parseCronTab', array($this, 'addPluginTasksToCrontab')); + HookRegistry::register('AcronPlugin::parseCronTab', [$this, 'addPluginTasksToCrontab']); } return $success; } @@ -54,7 +55,7 @@ public function getDescription() public function addPluginTasksToCrontab($hookName, $args) { - $taskFilesPath = & $args[0]; + $taskFilesPath = &$args[0]; $taskFilesPath[] = $this->getPluginPath() . DIRECTORY_SEPARATOR . 'scheduledTasks.xml'; return false; } @@ -72,26 +73,26 @@ public function display($args, $request) $form->generateReport($request); } } else { - $dateStart = date("Y-01-01"); - $dateEnd = date("Y-m-d"); - $form->display($request, 'scieloSubmissionsReportPlugin.tpl', array($dateStart, $dateEnd)); + $dateStart = date('Y-01-01'); + $dateEnd = date('Y-m-d'); + $form->display($request, 'scieloSubmissionsReportPlugin.tpl', [$dateStart, $dateEnd]); } } public function getActions($request, $actionArgs) { $router = $request->getRouter(); - $actions = array_merge( - $this->getEnabled() ? array( + $actions = array_merge( + $this->getEnabled() ? [ new LinkAction( 'pluginSettings', new AjaxModal( - $router->url($request, null, null, 'manage', null, array('verb' => 'pluginSettings', 'plugin' => $this->getName(), 'category' => 'reports')), + $router->url($request, null, null, 'manage', null, ['verb' => 'pluginSettings', 'plugin' => $this->getName(), 'category' => 'reports']), __('plugins.reports.scieloSubmissionsReport.settings.title') ), __('manager.plugins.settings'), ) - ) : array(), + ] : [], parent::getActions($request, $actionArgs) ); return $actions; diff --git a/classes/ClosedDateInterval.php b/classes/ClosedDateInterval.php index 8661fbc..ee92b5f 100644 --- a/classes/ClosedDateInterval.php +++ b/classes/ClosedDateInterval.php @@ -8,8 +8,8 @@ class ClosedDateInterval { private $beginningDate; private $endDate; - private const DAY_BEGINNING = " 00:00:00"; - private const DAY_ENDING = " 23:59:59"; + private const DAY_BEGINNING = ' 00:00:00'; + private const DAY_ENDING = ' 23:59:59'; public function __construct(string $beginningDate, string $endDate) { diff --git a/classes/ScieloArticle.php b/classes/ScieloArticle.php index c9fac45..7b4a386 100644 --- a/classes/ScieloArticle.php +++ b/classes/ScieloArticle.php @@ -2,8 +2,6 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; - class ScieloArticle extends ScieloSubmission { private $editors; @@ -20,13 +18,13 @@ public function __construct(int $id, string $title, string $submitter, string $s $this->sectionEditor = $sectionEditor; $this->reviews = $reviews; $this->lastDecision = $lastDecision; - $this->noEditors = __("plugins.reports.scieloSubmissionsReport.warning.noEditors"); - $this->noDecision = __("plugins.reports.scieloSubmissionsReport.warning.noDecision"); + $this->noEditors = __('plugins.reports.scieloSubmissionsReport.warning.noEditors'); + $this->noDecision = __('plugins.reports.scieloSubmissionsReport.warning.noDecision'); } public function asRecord(): array { - return array($this->id, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->getJournalEditors(), $this->getSectionEditor(), $this->authorsAsRecord(), $this->section, $this->language, $this->getReviews(), $this->lastDecision, $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()); + return [$this->id, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->getJournalEditors(), $this->getSectionEditor(), $this->authorsAsRecord(), $this->section, $this->language, $this->getReviews(), $this->lastDecision, $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()]; } public function getJournalEditors(): string @@ -41,7 +39,7 @@ public function getSectionEditor(): string public function getReviews(): string { - return $this->implodeEmptyFields($this->reviews, ""); + return $this->implodeEmptyFields($this->reviews, ''); } public function hasReviews(): bool diff --git a/classes/ScieloArticleFactory.php b/classes/ScieloArticleFactory.php index 4d928c5..2eeb1a1 100644 --- a/classes/ScieloArticleFactory.php +++ b/classes/ScieloArticleFactory.php @@ -22,7 +22,7 @@ public function createSubmission(int $submissionId, string $locale) $sectionName = $scieloArticlesDAO->getPublicationSection($publicationId, $locale); $language = $submission['locale']; - list($finalDecision, $finalDecisionDate) = $this->retrieveFinalDecisionAndFinalDecisionDate($scieloArticlesDAO, $submissionId, $locale); + [$finalDecision, $finalDecisionDate] = $this->retrieveFinalDecisionAndFinalDecisionDate($scieloArticlesDAO, $submissionId, $locale); $editors = $scieloArticlesDAO->getEditors($submissionId); $sectionEditor = $scieloArticlesDAO->getSectionEditor($submissionId); $reviews = $scieloArticlesDAO->getReviews($submissionId); diff --git a/classes/ScieloArticlesDAO.php b/classes/ScieloArticlesDAO.php index 464750b..6c3b432 100644 --- a/classes/ScieloArticlesDAO.php +++ b/classes/ScieloArticlesDAO.php @@ -3,6 +3,7 @@ * @file plugins/reports/scieloSubmissionsReport/classes/ScieloArticlesDAO.inc.php * * @class ScieloArticlesDAO + * * @ingroup plugins_reports_scieloSubmissionsReport * * Operations for retrieving articles and other data @@ -10,15 +11,10 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; -use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsDAO; -use Illuminate\Database\Capsule\Manager as Capsule; -use Illuminate\Support\Collection; use APP\decision\Decision; +use APP\facades\Repo; use PKP\db\DAORegistry; use PKP\security\Role; -use APP\facades\Repo; class ScieloArticlesDAO extends ScieloSubmissionsDAO { @@ -27,7 +23,7 @@ public function getReviews($submissionId): array $reviewAssignmentDao = DAORegistry::getDAO('ReviewAssignmentDAO'); $submissionReviews = $reviewAssignmentDao->getBySubmissionId($submissionId); $completeReviews = false; - $reviews = array(); + $reviews = []; foreach ($submissionReviews as $review) { if ($review->getDateCompleted()) { @@ -58,7 +54,7 @@ public function getEditors($submissionId): array { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); $stageAssignmentsEditorResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, Role::ROLE_ID_MANAGER, self::SUBMISSION_STAGE_ID); - $journalEditors = array(); + $journalEditors = []; while ($stageAssignment = $stageAssignmentsEditorResults->next()) { $user = Repo::user()->get($stageAssignment->getUserId(), false); @@ -93,13 +89,13 @@ public function getDecisionMessage($decision) case Decision::REVERT_DECLINE: return __('editor.submission.decision.revertDecline'); case Decision::RECOMMEND_ACCEPT: - return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.accept'))); + return __('editor.submission.recommendation.display', ['recommendation' => __('editor.submission.decision.accept')]); case Decision::RECOMMEND_DECLINE: - return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.decline'))); + return __('editor.submission.recommendation.display', ['recommendation' => __('editor.submission.decision.decline')]); case Decision::RECOMMEND_PENDING_REVISIONS: - return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.requestRevisions'))); + return __('editor.submission.recommendation.display', ['recommendation' => __('editor.submission.decision.requestRevisions')]); case Decision::RECOMMEND_RESUBMIT: - return __('editor.submission.recommendation.display', array('recommendation' => __('editor.submission.decision.resubmit'))); + return __('editor.submission.recommendation.display', ['recommendation' => __('editor.submission.decision.resubmit')]); default: return ''; } diff --git a/classes/ScieloPreprint.php b/classes/ScieloPreprint.php index a6f9f71..598f96f 100644 --- a/classes/ScieloPreprint.php +++ b/classes/ScieloPreprint.php @@ -2,9 +2,6 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; - class ScieloPreprint extends ScieloSubmission { private $submitterIsScieloJournal; @@ -29,7 +26,7 @@ public function __construct(int $id, string $title, string $submitter, string $s public function asRecord(): array { - $record = array($this->id, $this->title, $this->submitter, $this->submitterCountry, $this->getSubmitterIsScieloJournal(), $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->getSectionModerators(), $this->getResponsibles(), $this->authorsAsRecord(), $this->section, $this->language, $this->getPublicationStatus(), $this->getPublicationDOI(), $this->getNotes(), $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()); + $record = [$this->id, $this->title, $this->submitter, $this->submitterCountry, $this->getSubmitterIsScieloJournal(), $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->getSectionModerators(), $this->getResponsibles(), $this->authorsAsRecord(), $this->section, $this->language, $this->getPublicationStatus(), $this->getPublicationDOI(), $this->getNotes(), $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()]; if(!is_null($this->stats)) { $record = array_merge($record, $this->stats->asRecord()); @@ -40,40 +37,40 @@ public function asRecord(): array public function getSubmitterIsScieloJournal(): string { - return $this->submitterIsScieloJournal ? __("common.yes") : __("common.no"); + return $this->submitterIsScieloJournal ? __('common.yes') : __('common.no'); } public function getResponsibles(): string { - $messageNoResponsibles = __("plugins.reports.scieloSubmissionsReport.warning.noResponsibles"); + $messageNoResponsibles = __('plugins.reports.scieloSubmissionsReport.warning.noResponsibles'); return $this->implodeEmptyFields($this->responsibles, $messageNoResponsibles); } public function getSectionModerators(): string { - $messageNoModerators = __("plugins.reports.scieloSubmissionsReport.warning.noModerators"); + $messageNoModerators = __('plugins.reports.scieloSubmissionsReport.warning.noModerators'); return $this->implodeEmptyFields($this->sectionModerators, $messageNoModerators); } public function getPublicationStatus(): string { - $messageNoPublicationStatus = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationStatus"); + $messageNoPublicationStatus = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationStatus'); return $this->fillEmptyFields($this->publicationStatus, $messageNoPublicationStatus); } public function getPublicationDOI(): string { - $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); + $messageNoPublicationDOI = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI'); return $this->fillEmptyFields($this->publicationDOI, $messageNoPublicationDOI); } public function getNotes(): string { if(empty($this->notes)) { - return __("plugins.reports.scieloSubmissionsReport.warning.noNotes"); + return __('plugins.reports.scieloSubmissionsReport.warning.noNotes'); } - return trim(preg_replace('/\s+/', ' ', "Note: " . implode(". Note: ", $this->notes))); + return trim(preg_replace('/\s+/', ' ', 'Note: ' . implode('. Note: ', $this->notes))); } public function getStats(): ?SubmissionStats diff --git a/classes/ScieloPreprintFactory.php b/classes/ScieloPreprintFactory.php index ce173b9..e440a3f 100644 --- a/classes/ScieloPreprintFactory.php +++ b/classes/ScieloPreprintFactory.php @@ -2,11 +2,6 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintsDAO; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionFactory; - class ScieloPreprintFactory extends ScieloSubmissionFactory { protected $application = 'ops'; @@ -33,7 +28,7 @@ public function createSubmission(int $submissionId, string $locale) $authors = $this->retrieveAuthors($publicationId, $locale); $sectionName = $scieloPreprintsDAO->getPublicationSection($publicationId, $locale); $language = $submission['locale']; - list($finalDecision, $finalDecisionDate) = $this->retrieveFinalDecisionAndFinalDecisionDate($scieloPreprintsDAO, $submissionId, $locale); + [$finalDecision, $finalDecisionDate] = $this->retrieveFinalDecisionAndFinalDecisionDate($scieloPreprintsDAO, $submissionId, $locale); $sectionModerators = $scieloPreprintsDAO->getSectionModerators($submissionId); $responsibles = $scieloPreprintsDAO->getResponsibles($submissionId); $publicationStatus = $scieloPreprintsDAO->getPublicationStatus($publicationId); diff --git a/classes/ScieloPreprintsDAO.php b/classes/ScieloPreprintsDAO.php index 8a546c8..27a0350 100644 --- a/classes/ScieloPreprintsDAO.php +++ b/classes/ScieloPreprintsDAO.php @@ -3,6 +3,7 @@ * @file plugins/reports/scieloSubmissionsReport/classes/ScieloPreprintDAO.inc.php * * @class ScieloPreprintDAO + * * @ingroup plugins_reports_scieloSubmissionsReport * * Operations for retrieving preprints and other data @@ -10,16 +11,12 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; -use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsDAO; -use Illuminate\Support\Facades\DB; -use Illuminate\Support\Collection; -use APP\submission\Submission; +use APP\core\Services; +use APP\decision\Decision; use APP\facades\Repo; use APP\publication\Publication; -use APP\decision\Decision; -use APP\core\Services; +use APP\submission\Submission; +use Illuminate\Support\Facades\DB; use PKP\db\DAORegistry; class ScieloPreprintsDAO extends ScieloSubmissionsDAO @@ -42,12 +39,12 @@ public function getPdfViews($submissionId, $contextId): int public function getSubmissionNotes($submissionId): array { $resultNotes = DB::table('notes') - ->where('assoc_type', 1048585) - ->where('assoc_id', $submissionId) - ->select('contents') - ->get(); + ->where('assoc_type', 1048585) + ->where('assoc_id', $submissionId) + ->select('contents') + ->get(); - $notes = array(); + $notes = []; foreach ($resultNotes as $noteObject) { $note = get_object_vars($noteObject); @@ -60,7 +57,7 @@ public function getSubmitterIsScieloJournal($submitterId) { $submitterUserGroups = Repo::userGroup()->userUserGroups($submitterId); foreach ($submitterUserGroups as $userGroup) { - $journalGroupAbbrev = "SciELO"; + $journalGroupAbbrev = 'SciELO'; if ($userGroup->getLocalizedData('abbrev', 'pt_BR') == $journalGroupAbbrev) { return true; } @@ -73,7 +70,7 @@ public function getSectionModerators($submissionId): array { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $sectionModeratorUsers = array(); + $sectionModeratorUsers = []; $stageAssignmentsResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsResults->next()) { @@ -92,7 +89,7 @@ public function getResponsibles($submissionId): array { $stageAssignmentDao = DAORegistry::getDAO('StageAssignmentDAO'); - $moderatorUsers = array(); + $moderatorUsers = []; $stageAssignmentsResults = $stageAssignmentDao->getBySubmissionAndRoleId($submissionId, ROLE_ID_SUB_EDITOR, self::SUBMISSION_STAGE_ID); while ($stageAssignment = $stageAssignmentsResults->next()) { @@ -110,13 +107,13 @@ public function getResponsibles($submissionId): array public function getPublicationStatus($publicationId): string { $result = DB::table('publication_settings') - ->where('publication_id', '=', $publicationId) - ->where('setting_name', '=', 'relationStatus') - ->select('setting_value as relationStatus') - ->first(); + ->where('publication_id', '=', $publicationId) + ->where('setting_name', '=', 'relationStatus') + ->select('setting_value as relationStatus') + ->first(); if (is_null($result)) { - return ""; + return ''; } $relationStatus = get_object_vars($result)['relationStatus']; @@ -131,13 +128,13 @@ public function getPublicationStatus($publicationId): string public function getPublicationDOI($publicationId): string { $result = DB::table('publication_settings') - ->where('publication_id', '=', $publicationId) - ->where('setting_name', '=', 'vorDoi') - ->select('setting_value as vorDoi') - ->first(); + ->where('publication_id', '=', $publicationId) + ->where('setting_name', '=', 'vorDoi') + ->select('setting_value as vorDoi') + ->first(); if (is_null($result)) { - return ""; + return ''; } return $publicationDOI = get_object_vars($result)['vorDoi']; @@ -146,15 +143,15 @@ public function getPublicationDOI($publicationId): string public function getFinalDecisionWithDate($submissionId, $locale) { $result = DB::table('submissions') - ->where('submission_id', $submissionId) - ->select('status') - ->first(); + ->where('submission_id', $submissionId) + ->select('status') + ->first(); $submissionStatus = get_object_vars($result)['status']; $result = DB::table('publications') - ->where('submission_id', '=', $submissionId) - ->select('date_published') - ->first(); + ->where('submission_id', '=', $submissionId) + ->select('date_published') + ->first(); $publicationDatePublished = get_object_vars($result)['date_published']; if (!is_null($publicationDatePublished) && $submissionStatus == Submission::STATUS_PUBLISHED) { @@ -164,10 +161,10 @@ public function getFinalDecisionWithDate($submissionId, $locale) $possibleFinalDecisions = [Decision::ACCEPT, Decision::DECLINE, SUBMISSION_EDITOR_DECISION_INITIAL_DECLINE]; $result = DB::table('edit_decisions') - ->where('submission_id', $submissionId) - ->whereIn('decision', $possibleFinalDecisions) - ->orderBy('date_decided', 'asc') - ->first(); + ->where('submission_id', $submissionId) + ->whereIn('decision', $possibleFinalDecisions) + ->orderBy('date_decided', 'asc') + ->first(); if (is_null($result)) { return null; diff --git a/classes/ScieloSubmission.php b/classes/ScieloSubmission.php index d0fe12f..f678c37 100644 --- a/classes/ScieloSubmission.php +++ b/classes/ScieloSubmission.php @@ -50,7 +50,7 @@ protected function implodeEmptyFields($field, $messageIfEmpty): string return $messageIfEmpty; } - return implode(",", $field); + return implode(',', $field); } public function getId(): int @@ -65,7 +65,7 @@ public function getTitle(): string public function getSubmitter(): string { - $messageNoSubmitter = __("plugins.reports.scieloSubmissionsReport.warning.noSubmitter"); + $messageNoSubmitter = __('plugins.reports.scieloSubmissionsReport.warning.noSubmitter'); return $this->fillEmptyFields($this->submitter, $messageNoSubmitter); } @@ -128,7 +128,7 @@ public function getTimeBetweenSubmissionAndFinalDecision(): string return $this->getTimeUnderReview(); } - return ""; + return ''; } protected function authorsAsRecord(): string @@ -139,11 +139,11 @@ protected function authorsAsRecord(): string $records[] = $author->asRecord(); } - return implode("; ", $records); + return implode('; ', $records); } public function asRecord(): array { - return array($this->id, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authorsAsRecord(), $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()); + return [$this->id, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authorsAsRecord(), $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->getTimeUnderReview(), $this->getTimeBetweenSubmissionAndFinalDecision()]; } } diff --git a/classes/ScieloSubmissionFactory.php b/classes/ScieloSubmissionFactory.php index be10785..e54cc60 100644 --- a/classes/ScieloSubmissionFactory.php +++ b/classes/ScieloSubmissionFactory.php @@ -2,13 +2,10 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsDAO; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; -use DateTime; +use APP\facades\Repo; use APP\submission\Submission; +use DateTime; use PKP\db\DAORegistry; -use APP\facades\Repo; class ScieloSubmissionFactory { @@ -28,8 +25,8 @@ public function createSubmission(int $submissionId, string $locale) $daysUntilStatusChange = $this->calculateDaysUntilStatusChange($dateSubmitted, $submission['date_last_activity']); $authors = $this->retrieveAuthors($publicationId, $locale); - $finalDecision = ""; - $finalDecisionDate = ""; + $finalDecision = ''; + $finalDecisionDate = ''; return new ScieloSubmission( $submissionId, @@ -50,9 +47,9 @@ public function createSubmission(int $submissionId, string $locale) protected function retrieveFinalDecisionAndFinalDecisionDate($scieloSubmissionDAO, $submissionId, $locale): array { $finalDecisionWithDate = $scieloSubmissionDAO->getFinalDecisionWithDate($submissionId, $locale); - $finalDecision = (!is_null($finalDecisionWithDate)) ? ($finalDecisionWithDate->getDecision()) : ""; - $finalDecisionDate = (!is_null($finalDecisionWithDate)) ? ($finalDecisionWithDate->getDateDecided()) : ""; - return array($finalDecision, $finalDecisionDate); + $finalDecision = (!is_null($finalDecisionWithDate)) ? ($finalDecisionWithDate->getDecision()) : ''; + $finalDecisionDate = (!is_null($finalDecisionWithDate)) ? ($finalDecisionWithDate->getDateDecided()) : ''; + return [$finalDecision, $finalDecisionDate]; } protected function retrieveSectionName($publication, $locale) @@ -68,7 +65,7 @@ protected function retrieveSubmitter($submissionId) $userId = $scieloSubmissionsDao->getIdOfSubmitterUser($submissionId); if (is_null($userId)) { - return ""; + return ''; } $submitter = Repo::user()->get($userId); @@ -82,13 +79,13 @@ protected function retrieveSubmitterCountry($submissionId) $userId = $scieloSubmissionsDao->getIdOfSubmitterUser($submissionId); if (is_null($userId)) { - return ""; + return ''; } $submitter = Repo::user()->get($userId); $submitterCountry = $submitter->getCountryLocalized(); - return !is_null($submitterCountry) ? $submitterCountry : ""; + return !is_null($submitterCountry) ? $submitterCountry : ''; } protected function calculateDaysUntilStatusChange($dateSubmitted, $dateLastActivity) @@ -115,7 +112,7 @@ protected function getStatusMessage($statusKey) protected function retrieveAuthors($publicationId, $locale) { $scieloSubmissionsDao = new ScieloSubmissionsDAO(); - $authorsIds = $scieloSubmissionsDao->getPublicationAuthors($publicationId); + $authorsIds = $scieloSubmissionsDao->getPublicationAuthors($publicationId); $submissionAuthors = []; foreach ($authorsIds as $authorId) { @@ -124,8 +121,8 @@ protected function retrieveAuthors($publicationId, $locale) $country = $author->getCountryLocalized(); $affiliation = $author->getLocalizedData('affiliation', $locale); - $country = (!is_null($country)) ? ($country) : (""); - $affiliation = (!is_null($affiliation)) ? ($affiliation) : (""); + $country = (!is_null($country)) ? ($country) : (''); + $affiliation = (!is_null($affiliation)) ? ($affiliation) : (''); $submissionAuthors[] = new SubmissionAuthor($fullName, $country, $affiliation); } diff --git a/classes/ScieloSubmissionsDAO.php b/classes/ScieloSubmissionsDAO.php index 981a1fe..9faa842 100644 --- a/classes/ScieloSubmissionsDAO.php +++ b/classes/ScieloSubmissionsDAO.php @@ -4,6 +4,7 @@ * @file plugins/reports/scieloSubmissionsReport/classes/ScieloSubmissionsDAO.inc.php * * @class ScieloSubmissionsDAO + * * @ingroup plugins_reports_scieloSubmissionsReport * * Operations for retrieving submissions and other data @@ -11,14 +12,10 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use PKP\db\DAO; use APP\decision\Decision; -use APP\log\event\SubmissionEventLogEntry; -use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; -use APP\plugins\reports\scieloSubmissionsReport\classes\FinalDecision; -use Illuminate\Support\Collection; -use Illuminate\Support\Facades\DB; use DateTime; +use Illuminate\Support\Facades\DB; +use PKP\db\DAO; use PKP\log\event\PKPSubmissionEventLogEntry; class ScieloSubmissionsDAO extends DAO @@ -28,20 +25,20 @@ class ScieloSubmissionsDAO extends DAO public function getSubmissions($locale, $contextId, $sectionsIds, $submissionDateInterval, $finalDecisionDateInterval) { $query = DB::table('submissions') - ->join('publications', 'submissions.current_publication_id', '=', 'publications.publication_id') - ->where('submissions.context_id', $contextId) - ->whereNotNull('submissions.date_submitted') - ->whereIn('publications.section_id', $sectionsIds) - ->select('submissions.submission_id'); + ->join('publications', 'submissions.current_publication_id', '=', 'publications.publication_id') + ->where('submissions.context_id', $contextId) + ->whereNotNull('submissions.date_submitted') + ->whereIn('publications.section_id', $sectionsIds) + ->select('submissions.submission_id'); if (!is_null($submissionDateInterval)) { $query = $query->where('submissions.date_submitted', '>=', $submissionDateInterval->getBeginningDate()) - ->where('submissions.date_submitted', '<=', $submissionDateInterval->getEndDate()); + ->where('submissions.date_submitted', '<=', $submissionDateInterval->getEndDate()); } $result = $query->get(); - $submissions = array(); + $submissions = []; foreach ($result->toArray() as $row) { $submissionId = $this->submissionFromRow(get_object_vars($row)); @@ -65,9 +62,9 @@ public function getSubmissions($locale, $contextId, $sectionsIds, $submissionDat public function getSubmission($submissionId) { $result = DB::table('submissions') - ->where('submission_id', '=', $submissionId) - ->select('current_publication_id', 'date_submitted', 'date_last_activity', 'status', 'locale', 'context_id') - ->first(); + ->where('submission_id', '=', $submissionId) + ->select('current_publication_id', 'date_submitted', 'date_last_activity', 'status', 'locale', 'context_id') + ->first(); return get_object_vars($result); } @@ -75,10 +72,10 @@ public function getSubmission($submissionId) public function getPublicationTitle($publicationId, $locale, $submissionLocale) { $result = DB::table('publication_settings') - ->where('publication_id', '=', $publicationId) - ->where('setting_name', '=', 'title') - ->select('locale', 'setting_value as title') - ->get(); + ->where('publication_id', '=', $publicationId) + ->where('setting_name', '=', 'title') + ->select('locale', 'setting_value as title') + ->get(); $titles = []; foreach ($result->toArray() as $row) { @@ -101,17 +98,17 @@ public function getPublicationTitle($publicationId, $locale, $submissionLocale) public function getPublicationSection($publicationId, $locale) { $result = DB::table('publications') - ->where('publication_id', '=', $publicationId) - ->select('section_id') - ->first(); + ->where('publication_id', '=', $publicationId) + ->select('section_id') + ->first(); $sectionId = get_object_vars($result)['section_id']; $result = DB::table('section_settings') - ->where('section_id', '=', $sectionId) - ->where('setting_name', '=', 'title') - ->where('locale', '=', $locale) - ->select('setting_value as title') - ->first(); + ->where('section_id', '=', $sectionId) + ->where('setting_name', '=', 'title') + ->where('locale', '=', $locale) + ->select('setting_value as title') + ->first(); $sectionTitle = get_object_vars($result)['title']; return $sectionTitle; @@ -120,9 +117,9 @@ public function getPublicationSection($publicationId, $locale) public function getPublicationAuthors($publicationId) { $result = DB::table('authors') - ->where('publication_id', '=', $publicationId) - ->select('author_id') - ->get(); + ->where('publication_id', '=', $publicationId) + ->select('author_id') + ->get(); $authorsIds = []; foreach ($result->toArray() as $row) { @@ -141,10 +138,10 @@ public function getFinalDecisionWithDate($submissionId, $locale) ]; $result = DB::table('edit_decisions') - ->where('submission_id', $submissionId) - ->whereIn('decision', $possibleFinalDecisions) - ->orderBy('date_decided', 'asc') - ->first(); + ->where('submission_id', $submissionId) + ->whereIn('decision', $possibleFinalDecisions) + ->orderBy('date_decided', 'asc') + ->first(); if (is_null($result)) { return null; @@ -158,11 +155,11 @@ public function getFinalDecisionWithDate($submissionId, $locale) public function getIdOfSubmitterUser($submissionId) { $result = DB::table('event_log') - ->where('event_type', PKPSubmissionEventLogEntry::SUBMISSION_LOG_SUBMISSION_SUBMIT) - ->where('assoc_type', ASSOC_TYPE_SUBMISSION) - ->where('assoc_id', $submissionId) - ->select('user_id') - ->get(); + ->where('event_type', PKPSubmissionEventLogEntry::SUBMISSION_LOG_SUBMISSION_SUBMIT) + ->where('assoc_type', ASSOC_TYPE_SUBMISSION) + ->where('assoc_id', $submissionId) + ->select('user_id') + ->get(); $result = $result->toArray(); if (empty($result)) { @@ -181,7 +178,7 @@ protected function submissionFromRow($row) protected function finalDecisionFromRow($row, $locale) { $dateDecided = new DateTime($row['date_decided']); - $decision = ""; + $decision = ''; if ($row['decision'] == Decision::ACCEPT) { $decision = __('common.accepted', [], $locale); diff --git a/classes/ScieloSubmissionsOJSReport.php b/classes/ScieloSubmissionsOJSReport.php index a3ac166..ccea479 100644 --- a/classes/ScieloSubmissionsOJSReport.php +++ b/classes/ScieloSubmissionsOJSReport.php @@ -2,37 +2,35 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; - class ScieloSubmissionsOJSReport extends ScieloSubmissionsReport { public function getHeaders(): array { return [ - __("plugins.reports.scieloSubmissionsReport.header.submissionId"), - __("submission.submissionTitle"), - __("submission.submitter"), - __("plugins.reports.scieloSubmissionsReport.header.submitterCountry"), - __("common.dateSubmitted"), - __("plugins.reports.scieloSubmissionsReport.header.daysChangeStatus"), - __("plugins.reports.scieloSubmissionsReport.header.submissionStatus"), - __("plugins.reports.scieloSubmissionsReport.header.journalEditors"), - __("plugins.reports.scieloSubmissionsReport.header.sectionEditor"), - __("submission.authors"), - __("plugins.reports.scieloSubmissionsReport.header.section"), - __("common.language"), - __("plugins.reports.scieloSubmissionsReport.header.reviews"), - __("plugins.reports.scieloSubmissionsReport.header.LastDecision"), - __("plugins.reports.scieloSubmissionsReport.header.FinalDecision"), - __("plugins.reports.scieloSubmissionsReport.header.finalDecisionDate"), - __("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), - __("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval") + __('plugins.reports.scieloSubmissionsReport.header.submissionId'), + __('submission.submissionTitle'), + __('submission.submitter'), + __('plugins.reports.scieloSubmissionsReport.header.submitterCountry'), + __('common.dateSubmitted'), + __('plugins.reports.scieloSubmissionsReport.header.daysChangeStatus'), + __('plugins.reports.scieloSubmissionsReport.header.submissionStatus'), + __('plugins.reports.scieloSubmissionsReport.header.journalEditors'), + __('plugins.reports.scieloSubmissionsReport.header.sectionEditor'), + __('submission.authors'), + __('plugins.reports.scieloSubmissionsReport.header.section'), + __('common.language'), + __('plugins.reports.scieloSubmissionsReport.header.reviews'), + __('plugins.reports.scieloSubmissionsReport.header.LastDecision'), + __('plugins.reports.scieloSubmissionsReport.header.FinalDecision'), + __('plugins.reports.scieloSubmissionsReport.header.finalDecisionDate'), + __('plugins.reports.scieloSubmissionsReport.header.ReviewingTime'), + __('plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval') ]; } protected function filterWithAverageReviewingTimeOnly() { - $submissions = array(); + $submissions = []; foreach ($this->submissions as $submission) { if (!empty($submission->getFinalDecision()) && $submission->hasReviews()) { diff --git a/classes/ScieloSubmissionsOPSReport.php b/classes/ScieloSubmissionsOPSReport.php index 6f698b8..bc49665 100644 --- a/classes/ScieloSubmissionsOPSReport.php +++ b/classes/ScieloSubmissionsOPSReport.php @@ -2,8 +2,6 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; - class ScieloSubmissionsOPSReport extends ScieloSubmissionsReport { private $includeViews; @@ -17,30 +15,30 @@ public function __construct(array $sections, array $submissions, bool $includeVi public function getHeaders(): array { $headers = [ - __("plugins.reports.scieloSubmissionsReport.header.submissionId"), - __("submission.submissionTitle"), - __("submission.submitter"), - __("plugins.reports.scieloSubmissionsReport.header.submitterCountry"), - __("plugins.reports.scieloSubmissionsReport.header.submitterIsScieloJournal"), - __("common.dateSubmitted"), - __("plugins.reports.scieloSubmissionsReport.header.daysChangeStatus"), - __("plugins.reports.scieloSubmissionsReport.header.submissionStatus"), - __("plugins.reports.scieloSubmissionsReport.header.areaModerator"), - __("plugins.reports.scieloSubmissionsReport.header.responsibles"), - __("submission.authors"), - __("plugins.reports.scieloSubmissionsReport.header.section"), - __("common.language"), - __("plugins.reports.scieloSubmissionsReport.header.publicationStatus"), - __("plugins.reports.scieloSubmissionsReport.header.publicationDOI"), - __("submission.notes"), - __("plugins.reports.scieloSubmissionsReport.header.FinalDecision"), - __("plugins.reports.scieloSubmissionsReport.header.finalDecisionDate"), - __("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), - __("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval"), + __('plugins.reports.scieloSubmissionsReport.header.submissionId'), + __('submission.submissionTitle'), + __('submission.submitter'), + __('plugins.reports.scieloSubmissionsReport.header.submitterCountry'), + __('plugins.reports.scieloSubmissionsReport.header.submitterIsScieloJournal'), + __('common.dateSubmitted'), + __('plugins.reports.scieloSubmissionsReport.header.daysChangeStatus'), + __('plugins.reports.scieloSubmissionsReport.header.submissionStatus'), + __('plugins.reports.scieloSubmissionsReport.header.areaModerator'), + __('plugins.reports.scieloSubmissionsReport.header.responsibles'), + __('submission.authors'), + __('plugins.reports.scieloSubmissionsReport.header.section'), + __('common.language'), + __('plugins.reports.scieloSubmissionsReport.header.publicationStatus'), + __('plugins.reports.scieloSubmissionsReport.header.publicationDOI'), + __('submission.notes'), + __('plugins.reports.scieloSubmissionsReport.header.FinalDecision'), + __('plugins.reports.scieloSubmissionsReport.header.finalDecisionDate'), + __('plugins.reports.scieloSubmissionsReport.header.ReviewingTime'), + __('plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval'), ]; if ($this->includeViews) { - $headers = array_merge($headers, [__("submission.abstractViews"), __("plugins.reports.scieloSubmissionsReport.header.pdfViews")]); + $headers = array_merge($headers, [__('submission.abstractViews'), __('plugins.reports.scieloSubmissionsReport.header.pdfViews')]); } return $headers; diff --git a/classes/ScieloSubmissionsReport.php b/classes/ScieloSubmissionsReport.php index d1fdee9..a4db987 100644 --- a/classes/ScieloSubmissionsReport.php +++ b/classes/ScieloSubmissionsReport.php @@ -12,7 +12,7 @@ public function __construct(array $sections, array $submissions) { $this->sections = $sections; $this->submissions = $submissions; - $this->UTF8_BOM = chr(0xEF).chr(0xBB).chr(0xBF); + $this->UTF8_BOM = chr(0xEF) . chr(0xBB) . chr(0xBF); } public function getSections(): array @@ -27,7 +27,7 @@ public function getSubmissions(): array protected function filterWithAverageReviewingTimeOnly() { - $submissions = array(); + $submissions = []; foreach ($this->submissions as $submission) { if (!empty($submission->getFinalDecision())) { @@ -56,31 +56,31 @@ public function getAverageReviewingTime(): int public function getHeaders(): array { return [ - "ID da submissão", - "Título da Submissão", - "Submetido por", - "Data de submissão", - "Dias até mudança de status", - "Estado da submissão", - "Editores da Revista", - "Editor de Seção", - "Autores", - "Seção", - "Idioma", - "Avaliações", - "Última decisão", - "Decisão final", - "Data da decisão final", - "Tempo em avaliação", - "Tempo entre submissão e decisão final" + 'ID da submissão', + 'Título da Submissão', + 'Submetido por', + 'Data de submissão', + 'Dias até mudança de status', + 'Estado da submissão', + 'Editores da Revista', + 'Editor de Seção', + 'Autores', + 'Seção', + 'Idioma', + 'Avaliações', + 'Última decisão', + 'Decisão final', + 'Data da decisão final', + 'Tempo em avaliação', + 'Tempo entre submissão e decisão final' ]; } private function getSecondHeaders(): array { return [ - __("plugins.reports.scieloSubmissionsReport.header.AverageReviewingTime"), - __("section.sections") + __('plugins.reports.scieloSubmissionsReport.header.AverageReviewingTime'), + __('section.sections') ]; } @@ -93,10 +93,10 @@ public function buildCSV($fileDescriptor): void fputcsv($fileDescriptor, $submission->asRecord()); } - $blankLine = ["", "", ""]; + $blankLine = ['', '', '']; fputcsv($fileDescriptor, $blankLine); fputcsv($fileDescriptor, $this->getSecondHeaders()); - $sections = implode(",", $this->getSections()); + $sections = implode(',', $this->getSections()); fputcsv($fileDescriptor, [$this->getAverageReviewingTime(), $sections]); } } diff --git a/classes/ScieloSubmissionsReportFactory.php b/classes/ScieloSubmissionsReportFactory.php index 674ed32..10b7b62 100644 --- a/classes/ScieloSubmissionsReportFactory.php +++ b/classes/ScieloSubmissionsReportFactory.php @@ -2,14 +2,6 @@ namespace APP\plugins\reports\scieloSubmissionsReport\classes; -use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsOJSReport; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsOPSReport; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticlesDAO; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintsDAO; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintFactory; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\facades\Repo; class ScieloSubmissionsReportFactory diff --git a/classes/SubmissionAuthor.php b/classes/SubmissionAuthor.php index 7588f93..501b98e 100644 --- a/classes/SubmissionAuthor.php +++ b/classes/SubmissionAuthor.php @@ -33,6 +33,6 @@ public function getAffiliation(): string public function asRecord(): string { $treatedAffiliation = preg_replace('/\s+/', ' ', $this->affiliation); - return implode(", ", [$this->fullName, $this->country, $treatedAffiliation]); + return implode(', ', [$this->fullName, $this->country, $treatedAffiliation]); } } diff --git a/classes/form/ScieloSubmissionsReportSettingsForm.inc.php b/classes/form/ScieloSubmissionsReportSettingsForm.inc.php index 04a21e5..aa03720 100644 --- a/classes/form/ScieloSubmissionsReportSettingsForm.inc.php +++ b/classes/form/ScieloSubmissionsReportSettingsForm.inc.php @@ -4,9 +4,9 @@ class ScieloSubmissionsReportSettingsForm extends Form { - public const CONFIG_VARS = array( + public const CONFIG_VARS = [ 'recipientEmail' => 'string', - ); + ]; private $plugin; private $coontextId; @@ -19,7 +19,7 @@ public function __construct($plugin, $contextId) public function initData() { - $this->_data = array(); + $this->_data = []; foreach (self::CONFIG_VARS as $configVar => $type) { $this->_data[$configVar] = $this->plugin->getSetting($this->contextId, $configVar); } diff --git a/classes/tasks/SendReportEmail.inc.php b/classes/tasks/SendReportEmail.inc.php index 38ecf16..ee2da3c 100644 --- a/classes/tasks/SendReportEmail.inc.php +++ b/classes/tasks/SendReportEmail.inc.php @@ -1,9 +1,9 @@ getAllSectionsIds($context->getId()); $includeViews = true; $beginningDate = '2020-04-01'; - $endDate = date("Y-m-d"); + $endDate = date('Y-m-d'); $submissionDateInterval = new ClosedDateInterval($beginningDate, $endDate); $reportFactory = new ScieloSubmissionsReportFactory($application, $context->getId(), $sectionsIds, $submissionDateInterval, null, $locale, $includeViews); @@ -52,7 +52,7 @@ private function getReport($application, $context, $locale) private function writeReportFile($context, $report): string { $acronym = $context->getLocalizedData('acronym'); - $reportFilePath = DIRECTORY_SEPARATOR . "tmp" . DIRECTORY_SEPARATOR . "{$acronym}_complete_report.csv"; + $reportFilePath = DIRECTORY_SEPARATOR . 'tmp' . DIRECTORY_SEPARATOR . "{$acronym}_complete_report.csv"; $csvFile = fopen($reportFilePath, 'wt'); $report->buildCSV($csvFile); @@ -63,7 +63,7 @@ private function getAllSectionsIds($contextId) { $sections = Services::get('section')->getSectionList($contextId); - $sectionsIds = array(); + $sectionsIds = []; foreach ($sections as $section) { $sectionsIds[] = $section['id']; } diff --git a/tests/CSVFileUtils.php b/tests/CSVFileUtils.php index 8fcdd2a..4acabc3 100644 --- a/tests/CSVFileUtils.php +++ b/tests/CSVFileUtils.php @@ -6,7 +6,7 @@ class CSVFileUtils { public function getExpectedUTF8BOM(): string { - return chr(0xEF).chr(0xBB).chr(0xBF); + return chr(0xEF) . chr(0xBB) . chr(0xBF); } public function readUTF8Bytes($csvFile): string diff --git a/tests/ClosedDateIntervalTest.php b/tests/ClosedDateIntervalTest.php index 4157379..261249d 100644 --- a/tests/ClosedDateIntervalTest.php +++ b/tests/ClosedDateIntervalTest.php @@ -2,14 +2,14 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; +use PHPUnit\Framework\TestCase; class ClosedDateIntervalTest extends TestCase { private $dateTnterval; - private $beginningDate = "2020-06-07"; - private $endDate = "2020-07-31"; + private $beginningDate = '2020-06-07'; + private $endDate = '2020-07-31'; public function setUp(): void { @@ -18,40 +18,40 @@ public function setUp(): void public function testIntervalBeginning(): void { - $expectedBeginningDate = "2020-06-07 00:00:00"; + $expectedBeginningDate = '2020-06-07 00:00:00'; $this->assertEquals($expectedBeginningDate, $this->dateInterval->getBeginningDate()); } public function testIntervalEnd(): void { - $expectedEndDate = "2020-07-31 23:59:59"; + $expectedEndDate = '2020-07-31 23:59:59'; $this->assertEquals($expectedEndDate, $this->dateInterval->getEndDate()); } public function testDateInsideIntervalAtMiddle(): void { - $date = "2020-06-30 15:16:20"; + $date = '2020-06-30 15:16:20'; $isInside = $this->dateInterval->isInsideInterval($date); $this->assertTrue($isInside); } public function testDateInsideIntervalAtBeginningDate(): void { - $date = "2020-06-07 05:16:20"; + $date = '2020-06-07 05:16:20'; $isInside = $this->dateInterval->isInsideInterval($date); $this->assertTrue($isInside); } public function testDateInsideIntervalAtEndDate(): void { - $date = "2020-07-31 20:16:20"; + $date = '2020-07-31 20:16:20'; $isInside = $this->dateInterval->isInsideInterval($date); $this->assertTrue($isInside); } public function testDateOutsideInterval(): void { - $date = "2020-11-15 15:11:48"; + $date = '2020-11-15 15:11:48'; $isInside = $this->dateInterval->isInsideInterval($date); $this->assertFalse($isInside); } diff --git a/tests/ScieloArticleFactoryTest.php b/tests/ScieloArticleFactoryTest.php index 91de327..103e783 100644 --- a/tests/ScieloArticleFactoryTest.php +++ b/tests/ScieloArticleFactoryTest.php @@ -2,24 +2,20 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PKP\tests\DatabaseTestCase; -use APP\submission\Submission; -use APP\publication\Publication; -use APP\section\Section; -use APP\author\Author; +use APP\decision\Decision; use APP\facades\Repo; -use PKP\core\Core; -use PKP\db\DAORegistry; -use APP\core\Application; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticleFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticlesDAO; -use APP\decision\Decision; -use PKP\userGroup\relationships\UserGroupStage; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use APP\submission\Submission; +use PKP\core\Core; +use PKP\db\DAORegistry; use PKP\security\Role; -use PKP\submission\reviewRound\ReviewRound; use PKP\submission\reviewAssignment\ReviewAssignment; +use PKP\submission\reviewRound\ReviewRound; +use PKP\tests\DatabaseTestCase; +use PKP\userGroup\relationships\UserGroupStage; class ScieloArticleFactoryTest extends DatabaseTestCase { @@ -37,15 +33,15 @@ class ScieloArticleFactoryTest extends DatabaseTestCase private $stageAssignmentIds = []; private $locale = 'en'; - private $title = "eXtreme Programming: A practical guide"; - private $submitter = "Don Vito Corleone"; + private $title = 'eXtreme Programming: A practical guide'; + private $submitter = 'Don Vito Corleone'; private $dateSubmitted = '2021-05-31 15:38:24'; private $statusCode = Submission::STATUS_PUBLISHED; private $statusMessage; - private $sectionName = "Biological Sciences"; + private $sectionName = 'Biological Sciences'; private $dateLastActivity = '2021-06-03 16:00:00'; private $submissionAuthors; - private $doi = "10.666/949494"; + private $doi = '10.666/949494'; public function setUp(): void { @@ -204,21 +200,21 @@ private function createAuthors(): array $author2 = Repo::author()->newDataObject(); $author1->setData('publicationId', $this->publicationId); $author2->setData('publicationId', $this->publicationId); - $author1->setData('email', "anaalice@harvard.com"); - $author2->setData('email', "seizi.tagima@ufam.edu.br"); + $author1->setData('email', 'anaalice@harvard.com'); + $author2->setData('email', 'seizi.tagima@ufam.edu.br'); $author1->setGivenName('Ana Alice', $this->locale); $author1->setFamilyName('Caldas Novas', $this->locale); $author2->setGivenName('Seizi', $this->locale); $author2->setFamilyName('Tagima', $this->locale); - $author1->setAffiliation("Harvard University", $this->locale); - $author2->setAffiliation("Amazonas Federal University", $this->locale); + $author1->setAffiliation('Harvard University', $this->locale); + $author2->setAffiliation('Amazonas Federal University', $this->locale); $author1->setData('country', 'US'); $author2->setData('country', 'BR'); $this->author1Id = Repo::author()->dao->insert($author1); $this->author2Id = Repo::author()->dao->insert($author2); - return [new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University")]; + return [new SubmissionAuthor('Ana Alice Caldas Novas', 'United States', 'Harvard University'), new SubmissionAuthor('Seizi Tagima', 'Brazil', 'Amazonas Federal University')]; } private function addCurrentPublicationToSubmission(): void @@ -233,16 +229,16 @@ private function createEditorUsers(bool $isSectionEditor = false) $firstEditorUser->setUsername('examplePeter'); $firstEditorUser->setEmail('peter@exemple.com'); $firstEditorUser->setPassword('examplepass'); - $firstEditorUser->setGivenName("Peter", $this->locale); - $firstEditorUser->setFamilyName("Parker", $this->locale); + $firstEditorUser->setGivenName('Peter', $this->locale); + $firstEditorUser->setFamilyName('Parker', $this->locale); $firstEditorUser->setDateRegistered(Core::getCurrentDate()); $secondEditorUser = Repo::user()->newDataObject(); $secondEditorUser->setUsername('exampleJhon'); $secondEditorUser->setEmail('jhon@exemple.com'); $secondEditorUser->setPassword('exemplepass'); - $secondEditorUser->setGivenName("Jhon", $this->locale); - $secondEditorUser->setFamilyName("Carter", $this->locale); + $secondEditorUser->setGivenName('Jhon', $this->locale); + $secondEditorUser->setFamilyName('Carter', $this->locale); $secondEditorUser->setDateRegistered(Core::getCurrentDate()); $this->firstEditorUserId = Repo::user()->add($firstEditorUser); @@ -338,7 +334,7 @@ public function testSubmissionGetsEditors(): void $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); - $expectedEditors = $editorsUsers[0]->getFullName() . "," . $editorsUsers[1]->getFullName(); + $expectedEditors = $editorsUsers[0]->getFullName() . ',' . $editorsUsers[1]->getFullName(); $this->assertEquals($expectedEditors, $scieloArticle->getJournalEditors()); } @@ -350,7 +346,7 @@ public function testSubmissionGetsNoEditors(): void $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); - $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.warning.noEditors"), $scieloArticle->getJournalEditors()); + $this->assertEquals(__('plugins.reports.scieloSubmissionsReport.warning.noEditors'), $scieloArticle->getJournalEditors()); } /** @@ -381,7 +377,7 @@ public function testSubmissionGetsNoSectionEditor(): void $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); - $noEditorMessage = __("plugins.reports.scieloSubmissionsReport.warning.noEditors"); + $noEditorMessage = __('plugins.reports.scieloSubmissionsReport.warning.noEditors'); $this->assertEquals($noEditorMessage, $scieloArticle->getSectionEditor()); } @@ -425,7 +421,7 @@ public function testSubmissionGetsNoLastDecision(): void $articleFactory = new ScieloArticleFactory(); $scieloArticle = $articleFactory->createSubmission($this->submissionId, $this->locale); - $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.warning.noDecision"), $scieloArticle->getLastDecision()); + $this->assertEquals(__('plugins.reports.scieloSubmissionsReport.warning.noDecision'), $scieloArticle->getLastDecision()); } /** diff --git a/tests/ScieloArticleTest.php b/tests/ScieloArticleTest.php index 0c91d7f..61cd412 100644 --- a/tests/ScieloArticleTest.php +++ b/tests/ScieloArticleTest.php @@ -2,47 +2,46 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use PHPUnit\Framework\TestCase; class ScieloArticleTest extends TestCase { private $submission; private $submissionId = 1233; - private $title = "Rethinking linguistic relativity"; - private $submitter = "Atila Iamarino"; - private $submitterCountry = "Brasil"; - private $dateSubmitted = "2013-09-06 19:07:02"; + private $title = 'Rethinking linguistic relativity'; + private $submitter = 'Atila Iamarino'; + private $submitterCountry = 'Brasil'; + private $dateSubmitted = '2013-09-06 19:07:02'; private $daysUntilStatusChange = 3; - private $status = "Published"; + private $status = 'Published'; private $authors; - private $section = "Biological Sciences"; - private $language = "en"; - private $finalDecision = "Accepted"; - private $finalDecisionDate = "2013-09-14 22:00:00"; + private $section = 'Biological Sciences'; + private $language = 'en'; + private $finalDecision = 'Accepted'; + private $finalDecisionDate = '2013-09-14 22:00:00'; private $expectedReviewingTime = 8; - private $editors = array("Albert Einstein", "Richard Feynman"); - private $sectionEditor = "Carl Sagan"; - private $reviews = array("Aceitar", "Ver comentários"); - private $lastDecision = "Enviar para avaliação"; + private $editors = ['Albert Einstein', 'Richard Feynman']; + private $sectionEditor = 'Carl Sagan'; + private $reviews = ['Aceitar', 'Ver comentários']; + private $lastDecision = 'Enviar para avaliação'; public function setUp(): void { - $this->authors = array(new SubmissionAuthor("Atila", "Brasil", "USP")); + $this->authors = [new SubmissionAuthor('Atila', 'Brasil', 'USP')]; $this->submission = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, $this->sectionEditor, $this->reviews, $this->lastDecision); } public function testJournalEditors(): void { - $this->assertEquals(implode(",", $this->editors), $this->submission->getJournalEditors()); + $this->assertEquals(implode(',', $this->editors), $this->submission->getJournalEditors()); } public function testWhenJournalEditorsIsEmpty(): void { $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, [], $this->sectionEditor, $this->reviews, $this->lastDecision); - $messageNoEditors = __("plugins.reports.scieloSubmissionsReport.warning.noEditors"); + $messageNoEditors = __('plugins.reports.scieloSubmissionsReport.warning.noEditors'); $this->assertEquals($messageNoEditors, $article->getJournalEditors()); } @@ -53,20 +52,20 @@ public function testHasSectionEditor(): void public function testWhenSectionEditorIsEmpty(): void { - $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, "", $this->reviews, $this->lastDecision); - $messageNoEditors = __("plugins.reports.scieloSubmissionsReport.warning.noEditors"); + $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, '', $this->reviews, $this->lastDecision); + $messageNoEditors = __('plugins.reports.scieloSubmissionsReport.warning.noEditors'); $this->assertEquals($messageNoEditors, $article->getSectionEditor()); } public function testHasReviews(): void { - $this->assertEquals(implode(",", $this->reviews), $this->submission->getReviews()); + $this->assertEquals(implode(',', $this->reviews), $this->submission->getReviews()); } public function testHasNoReviews(): void { $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, $this->sectionEditor, [], $this->lastDecision); - $this->assertEquals("", $article->getReviews()); + $this->assertEquals('', $article->getReviews()); } public function testHasLastDecision(): void @@ -76,8 +75,8 @@ public function testHasLastDecision(): void public function testHasNoLastDecision(): void { - $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, $this->sectionEditor, $this->reviews, ""); - $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.warning.noDecision"), $article->getLastDecision()); + $article = new ScieloArticle($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->editors, $this->sectionEditor, $this->reviews, ''); + $this->assertEquals(__('plugins.reports.scieloSubmissionsReport.warning.noDecision'), $article->getLastDecision()); } public function testHasReviewsWhenHasAtLeastOneReview(): void @@ -87,9 +86,9 @@ public function testHasReviewsWhenHasAtLeastOneReview(): void public function testGetRecord(): void { - $article = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); + $article = new ScieloArticle(1, 'Title 1', 'Paola Franchesca', 'Brasil', '2021-04-21', 1, 'Posted', [new SubmissionAuthor('Paola Franchesca', 'Italy', 'University of Milan')], 'Fashion Design', 'en', 'Accepted', '2021-04-23', ['Jean Paul Cardin'], 'Jean Paul Cardin', ['Accept', 'See comments'], 'Accept'); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; + $expectedRecord = ['1', 'Title 1', 'Paola Franchesca', 'Brasil', '2021-04-21', '1', 'Posted', 'Jean Paul Cardin', 'Jean Paul Cardin', 'Paola Franchesca, Italy, University of Milan', 'Fashion Design', 'en', 'Accept,See comments', 'Accept', 'Accepted', '2021-04-23', '2', '2']; $this->assertEquals($expectedRecord, $article->asRecord()); } } diff --git a/tests/ScieloPreprintFactoryTest.php b/tests/ScieloPreprintFactoryTest.php index 4e72720..0fc4b6f 100644 --- a/tests/ScieloPreprintFactoryTest.php +++ b/tests/ScieloPreprintFactoryTest.php @@ -2,24 +2,22 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PKP\tests\DatabaseTestCase; -use APP\submission\Submission; -use APP\publication\Publication; -use APP\section\Section; use APP\core\Application; +use APP\decision\Decision; use APP\facades\Repo; -use PKP\db\DAORegistry; -use PKP\core\Core; -use PKP\userGroup\relationships\UserGroupStage; -use APP\author\Author; -use PKP\log\event\PKPSubmissionEventLogEntry; -use PKP\statistics\PKPStatisticsHelper; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; +use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprintFactory; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; -use APP\decision\Decision; +use APP\publication\Publication; +use APP\submission\Submission; use Illuminate\Support\Facades\DB; +use PKP\core\Core; +use PKP\db\DAORegistry; +use PKP\log\event\PKPSubmissionEventLogEntry; +use PKP\statistics\PKPStatisticsHelper; +use PKP\tests\DatabaseTestCase; +use PKP\userGroup\relationships\UserGroupStage; class ScieloPreprintFactoryTest extends DatabaseTestCase { @@ -30,15 +28,15 @@ class ScieloPreprintFactoryTest extends DatabaseTestCase private $submissionId; private $publicationId; private $sectionId; - private $title = "eXtreme Programming: A practical guide"; - private $submitter = "Don Vito Corleone"; + private $title = 'eXtreme Programming: A practical guide'; + private $submitter = 'Don Vito Corleone'; private $dateSubmitted = '2021-05-31 15:38:24'; private $statusCode = Submission::STATUS_PUBLISHED; private $statusMessage; - private $sectionName = "Biological Sciences"; + private $sectionName = 'Biological Sciences'; private $dateLastActivity = '2021-06-03 16:00:00'; private $submissionAuthors; - private $vorDoi = "10.666/949494"; + private $vorDoi = '10.666/949494'; private $relationStatus; private $abstractViews = 10; private $pdfViews = 21; @@ -68,8 +66,8 @@ public function setUp(): void protected function getAffectedTables() { return ['notes', 'submissions', 'submission_settings', 'publications', 'publication_settings', - 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', - 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage']; + 'users', 'user_groups', 'user_settings', 'user_group_settings', 'user_user_groups', 'event_log', 'sections', + 'section_settings', 'authors', 'author_settings', 'edit_decisions', 'stage_assignments', 'user_group_stage']; } private function createSubmission($statusCode): int @@ -135,14 +133,14 @@ private function createAuthors(): array $author2 = Repo::author()->newDataObject(); $author1->setData('publicationId', $this->publicationId); $author2->setData('publicationId', $this->publicationId); - $author1->setData('email', "anaalice@harvard.com"); - $author2->setData('email', "seizi.tagima@ufam.edu.br"); + $author1->setData('email', 'anaalice@harvard.com'); + $author2->setData('email', 'seizi.tagima@ufam.edu.br'); $author1->setGivenName('Ana Alice', $this->locale); $author1->setFamilyName('Caldas Novas', $this->locale); $author2->setGivenName('Seizi', $this->locale); $author2->setFamilyName('Tagima', $this->locale); - $author1->setAffiliation("Harvard University", $this->locale); - $author2->setAffiliation("Amazonas Federal University", $this->locale); + $author1->setAffiliation('Harvard University', $this->locale); + $author2->setAffiliation('Amazonas Federal University', $this->locale); $author1->setData('country', 'US'); $author2->setData('country', 'BR'); @@ -150,8 +148,8 @@ private function createAuthors(): array Repo::author()->dao->insert($author2); return [ - new SubmissionAuthor("Ana Alice Caldas Novas", "United States", "Harvard University"), - new SubmissionAuthor("Seizi Tagima", "Brazil", "Amazonas Federal University") + new SubmissionAuthor('Ana Alice Caldas Novas', 'United States', 'Harvard University'), + new SubmissionAuthor('Seizi Tagima', 'Brazil', 'Amazonas Federal University') ]; } @@ -169,8 +167,8 @@ private function createSubmitter(): int $userSubmitter->setEmail('donvito@corleone.com'); $userSubmitter->setPassword('miaumiau'); $userSubmitter->setCountry('BR'); - $userSubmitter->setGivenName("Don", $this->locale); - $userSubmitter->setFamilyName("Vito Corleone", $this->locale); + $userSubmitter->setGivenName('Don', $this->locale); + $userSubmitter->setFamilyName('Vito Corleone', $this->locale); $userSubmitter->setDateRegistered(Core::getCurrentDate()); $userSubmitterId = Repo::user()->dao->insert($userSubmitter); @@ -192,16 +190,16 @@ private function createResponsibleUsers(): array $userResponsible->setUsername('f4ustao'); $userResponsible->setEmail('faustosilva@noexists.com'); $userResponsible->setPassword('oloco'); - $userResponsible->setGivenName("Fausto", $this->locale); - $userResponsible->setFamilyName("Silva", $this->locale); + $userResponsible->setGivenName('Fausto', $this->locale); + $userResponsible->setFamilyName('Silva', $this->locale); $userResponsible->setDateRegistered(Core::getCurrentDate()); $secondUserResponsible = Repo::user()->newDataObject(); $secondUserResponsible->setUsername('silvinho122'); $secondUserResponsible->setEmail('silvio@stb.com'); $secondUserResponsible->setPassword('aviaozinho'); - $secondUserResponsible->setGivenName("Silvio", $this->locale); - $secondUserResponsible->setFamilyName("Santos", $this->locale); + $secondUserResponsible->setGivenName('Silvio', $this->locale); + $secondUserResponsible->setFamilyName('Santos', $this->locale); $secondUserResponsible->setDateRegistered(Core::getCurrentDate()); return [$userResponsible, $secondUserResponsible]; @@ -229,7 +227,7 @@ private function createResponsiblesUserGroup(): int 'es' => 'resp' ]; $responsiblesUserGroup = Repo::userGroup()->newDataObject(); - $responsiblesUserGroup->setData("abbrev", $responsiblesUserGroupLocalizedAbbrev); + $responsiblesUserGroup->setData('abbrev', $responsiblesUserGroupLocalizedAbbrev); $responsiblesUserGroup->setData('roleId', ROLE_ID_SUB_EDITOR); $responsiblesUserGroup->setData('contextId', $this->contextId); @@ -377,7 +375,7 @@ public function testSubmissionWithoutPublicationDOI(): void $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); - $expectedResult = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); + $expectedResult = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI'); $this->assertEquals($expectedResult, $scieloPreprint->getPublicationDOI()); } @@ -408,7 +406,7 @@ public function testSubmissionGetsIfUserIsScieloJournal(): void $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); - $this->assertEquals(__("common.yes"), $scieloPreprint->getSubmitterIsScieloJournal()); + $this->assertEquals(__('common.yes'), $scieloPreprint->getSubmitterIsScieloJournal()); } /** @@ -436,7 +434,7 @@ public function testSubmissionGetsResponsibles(): void $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); - $expectedResponsibles = $responsibleUsers[0]->getFullName() . "," . $responsibleUsers[1]->getFullName(); + $expectedResponsibles = $responsibleUsers[0]->getFullName() . ',' . $responsibleUsers[1]->getFullName(); $this->assertEquals($expectedResponsibles, $scieloPreprint->getResponsibles()); } @@ -475,8 +473,8 @@ public function testSubmissionGetsNotes(): void $userSectionModeratorId = Repo::user()->add($userSectionModerator); $noteDao = DAORegistry::getDAO('NoteDAO'); - $contentsForFirstNote = "Um breve resumo sobre a inteligência computacional"; - $contentsForSecondNote = "Algoritmos Genéticos: Implementação no jogo do dino"; + $contentsForFirstNote = 'Um breve resumo sobre a inteligência computacional'; + $contentsForSecondNote = 'Algoritmos Genéticos: Implementação no jogo do dino'; $note = $noteDao->newDataObject(); $note->setUserId($userSectionModeratorId); @@ -494,7 +492,7 @@ public function testSubmissionGetsNotes(): void $preprintFactory = new ScieloPreprintFactory(); $scieloPreprint = $preprintFactory->createSubmission($this->submissionId, $this->locale); - $expectedResult = "Note: Um breve resumo sobre a inteligência computacional. Note: Algoritmos Genéticos: Implementação no jogo do dino"; + $expectedResult = 'Note: Um breve resumo sobre a inteligência computacional. Note: Algoritmos Genéticos: Implementação no jogo do dino'; $this->assertEquals($expectedResult, $scieloPreprint->getNotes()); } diff --git a/tests/ScieloPreprintTest.php b/tests/ScieloPreprintTest.php index bb88f99..7414a0f 100644 --- a/tests/ScieloPreprintTest.php +++ b/tests/ScieloPreprintTest.php @@ -2,71 +2,70 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; +use PHPUnit\Framework\TestCase; class ScieloPreprintTest extends TestCase { private $submission; private $submissionId = 1233; - private $title = "Rethinking linguistic relativity"; - private $submitter = "Atila Iamarino"; - private $submitterCountry = "Brasil"; + private $title = 'Rethinking linguistic relativity'; + private $submitter = 'Atila Iamarino'; + private $submitterCountry = 'Brasil'; private $submitterIsScieloJournal = false; - private $dateSubmitted = "2013-09-06 19:07:02"; + private $dateSubmitted = '2013-09-06 19:07:02'; private $daysUntilStatusChange = 3; - private $status = "Published"; + private $status = 'Published'; private $authors; - private $section = "Biological Sciences"; - private $language = "en"; - private $finalDecision = "Accepted"; - private $finalDecisionDate = "2013-09-14 22:00:00"; + private $section = 'Biological Sciences'; + private $language = 'en'; + private $finalDecision = 'Accepted'; + private $finalDecisionDate = '2013-09-14 22:00:00'; private $expectedReviewingTime = 8; - private $responsibles = array("Albert Einstein", "Richard Feynman"); - private $sectionModerators = array("Clarice Lispector", "Oswaldo de Andrade"); - private $publicationStatus = "Preprint has been published in a journal as an article"; - private $publicationDOI = "https://doi.org/10.1590/0100-3984.2020.53.2e1"; - private $notes = array("The author forgot to cite relevant work on this preprint", "This work is wonderful! Congrats!"); + private $responsibles = ['Albert Einstein', 'Richard Feynman']; + private $sectionModerators = ['Clarice Lispector', 'Oswaldo de Andrade']; + private $publicationStatus = 'Preprint has been published in a journal as an article'; + private $publicationDOI = 'https://doi.org/10.1590/0100-3984.2020.53.2e1'; + private $notes = ['The author forgot to cite relevant work on this preprint', 'This work is wonderful! Congrats!']; private $abstractViews = 10; private $pdfViews = 21; public function setUp(): void { - $this->authors = array(new SubmissionAuthor("Atila", "Brasil", "USP")); + $this->authors = [new SubmissionAuthor('Atila', 'Brasil', 'USP')]; $stats = new SubmissionStats($this->abstractViews, $this->pdfViews); $this->submission = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, $this->publicationStatus, $this->publicationDOI, $this->notes, $stats); } public function testSubmitterIsScieloJournal(): void { - $messageSubmitterIsJournal = __("common.no"); + $messageSubmitterIsJournal = __('common.no'); $this->assertEquals($messageSubmitterIsJournal, $this->submission->getSubmitterIsScieloJournal()); } public function testHasResponsibles(): void { - $this->assertEquals(implode(",", $this->responsibles), $this->submission->getResponsibles()); + $this->assertEquals(implode(',', $this->responsibles), $this->submission->getResponsibles()); } public function testHasNoResponsibles(): void { $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, [], $this->sectionModerators, $this->publicationStatus, $this->publicationDOI, $this->notes); - $messageNoResponsibles = __("plugins.reports.scieloSubmissionsReport.warning.noResponsibles"); + $messageNoResponsibles = __('plugins.reports.scieloSubmissionsReport.warning.noResponsibles'); $this->assertEquals($messageNoResponsibles, $preprint->getResponsibles()); } public function testHasSectionModerators(): void { - $this->assertEquals(implode(",", $this->sectionModerators), $this->submission->getSectionModerators()); + $this->assertEquals(implode(',', $this->sectionModerators), $this->submission->getSectionModerators()); } public function testHasNoSectionModerator(): void { $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, [], $this->publicationStatus, $this->publicationDOI, $this->notes); - $messageNoModerators = __("plugins.reports.scieloSubmissionsReport.warning.noModerators"); + $messageNoModerators = __('plugins.reports.scieloSubmissionsReport.warning.noModerators'); $this->assertEquals($messageNoModerators, $preprint->getSectionModerators()); } @@ -77,8 +76,8 @@ public function testHasPublicationStatus(): void public function testWhenPublicationStatusIsEmpty(): void { - $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, "", $this->publicationDOI, $this->notes); - $messageNoPublicationStatus = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationStatus"); + $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, '', $this->publicationDOI, $this->notes); + $messageNoPublicationStatus = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationStatus'); $this->assertEquals($messageNoPublicationStatus, $preprint->getPublicationStatus()); } @@ -89,30 +88,30 @@ public function testHasPublicationDOI(): void public function testWhenPublicationDOIIsEmpty(): void { - $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, $this->publicationStatus, "", $this->notes); - $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); + $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, $this->publicationStatus, '', $this->notes); + $messageNoPublicationDOI = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI'); $this->assertEquals($messageNoPublicationDOI, $preprint->getPublicationDOI()); } public function testHasNotes(): void { - $this->assertEquals("Note: " . implode(". Note: ", $this->notes), $this->submission->getNotes()); + $this->assertEquals('Note: ' . implode('. Note: ', $this->notes), $this->submission->getNotes()); } public function testWhenNotesHaveLinebreaks(): void { - $noteWithLineBreak = array("The author forgot to cite relevant work on this preprint.\nHe needs to cite more relevant works."); + $noteWithLineBreak = ["The author forgot to cite relevant work on this preprint.\nHe needs to cite more relevant works."]; $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, $this->publicationStatus, $this->publicationDOI, $noteWithLineBreak); - $this->assertEquals("Note: The author forgot to cite relevant work on this preprint. He needs to cite more relevant works.", $preprint->getNotes()); + $this->assertEquals('Note: The author forgot to cite relevant work on this preprint. He needs to cite more relevant works.', $preprint->getNotes()); } public function testWhenPreprintHasNoNotes(): void { - $emptyNotes = array(); + $emptyNotes = []; $preprint = new ScieloPreprint($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->submitterIsScieloJournal, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate, $this->responsibles, $this->sectionModerators, $this->publicationStatus, $this->publicationDOI, $emptyNotes); - $messageNoNotes = __("plugins.reports.scieloSubmissionsReport.warning.noNotes"); + $messageNoNotes = __('plugins.reports.scieloSubmissionsReport.warning.noNotes'); $this->assertEquals($messageNoNotes, $preprint->getNotes()); } @@ -125,21 +124,21 @@ public function testHasStats(): void public function testGetRecord(): void { $stats = new SubmissionStats($this->abstractViews, $this->pdfViews); - $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""], $stats); - $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); - $messageSubmitterIsNotScieloJournal = __("common.no"); + $preprint = new ScieloPreprint(1, 'Title 1', 'Paola Franchesca', 'Brasil', false, '2021-04-21', 1, 'Posted', [new SubmissionAuthor('Paola Franchesca', 'Italy', 'University of Milan')], 'Fashion Design', 'en', 'Accepted', '2021-04-23', ['Jean Paul Cardin'], ['Jean Paul Cardin'], 'Sent to journal publication', '', [''], $stats); + $messageNoPublicationDOI = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI'); + $messageSubmitterIsNotScieloJournal = __('common.no'); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2", "10", "21"]; + $expectedRecord = ['1', 'Title 1', 'Paola Franchesca', 'Brasil', $messageSubmitterIsNotScieloJournal, '2021-04-21', '1', 'Posted', 'Jean Paul Cardin', 'Jean Paul Cardin', 'Paola Franchesca, Italy, University of Milan', 'Fashion Design', 'en', 'Sent to journal publication', $messageNoPublicationDOI, 'Note:', 'Accepted', '2021-04-23', '2', '2', '10', '21']; $this->assertEquals($expectedRecord, $preprint->asRecord()); } public function testRecordDoesntHaveStats(): void { - $preprint = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, "2021-04-21", 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", "2021-04-23", ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "", [""]); - $messageNoPublicationDOI = __("plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI"); - $messageSubmitterIsNotScieloJournal = __("common.no"); + $preprint = new ScieloPreprint(1, 'Title 1', 'Paola Franchesca', 'Brasil', false, '2021-04-21', 1, 'Posted', [new SubmissionAuthor('Paola Franchesca', 'Italy', 'University of Milan')], 'Fashion Design', 'en', 'Accepted', '2021-04-23', ['Jean Paul Cardin'], ['Jean Paul Cardin'], 'Sent to journal publication', '', ['']); + $messageNoPublicationDOI = __('plugins.reports.scieloSubmissionsReport.warning.noPublicationDOI'); + $messageSubmitterIsNotScieloJournal = __('common.no'); - $expectedRecord = ["1", "Title 1", "Paola Franchesca", "Brasil", $messageSubmitterIsNotScieloJournal, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", $messageNoPublicationDOI, "Note:", "Accepted", "2021-04-23", "2", "2"]; + $expectedRecord = ['1', 'Title 1', 'Paola Franchesca', 'Brasil', $messageSubmitterIsNotScieloJournal, '2021-04-21', '1', 'Posted', 'Jean Paul Cardin', 'Jean Paul Cardin', 'Paola Franchesca, Italy, University of Milan', 'Fashion Design', 'en', 'Sent to journal publication', $messageNoPublicationDOI, 'Note:', 'Accepted', '2021-04-23', '2', '2']; $this->assertEquals($expectedRecord, $preprint->asRecord()); } } diff --git a/tests/ScieloSubmissionFactoryTest.php b/tests/ScieloSubmissionFactoryTest.php index 8b68179..080e284 100644 --- a/tests/ScieloSubmissionFactoryTest.php +++ b/tests/ScieloSubmissionFactoryTest.php @@ -2,12 +2,12 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use APP\submission\Submission; -use PKP\core\PKPApplication; -use PKP\core\Core; -use DateTime; use APP\facades\Repo; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionFactory; +use APP\submission\Submission; +use DateTime; +use PKP\core\Core; +use PKP\core\PKPApplication; use PKP\log\event\PKPSubmissionEventLogEntry; class ScieloSubmissionFactoryTest extends ScieloFactoryTestCase diff --git a/tests/ScieloSubmissionTest.php b/tests/ScieloSubmissionTest.php index c063150..7a6adaa 100644 --- a/tests/ScieloSubmissionTest.php +++ b/tests/ScieloSubmissionTest.php @@ -2,43 +2,43 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; -use DateTime; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmission; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use DateTime; +use PHPUnit\Framework\TestCase; class ScieloSubmissionTest extends TestCase { private $submission; private $submissionId = 1233; - private $title = "Rethinking linguistic relativity"; - private $submitter = "Atila Iamarino"; - private $submitterCountry = "Brasil"; - private $dateSubmitted = "2013-09-06 19:07:02"; + private $title = 'Rethinking linguistic relativity'; + private $submitter = 'Atila Iamarino'; + private $submitterCountry = 'Brasil'; + private $dateSubmitted = '2013-09-06 19:07:02'; private $daysUntilStatusChange = 3; - private $status = "Published"; + private $status = 'Published'; private $authors; - private $section = "Biological Sciences"; - private $language = "en"; - private $finalDecision = "Accepted"; - private $finalDecisionDate = "2013-09-14 22:00:00"; + private $section = 'Biological Sciences'; + private $language = 'en'; + private $finalDecision = 'Accepted'; + private $finalDecisionDate = '2013-09-14 22:00:00'; private $expectedReviewingTime = 8; private function createScieloSubmission(): ScieloSubmission { - $this->authors = array(new SubmissionAuthor("Atila", "Brasil", "USP")); + $this->authors = [new SubmissionAuthor('Atila', 'Brasil', 'USP')]; return new ScieloSubmission($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate); } private function createSubmissionWithoutFinalDecision(): ScieloSubmission { - $emptyFinalDecisionDate = ""; + $emptyFinalDecisionDate = ''; return new ScieloSubmission($this->submissionId, $this->title, $this->submitter, $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $emptyFinalDecisionDate); } private function getTestSubmissions(): array { - return array($this->createScieloSubmission(), $this->createScieloSubmission()); + return [$this->createScieloSubmission(), $this->createScieloSubmission()]; } public function setUp(): void @@ -68,8 +68,8 @@ public function testHasSubmitterCountry(): void public function testWhenEmptySubmitter(): void { - $submission = new ScieloSubmission($this->submissionId, $this->title, "", $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate); - $messageNoSubmitter = __("plugins.reports.scieloSubmissionsReport.warning.noSubmitter"); + $submission = new ScieloSubmission($this->submissionId, $this->title, '', $this->submitterCountry, $this->dateSubmitted, $this->daysUntilStatusChange, $this->status, $this->authors, $this->section, $this->language, $this->finalDecision, $this->finalDecisionDate); + $messageNoSubmitter = __('plugins.reports.scieloSubmissionsReport.warning.noSubmitter'); $this->assertEquals($messageNoSubmitter, $submission->getSubmitter()); } @@ -136,7 +136,7 @@ public function testTimeBetweenSubmissionAndFinalDecisionWithFinalDecision(): vo public function testTimeBetweenSubmissionAndFinalDecisionWithoutFinalDecision(): void { $submission = $this->createSubmissionWithoutFinalDecision(); - $expectedTimeBetweenSubmissionAndFinalDecision = ""; + $expectedTimeBetweenSubmissionAndFinalDecision = ''; $this->assertEquals($expectedTimeBetweenSubmissionAndFinalDecision, $submission->getTimeBetweenSubmissionAndFinalDecision()); } } diff --git a/tests/ScieloSubmissionsOJSReportTest.php b/tests/ScieloSubmissionsOJSReportTest.php index de3c004..f2e0e6b 100644 --- a/tests/ScieloSubmissionsOJSReportTest.php +++ b/tests/ScieloSubmissionsOJSReportTest.php @@ -2,19 +2,17 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloArticle; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsOJSReport; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; -use APP\plugins\reports\scieloSubmissionsReport\tests\CSVFileUtils; +use PHPUnit\Framework\TestCase; class ScieloSubmissionsOJSReportTest extends TestCase { private $report; - private $sections = array("Biological Sciences", "Math", "Human Sciences"); + private $sections = ['Biological Sciences', 'Math', 'Human Sciences']; private $submissions; - private $filePath = "/tmp/test.csv"; + private $filePath = '/tmp/test.csv'; public function setUp(): void { @@ -38,15 +36,15 @@ private function generateCSV(): void private function createTestArticles(): array { - $submittedDatesForArticles = ["2021-04-21", "2021-03-06", "2020-11-8", "2020-11-8", "2020-11-8"]; - $finalDecisionDatesForArticles = ["2021-04-23", "2021-03-08", "2020-11-15", "", "2020-11-18"]; - $noReviews = ["", ""]; + $submittedDatesForArticles = ['2021-04-21', '2021-03-06', '2020-11-8', '2020-11-8', '2020-11-8']; + $finalDecisionDatesForArticles = ['2021-04-23', '2021-03-08', '2020-11-15', '', '2020-11-18']; + $noReviews = ['', '']; - $article1 = new ScieloArticle(1, "Title 1", "Paola Franchesca", "Brasil", $submittedDatesForArticles[0], 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", $finalDecisionDatesForArticles[0], ["Jean Paul Cardin"], "Jean Paul Cardin", ["Accept", "See comments"], "Accept"); - $article2 = new ScieloArticle(2, "Titulo 2", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[1], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDatesForArticles[1], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article3 = new ScieloArticle(3, "Titulo 3", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[2], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDatesForArticles[2], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article4 = new ScieloArticle(4, "Titulo 4", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[3], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "", $finalDecisionDatesForArticles[3], ["Richard Feynman"], "Neil Tyson", ["Accept", "See comments"], "Accept"); - $article5 = new ScieloArticle(5, "Titulo 5", "Pablo Giorgio", "Brasil", $submittedDatesForArticles[4], 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "", $finalDecisionDatesForArticles[4], ["Richard Feynman"], "Neil Tyson", $noReviews, "Accept"); + $article1 = new ScieloArticle(1, 'Title 1', 'Paola Franchesca', 'Brasil', $submittedDatesForArticles[0], 1, 'Posted', [new SubmissionAuthor('Paola Franchesca', 'Italy', 'University of Milan')], 'Fashion Design', 'en', 'Accepted', $finalDecisionDatesForArticles[0], ['Jean Paul Cardin'], 'Jean Paul Cardin', ['Accept', 'See comments'], 'Accept'); + $article2 = new ScieloArticle(2, 'Titulo 2', 'Pablo Giorgio', 'Brasil', $submittedDatesForArticles[1], 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', 'Accepted', $finalDecisionDatesForArticles[1], ['Richard Feynman'], 'Neil Tyson', ['Accept', 'See comments'], 'Accept'); + $article3 = new ScieloArticle(3, 'Titulo 3', 'Pablo Giorgio', 'Brasil', $submittedDatesForArticles[2], 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', 'Accepted', $finalDecisionDatesForArticles[2], ['Richard Feynman'], 'Neil Tyson', ['Accept', 'See comments'], 'Accept'); + $article4 = new ScieloArticle(4, 'Titulo 4', 'Pablo Giorgio', 'Brasil', $submittedDatesForArticles[3], 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', '', $finalDecisionDatesForArticles[3], ['Richard Feynman'], 'Neil Tyson', ['Accept', 'See comments'], 'Accept'); + $article5 = new ScieloArticle(5, 'Titulo 5', 'Pablo Giorgio', 'Brasil', $submittedDatesForArticles[4], 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', '', $finalDecisionDatesForArticles[4], ['Richard Feynman'], 'Neil Tyson', $noReviews, 'Accept'); return [$article1, $article2, $article3, $article4, $article5]; } @@ -60,24 +58,24 @@ public function testGeneratedCSVHeadersFromOJSSubmissions() $firstLine = fgetcsv($csvFile); $expectedLine = [ - __("plugins.reports.scieloSubmissionsReport.header.submissionId"), - __("submission.submissionTitle"), - __("submission.submitter"), - __("plugins.reports.scieloSubmissionsReport.header.submitterCountry"), - __("common.dateSubmitted"), - __("plugins.reports.scieloSubmissionsReport.header.daysChangeStatus"), - __("plugins.reports.scieloSubmissionsReport.header.submissionStatus"), - __("plugins.reports.scieloSubmissionsReport.header.journalEditors"), - __("plugins.reports.scieloSubmissionsReport.header.sectionEditor"), - __("submission.authors"), - __("plugins.reports.scieloSubmissionsReport.header.section"), - __("common.language"), - __("plugins.reports.scieloSubmissionsReport.header.reviews"), - __("plugins.reports.scieloSubmissionsReport.header.LastDecision"), - __("plugins.reports.scieloSubmissionsReport.header.FinalDecision"), - __("plugins.reports.scieloSubmissionsReport.header.finalDecisionDate"), - __("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), - __("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval") + __('plugins.reports.scieloSubmissionsReport.header.submissionId'), + __('submission.submissionTitle'), + __('submission.submitter'), + __('plugins.reports.scieloSubmissionsReport.header.submitterCountry'), + __('common.dateSubmitted'), + __('plugins.reports.scieloSubmissionsReport.header.daysChangeStatus'), + __('plugins.reports.scieloSubmissionsReport.header.submissionStatus'), + __('plugins.reports.scieloSubmissionsReport.header.journalEditors'), + __('plugins.reports.scieloSubmissionsReport.header.sectionEditor'), + __('submission.authors'), + __('plugins.reports.scieloSubmissionsReport.header.section'), + __('common.language'), + __('plugins.reports.scieloSubmissionsReport.header.reviews'), + __('plugins.reports.scieloSubmissionsReport.header.LastDecision'), + __('plugins.reports.scieloSubmissionsReport.header.FinalDecision'), + __('plugins.reports.scieloSubmissionsReport.header.finalDecisionDate'), + __('plugins.reports.scieloSubmissionsReport.header.ReviewingTime'), + __('plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval') ]; fclose($csvFile); @@ -144,7 +142,7 @@ public function testGeneratedCSVHasArticlesData(): void $firstLine = fgetcsv($csvFile); fclose($csvFile); - $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Accept,See comments", "Accept", "Accepted", "2021-04-23", "2", "2"]; + $expectedLine = ['1', 'Title 1', 'Paola Franchesca', 'Brasil', '2021-04-21', '1', 'Posted', 'Jean Paul Cardin', 'Jean Paul Cardin', 'Paola Franchesca, Italy, University of Milan', 'Fashion Design', 'en', 'Accept,See comments', 'Accept', 'Accepted', '2021-04-23', '2', '2']; $this->assertEquals($expectedLine, $firstLine); } diff --git a/tests/ScieloSubmissionsOPSReportTest.php b/tests/ScieloSubmissionsOPSReportTest.php index 3ebdc7b..c9a31e5 100644 --- a/tests/ScieloSubmissionsOPSReportTest.php +++ b/tests/ScieloSubmissionsOPSReportTest.php @@ -2,20 +2,18 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; -use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloPreprint; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsOPSReport; -use APP\plugins\reports\scieloSubmissionsReport\tests\CSVFileUtils; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionStats; +use PHPUnit\Framework\TestCase; class ScieloSubmissionsOPSReportTest extends TestCase { private $report; - private $sections = array("Biological Sciences", "Math", "Human Sciences"); + private $sections = ['Biological Sciences', 'Math', 'Human Sciences']; private $submissions; - private $filePath = "/tmp/test.csv"; + private $filePath = '/tmp/test.csv'; public function setUp(): void { @@ -40,17 +38,17 @@ private function generateCSV(): void private function createTestPreprints(): array { - $submittedDateForPreprint1 = "2021-04-21"; - $finalDecisionDateForPreprint1 = "2021-04-23"; - $submittedDateForPreprint2 = "2021-03-06"; - $finalDecisionDateForPreprint2 = "2021-03-08"; - $submittedDateForPreprint3 = "2020-11-8"; - $finalDecisionDateForPreprint3 = "2020-11-15"; + $submittedDateForPreprint1 = '2021-04-21'; + $finalDecisionDateForPreprint1 = '2021-04-23'; + $submittedDateForPreprint2 = '2021-03-06'; + $finalDecisionDateForPreprint2 = '2021-03-08'; + $submittedDateForPreprint3 = '2020-11-8'; + $finalDecisionDateForPreprint3 = '2020-11-15'; $stats = new SubmissionStats(10, 10); - $preprint1 = new ScieloPreprint(1, "Title 1", "Paola Franchesca", "Brasil", false, $submittedDateForPreprint1, 1, "Posted", array(new SubmissionAuthor("Paola Franchesca", "Italy", "University of Milan")), "Fashion Design", "en", "Accepted", $finalDecisionDateForPreprint1, ["Jean Paul Cardin"], ["Jean Paul Cardin"], "Sent to journal publication", "No DOI informed", [""], $stats); - $preprint2 = new ScieloPreprint(2, "Titulo 2", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint2, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDateForPreprint2, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); - $preprint3 = new ScieloPreprint(3, "Titulo 3", "Pablo Giorgio", "Brasil", false, $submittedDateForPreprint3, 6, "Posted", array(new SubmissionAuthor("Atila", "Brazil", "USP")), "Biological", "en", "Accepted", $finalDecisionDateForPreprint3, ["Richard Feynman"], ["Neil Tyson"], "Sent to journal publication", "No DOI informed", [""], $stats); + $preprint1 = new ScieloPreprint(1, 'Title 1', 'Paola Franchesca', 'Brasil', false, $submittedDateForPreprint1, 1, 'Posted', [new SubmissionAuthor('Paola Franchesca', 'Italy', 'University of Milan')], 'Fashion Design', 'en', 'Accepted', $finalDecisionDateForPreprint1, ['Jean Paul Cardin'], ['Jean Paul Cardin'], 'Sent to journal publication', 'No DOI informed', [''], $stats); + $preprint2 = new ScieloPreprint(2, 'Titulo 2', 'Pablo Giorgio', 'Brasil', false, $submittedDateForPreprint2, 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', 'Accepted', $finalDecisionDateForPreprint2, ['Richard Feynman'], ['Neil Tyson'], 'Sent to journal publication', 'No DOI informed', [''], $stats); + $preprint3 = new ScieloPreprint(3, 'Titulo 3', 'Pablo Giorgio', 'Brasil', false, $submittedDateForPreprint3, 6, 'Posted', [new SubmissionAuthor('Atila', 'Brazil', 'USP')], 'Biological', 'en', 'Accepted', $finalDecisionDateForPreprint3, ['Richard Feynman'], ['Neil Tyson'], 'Sent to journal publication', 'No DOI informed', [''], $stats); return [$preprint1, $preprint2, $preprint3]; } @@ -64,28 +62,28 @@ public function testGeneratedCSVHeadersFromOPSSubmissions(): void $firstLine = fgetcsv($csvFile); $expectedLine = [ - __("plugins.reports.scieloSubmissionsReport.header.submissionId"), - __("submission.submissionTitle"), - __("submission.submitter"), - __("plugins.reports.scieloSubmissionsReport.header.submitterCountry"), - __("plugins.reports.scieloSubmissionsReport.header.submitterIsScieloJournal"), - __("common.dateSubmitted"), - __("plugins.reports.scieloSubmissionsReport.header.daysChangeStatus"), - __("plugins.reports.scieloSubmissionsReport.header.submissionStatus"), - __("plugins.reports.scieloSubmissionsReport.header.areaModerator"), - __("plugins.reports.scieloSubmissionsReport.header.responsibles"), - __("submission.authors"), - __("plugins.reports.scieloSubmissionsReport.header.section"), - __("common.language"), - __("plugins.reports.scieloSubmissionsReport.header.publicationStatus"), - __("plugins.reports.scieloSubmissionsReport.header.publicationDOI"), - __("submission.notes"), - __("plugins.reports.scieloSubmissionsReport.header.FinalDecision"), - __("plugins.reports.scieloSubmissionsReport.header.finalDecisionDate"), - __("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), - __("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval"), - __("submission.abstractViews"), - __("plugins.reports.scieloSubmissionsReport.header.pdfViews"), + __('plugins.reports.scieloSubmissionsReport.header.submissionId'), + __('submission.submissionTitle'), + __('submission.submitter'), + __('plugins.reports.scieloSubmissionsReport.header.submitterCountry'), + __('plugins.reports.scieloSubmissionsReport.header.submitterIsScieloJournal'), + __('common.dateSubmitted'), + __('plugins.reports.scieloSubmissionsReport.header.daysChangeStatus'), + __('plugins.reports.scieloSubmissionsReport.header.submissionStatus'), + __('plugins.reports.scieloSubmissionsReport.header.areaModerator'), + __('plugins.reports.scieloSubmissionsReport.header.responsibles'), + __('submission.authors'), + __('plugins.reports.scieloSubmissionsReport.header.section'), + __('common.language'), + __('plugins.reports.scieloSubmissionsReport.header.publicationStatus'), + __('plugins.reports.scieloSubmissionsReport.header.publicationDOI'), + __('submission.notes'), + __('plugins.reports.scieloSubmissionsReport.header.FinalDecision'), + __('plugins.reports.scieloSubmissionsReport.header.finalDecisionDate'), + __('plugins.reports.scieloSubmissionsReport.header.ReviewingTime'), + __('plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval'), + __('submission.abstractViews'), + __('plugins.reports.scieloSubmissionsReport.header.pdfViews'), ]; fclose($csvFile); @@ -100,8 +98,8 @@ public function testHeadersColumnsWhenReportNotIncludesViews(): void $headers = $report->getHeaders(); $penultimateColumn = $headers[count($headers) - 2]; $lastColumn = $headers[count($headers) - 1]; - $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.header.ReviewingTime"), $penultimateColumn); - $this->assertEquals(__("plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval"), $lastColumn); + $this->assertEquals(__('plugins.reports.scieloSubmissionsReport.header.ReviewingTime'), $penultimateColumn); + $this->assertEquals(__('plugins.reports.scieloSubmissionsReport.header.SubmissionAndFinalDecisionDateInterval'), $lastColumn); } public function testAverageReviewingTime(): void @@ -154,8 +152,8 @@ public function testGeneratedCSVHasPreprintData(): void $firstLine = fgetcsv($csvFile); fclose($csvFile); - $noMsg = __("common.no"); - $expectedLine = ["1", "Title 1", "Paola Franchesca", "Brasil", $noMsg, "2021-04-21", "1", "Posted", "Jean Paul Cardin", "Jean Paul Cardin", "Paola Franchesca, Italy, University of Milan", "Fashion Design", "en", "Sent to journal publication", "No DOI informed", "Note:", "Accepted", "2021-04-23", "2", "2", "10", "10"]; + $noMsg = __('common.no'); + $expectedLine = ['1', 'Title 1', 'Paola Franchesca', 'Brasil', $noMsg, '2021-04-21', '1', 'Posted', 'Jean Paul Cardin', 'Jean Paul Cardin', 'Paola Franchesca, Italy, University of Milan', 'Fashion Design', 'en', 'Sent to journal publication', 'No DOI informed', 'Note:', 'Accepted', '2021-04-23', '2', '2', '10', '10']; $this->assertEquals($expectedLine, $firstLine); } } diff --git a/tests/ScieloSubmissionsReportFactoryTest.php b/tests/ScieloSubmissionsReportFactoryTest.php index a08877e..79d7d35 100644 --- a/tests/ScieloSubmissionsReportFactoryTest.php +++ b/tests/ScieloSubmissionsReportFactoryTest.php @@ -2,14 +2,12 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PKP\tests\DatabaseTestCase; -use APP\section\Section; -use APP\submission\Submission; -use APP\facades\Repo; use APP\decision\Decision; -use APP\publication\Publication; -use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReportFactory; +use APP\facades\Repo; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; +use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReportFactory; +use APP\submission\Submission; +use PKP\tests\DatabaseTestCase; class ScieloSubmissionsReportFactoryTest extends DatabaseTestCase { @@ -17,8 +15,8 @@ class ScieloSubmissionsReportFactoryTest extends DatabaseTestCase private $locale = 'en'; private $contextId; private $reportFactory; - private $firstSectionName = "Biological Sciences"; - private $secondSectionName = "Math"; + private $firstSectionName = 'Biological Sciences'; + private $secondSectionName = 'Math'; private $sectionsIds; private $submissionsIds; private $publicationsIds; @@ -133,7 +131,7 @@ private function createPublication($submissionId, $sectionId, $datePublished = n $publication = Repo::publication()->newDataObject(); $publication->setData('submissionId', $submissionId); $publication->setData('sectionId', $sectionId); - $publication->setData('title', "Generic title", $this->locale); + $publication->setData('title', 'Generic title', $this->locale); if (!is_null($datePublished)) { $publication->setData('datePublished', $datePublished); } diff --git a/tests/ScieloSubmissionsReportTest.php b/tests/ScieloSubmissionsReportTest.php index 011f892..a0b405c 100644 --- a/tests/ScieloSubmissionsReportTest.php +++ b/tests/ScieloSubmissionsReportTest.php @@ -2,15 +2,14 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReport; -use APP\plugins\reports\scieloSubmissionsReport\tests\CSVFileUtils; +use PHPUnit\Framework\TestCase; class ScieloSubmissionsReportTest extends TestCase { private $report; - private $sections = array("Biological Sciences", "Math", "Human Sciences"); - private $filePath = "/tmp/test.csv"; + private $sections = ['Biological Sciences', 'Math', 'Human Sciences']; + private $filePath = '/tmp/test.csv'; public function setUp(): void { @@ -52,7 +51,7 @@ public function testGeneratedCSVHasSections(): void $this->createCSVReport(); $csvRows = array_map('str_getcsv', file($this->filePath)); - $expectedSections = implode(",", $this->sections); + $expectedSections = implode(',', $this->sections); $lastRow = $csvRows[sizeof($csvRows) - 1]; $lastCellFromLastRow = $lastRow[sizeof($lastRow) - 1]; @@ -65,7 +64,7 @@ public function testGeneratedCSVHasSecondHeaders(): void $csvRows = array_map('str_getcsv', file($this->filePath)); $penultimateRow = $csvRows[sizeof($csvRows) - 2]; - $expectedPenultimateRow = [__("plugins.reports.scieloSubmissionsReport.header.AverageReviewingTime"), __("section.sections")]; + $expectedPenultimateRow = [__('plugins.reports.scieloSubmissionsReport.header.AverageReviewingTime'), __('section.sections')]; $this->assertEquals($expectedPenultimateRow, $penultimateRow); } diff --git a/tests/SubmissionAuthorTest.php b/tests/SubmissionAuthorTest.php index 788d1b3..252f160 100644 --- a/tests/SubmissionAuthorTest.php +++ b/tests/SubmissionAuthorTest.php @@ -2,15 +2,15 @@ namespace APP\plugins\reports\scieloSubmissionsReport\tests; -use PHPUnit\Framework\TestCase; use APP\plugins\reports\scieloSubmissionsReport\classes\SubmissionAuthor; +use PHPUnit\Framework\TestCase; final class SubmissionAuthorTest extends TestCase { private $author; - private $fullName = "Atila Iamarino"; - private $country = "Brasil"; - private $affiliation = "Universidade de São Paulo"; + private $fullName = 'Atila Iamarino'; + private $country = 'Brasil'; + private $affiliation = 'Universidade de São Paulo'; public function setUp(): void { @@ -34,6 +34,6 @@ public function testHasAffiliation(): void public function testAsRecord(): void { - $this->assertEquals("Atila Iamarino, Brasil, Universidade de São Paulo", $this->author->asRecord()); + $this->assertEquals('Atila Iamarino, Brasil, Universidade de São Paulo', $this->author->asRecord()); } } From 9fad8caea92103be7f8c5ae28df5ba2328106987 Mon Sep 17 00:00:00 2001 From: Thiago Matos Date: Thu, 9 Nov 2023 16:27:50 -0400 Subject: [PATCH 16/17] Fixes imports and namespaces of plugin classes Issue: documentacao-e-tarefas/scielo#607 Signed-off-by: Thiago Matos --- ...inc.php => ScieloSubmissionsReportForm.php | 16 ++++++++--- ...c.php => ScieloSubmissionsReportPlugin.php | 15 ++++++---- ...> ScieloSubmissionsReportSettingsForm.php} | 4 +++ index.php | 5 ++-- locale/en/locale.po | 5 +++- locale/es/locale.po | 6 ++-- locale/pt_BR/locale.po | 5 +++- templates/scieloSubmissionsReportPlugin.tpl | 28 +++++++++---------- 8 files changed, 53 insertions(+), 31 deletions(-) rename ScieloSubmissionsReportForm.inc.php => ScieloSubmissionsReportForm.php (93%) rename ScieloSubmissionsReportPlugin.inc.php => ScieloSubmissionsReportPlugin.php (88%) rename classes/form/{ScieloSubmissionsReportSettingsForm.inc.php => ScieloSubmissionsReportSettingsForm.php} (91%) diff --git a/ScieloSubmissionsReportForm.inc.php b/ScieloSubmissionsReportForm.php similarity index 93% rename from ScieloSubmissionsReportForm.inc.php rename to ScieloSubmissionsReportForm.php index 15c1e09..c2a1daf 100644 --- a/ScieloSubmissionsReportForm.inc.php +++ b/ScieloSubmissionsReportForm.php @@ -12,9 +12,18 @@ * @brief SciELO Submissions report Form */ +namespace APP\plugins\reports\scieloSubmissionsReport; + +use APP\core\Application; +use APP\facades\Repo; use APP\plugins\reports\scieloSubmissionsReport\classes\ClosedDateInterval; use APP\plugins\reports\scieloSubmissionsReport\classes\ScieloSubmissionsReportFactory; +use APP\template\TemplateManager; +use PKP\core\PKPString; +use PKP\facades\Locale; use PKP\form\Form; +use PKP\form\validation\FormValidatorCSRF; +use PKP\form\validation\FormValidatorPost; class ScieloSubmissionsReportForm extends Form { @@ -112,7 +121,7 @@ public function generateReport($request) { $this->emitHttpHeaders($request); - $locale = AppLocale::getLocale(); + $locale = Locale::getLocale(); $scieloSubmissionsReportFactory = new ScieloSubmissionsReportFactory($this->application, $this->contextId, $this->sections, $this->submissionDateInterval, $this->finalDecisionDateInterval, $locale, $this->includeViews); $scieloSubmissionsReport = $scieloSubmissionsReportFactory->createReport(); @@ -155,7 +164,7 @@ public function display($request = null, $template = null, $args = null) private function getAvailableSections($contextId) { - $sections = Services::get('section')->getSectionList($contextId); + $sections = Repo::section()->getSectionList($contextId); $listOfSections = []; foreach ($sections as $section) { @@ -166,11 +175,10 @@ private function getAvailableSections($contextId) public function getSectionsOptions($contextId, $sections) { - $sectionDao = DAORegistry::getDAO('SectionDAO'); $sectionsOptions = []; foreach ($sections as $sectionId => $sectionName) { - $sectionObject = $sectionDao->getById($sectionId, $contextId); + $sectionObject = Repo::section()->get($sectionId, $contextId); if ($sectionObject->getMetaReviewed() == 1) { $sectionsOptions[$sectionObject->getLocalizedTitle()] = $sectionObject->getLocalizedTitle(); } diff --git a/ScieloSubmissionsReportPlugin.inc.php b/ScieloSubmissionsReportPlugin.php similarity index 88% rename from ScieloSubmissionsReportPlugin.inc.php rename to ScieloSubmissionsReportPlugin.php index 258c953..4fd7330 100644 --- a/ScieloSubmissionsReportPlugin.inc.php +++ b/ScieloSubmissionsReportPlugin.php @@ -14,9 +14,14 @@ * @brief SciELO Submissions report plugin */ +namespace APP\plugins\reports\scieloSubmissionsReport; + use APP\plugins\reports\scieloSubmissionsReport\classes\form\ScieloSubmissionsReportSettingsForm; -use APP\plugins\reports\scieloSubmissionsReport\ScieloSubmissionsReportForm; +use PKP\config\Config; +use PKP\core\JSONMessage; +use PKP\linkAction\LinkAction; use PKP\linkAction\request\AjaxModal; +use PKP\plugins\Hook; use PKP\plugins\ReportPlugin; class ScieloSubmissionsReportPlugin extends ReportPlugin @@ -33,7 +38,7 @@ public function register($category, $path, $mainContextId = null) if ($success && Config::getVar('general', 'installed')) { $this->addLocaleData(); - HookRegistry::register('AcronPlugin::parseCronTab', [$this, 'addPluginTasksToCrontab']); + Hook::add('AcronPlugin::parseCronTab', [$this, 'addPluginTasksToCrontab']); } return $success; } @@ -62,12 +67,10 @@ public function addPluginTasksToCrontab($hookName, $args) public function display($args, $request) { - AppLocale::requireComponents(LOCALE_COMPONENT_APP_EDITOR, LOCALE_COMPONENT_PKP_SUBMISSION, LOCALE_COMPONENT_PKP_READER); $form = new ScieloSubmissionsReportForm($this); $form->initData(); - $requestHandler = new PKPRequest(); - if ($requestHandler->isPost($request)) { - $reportParams = $requestHandler->getUserVars($request); + if ($request->isPost($request)) { + $reportParams = $request->getUserVars(); $validationResult = $form->validateReportData($reportParams); if ($validationResult) { $form->generateReport($request); diff --git a/classes/form/ScieloSubmissionsReportSettingsForm.inc.php b/classes/form/ScieloSubmissionsReportSettingsForm.php similarity index 91% rename from classes/form/ScieloSubmissionsReportSettingsForm.inc.php rename to classes/form/ScieloSubmissionsReportSettingsForm.php index aa03720..8cc2553 100644 --- a/classes/form/ScieloSubmissionsReportSettingsForm.inc.php +++ b/classes/form/ScieloSubmissionsReportSettingsForm.php @@ -1,5 +1,9 @@ {translate key="plugins.reports.scieloSubmissionsReport.period"}
-
+

{translate key="plugins.reports.scieloSubmissionsReport.filterMessage"}

+
- +
- +