Skip to content

Commit 0db3df3

Browse files
Merge branch 'relatedPublicationDoi340-768' into 'main'
Corrige ausência de DOI no campo "Related Publication" - 3.4.0 See merge request softwares-pkp/plugins_ojs/dataverse!191
2 parents 95648dd + d60cb3a commit 0db3df3

4 files changed

Lines changed: 37 additions & 11 deletions

File tree

classes/APACitation.php

Lines changed: 5 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -30,11 +30,16 @@ public function getFormattedCitationBySubmission(Submission $submission, ?Public
3030
$context = Application::getContextDAO()->getById($submission->getData('contextId'));
3131
$authors = $publication->getData('authors')->toArray();
3232
$submittedDate = new DateTime($submission->getData('dateSubmitted'));
33+
$doiObject = $publication->getData('doiObject');
3334

3435
$submissionCitation = $this->createAuthorsCitationAPA($authors) . ' ';
3536
$submissionCitation .= '(' . date_format($submittedDate, 'Y') . '). ';
3637
$submissionCitation .= '<em>' . $publication->getLocalizedTitle($this->locale) . '</em>. ';
3738
$submissionCitation .= $context->getLocalizedName();
39+
if ($doiObject) {
40+
$doiUrl = $doiObject->getResolvingUrl();
41+
$submissionCitation .= ". <a href=\"$doiUrl\">$doiUrl</a>";
42+
}
3843

3944
return $submissionCitation;
4045
}

classes/services/DatasetService.php

Lines changed: 7 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -83,8 +83,13 @@ public function deposit(Submission $submission, Dataset $dataset): void
8383

8484
public function update(array $data): void
8585
{
86-
$dataverseClient = new DataverseClient();
87-
$dataset = $dataverseClient->getDatasetActions()->get($data['persistentId']);
86+
try {
87+
$dataverseClient = new DataverseClient();
88+
$dataset = $dataverseClient->getDatasetActions()->get($data['persistentId']);
89+
} catch (DataverseException $e) {
90+
error_log('Dataverse error while getting dataset on dataset update: ' . $e->getMessage());
91+
return;
92+
}
8893

8994
if ($dataset->isPublished()) {
9095
return;

tests/APACitationTest.php

Lines changed: 23 additions & 7 deletions
Original file line numberDiff line numberDiff line change
@@ -1,6 +1,7 @@
11
<?php
22

33
use PKP\tests\PKPTestCase;
4+
use PKP\doi\Doi;
45
use APP\submission\Submission;
56
use APP\publication\Publication;
67
use APP\author\Author;
@@ -78,6 +79,10 @@ private function createTestPublication(): void
7879
$this->publication->setData('authors', $this->lazyCollectionFromAuthors($this->authors));
7980
$this->publication->setData('locale', 'pt_BR');
8081
$this->publication->setData('relationStatus', '1');
82+
83+
$doiObject = new Doi();
84+
$doiObject->setData('doi', '10.1234/LepidusPreprints.1245');
85+
$this->publication->setData('doiObject', $doiObject);
8186
}
8287

8388
private function lazyCollectionFromAuthors(array $authors): LazyCollection
@@ -97,7 +102,7 @@ private function addCurrentPublicationToSubmission(): void
97102
$this->submission->setData('publications', array($this->publication));
98103
}
99104

100-
public function testHasDoiAsMarkup(): void
105+
public function testDatasetCitationGetsDoiMarkup(): void
101106
{
102107
$expectedDOI = 'https://doi.org/10.12345/FK2/NTF9X8';
103108
$dataCitation = "Iris Castanheiras, 2021, \"The Rise of The Machine Empire\", $expectedDOI, Demo Dataverse, V1, UNF:6:dEgtc5Z1MSF3u7c+kF4kXg== [fileUNF]";
@@ -115,7 +120,8 @@ public function testHasDoiAsMarkup(): void
115120

116121
public function testPreprintCitationIsApa(): void
117122
{
118-
$expectedSubmissionCitation = 'Castanheiras, I. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
123+
$expectedSubmissionCitation = 'Castanheiras, I. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
124+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
119125

120126
$apaCitation = new APACitation();
121127
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
@@ -132,7 +138,9 @@ public function testFamilyNameWithAccentOnTheFirstLetter(): void
132138
$apaCitation = new APACitation();
133139
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
134140

135-
$expectedSubmissionCitation = 'Álamo, Á. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
141+
$expectedSubmissionCitation = 'Álamo, Á. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
142+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
143+
136144
$this->assertEquals($expectedSubmissionCitation, $preprintCitation);
137145
}
138146

@@ -145,7 +153,9 @@ public function testGivenNameWithAccentAnyLetterExceptFirstLetterAndFamilyNameWi
145153
$apaCitation = new APACitation();
146154
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
147155

148-
$expectedSubmissionCitation = 'Fernandes, M. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
156+
$expectedSubmissionCitation = 'Fernandes, M. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
157+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
158+
149159
$this->assertEquals($expectedSubmissionCitation, $preprintCitation);
150160
}
151161

@@ -158,7 +168,9 @@ public function testFamilyNameWithAccentOnTheFirstLetterAndGivenNameWithoutAccen
158168
$apaCitation = new APACitation();
159169
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
160170

161-
$expectedSubmissionCitation = 'Átila, L. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
171+
$expectedSubmissionCitation = 'Átila, L. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
172+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
173+
162174
$this->assertEquals($expectedSubmissionCitation, $preprintCitation);
163175
}
164176

@@ -171,7 +183,9 @@ public function testGivenNameAndFamilyNameWithAccentExceptFirstLetter(): void
171183
$apaCitation = new APACitation();
172184
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
173185

174-
$expectedSubmissionCitation = 'Sérgio, C. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
186+
$expectedSubmissionCitation = 'Sérgio, C. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
187+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
188+
175189
$this->assertEquals($expectedSubmissionCitation, $preprintCitation);
176190
}
177191

@@ -183,7 +197,9 @@ public function testGivenNameWithAccentOnTheFirstLetter(): void
183197
$apaCitation = new APACitation();
184198
$preprintCitation = $apaCitation->getFormattedCitationBySubmission($this->submission);
185199

186-
$expectedSubmissionCitation = 'Castanheiras, Â. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus';
200+
$expectedSubmissionCitation = 'Castanheiras, Â. (2021). <em>The Rise of The Machine Empire</em>. Preprints da Lepidus.';
201+
$expectedSubmissionCitation .= ' <a href="https://doi.org/10.1234/LepidusPreprints.1245">https://doi.org/10.1234/LepidusPreprints.1245</a>';
202+
187203
$this->assertEquals($expectedSubmissionCitation, $preprintCitation);
188204
}
189205
}

version.xml

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -13,8 +13,8 @@
1313
<version>
1414
<application>dataverse</application>
1515
<type>plugins.generic</type>
16-
<release>3.2.8.0</release>
17-
<date>2025-04-02</date>
16+
<release>3.2.9.0</release>
17+
<date>2025-04-14</date>
1818
<lazy-load>1</lazy-load>
1919
<class>DataversePlugin</class>
2020
</version>

0 commit comments

Comments
 (0)