Skip to content

Commit 913707e

Browse files
Merge branch 'defaultInstructionsLegacy330-782' into 'stable-3_3_0'
Exibe instruções adicionais padrão para instalações legadas See merge request softwares-pkp/plugins_ojs/dataverse!203
2 parents 8e4a01a + ab58f82 commit 913707e

5 files changed

Lines changed: 110 additions & 11 deletions

File tree

classes/dataverseConfiguration/DataverseConfiguration.inc.php

Lines changed: 37 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -3,6 +3,8 @@
33
define('DATASET_PUBLISH_SUBMISSION_ACCEPTED', 1);
44
define('DATASET_PUBLISH_SUBMISSION_PUBLISHED', 2);
55

6+
import('plugins.generic.dataverse.settings.DefaultAdditionalInstructions');
7+
68
class DataverseConfiguration extends DataObject
79
{
810
public function setDataverseUrl(string $url): void
@@ -35,6 +37,41 @@ public function getTermsOfUse(): array
3537
return $this->getData('termsOfUse');
3638
}
3739

40+
public function getAdditionalInstructions(): array
41+
{
42+
if ($this->additionalInstructionsAreEmpty()) {
43+
$defaultAdditionalInstructions = new DefaultAdditionalInstructions();
44+
return $defaultAdditionalInstructions->getDefaultInstructions();
45+
}
46+
47+
return $this->getData('additionalInstructions');
48+
}
49+
50+
public function getLocalizedAdditionalInstructions(): string
51+
{
52+
if ($this->additionalInstructionsAreEmpty()) {
53+
$defaultAdditionalInstructions = new DefaultAdditionalInstructions();
54+
$this->setData('additionalInstructions', $defaultAdditionalInstructions->getDefaultInstructions());
55+
}
56+
57+
return $this->getLocalizedData('additionalInstructions');
58+
}
59+
60+
public function additionalInstructionsAreEmpty(): bool
61+
{
62+
if (is_null($this->getData('additionalInstructions'))) {
63+
return true;
64+
}
65+
66+
foreach ($this->getData('additionalInstructions') as $locale => $value) {
67+
if (!empty($value)) {
68+
return false;
69+
}
70+
}
71+
72+
return true;
73+
}
74+
3875
public function setDatasetPublish(int $datasetPublish): void
3976
{
4077
$this->setData('datasetPublish', $datasetPublish);

classes/dispatchers/DatasetTabDispatcher.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -36,7 +36,7 @@ public function addResearchDataTab(string $hookName, array $params): bool
3636

3737
$configurationDAO = DAORegistry::getDAO('DataverseConfigurationDAO');
3838
$configuration = $configurationDAO->get($submission->getData('contextId'));
39-
$additionalInstructions = $configuration->getLocalizedData('additionalInstructions');
39+
$additionalInstructions = $configuration->getLocalizedAdditionalInstructions();
4040
$templateMgr->assign('dataverseAdditionalInstructions', $additionalInstructions);
4141

4242
$output .= sprintf(

classes/dispatchers/DraftDatasetFilesDispatcher.inc.php

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -39,7 +39,7 @@ public function addDraftDatasetFileContainer(string $hookName, array $params): ?
3939
$contextId = $request->getContext()->getId();
4040
$configurationDAO = DAORegistry::getDAO('DataverseConfigurationDAO');
4141
$configuration = $configurationDAO->get($contextId);
42-
$additionalInstructions = $configuration->getLocalizedData('additionalInstructions');
42+
$additionalInstructions = $configuration->getLocalizedAdditionalInstructions();
4343
$templateMgr->assign('dataverseAdditionalInstructions', $additionalInstructions);
4444

4545
$templateOutput = $templateMgr->fetch($form->_template);

settings/DataverseSettingsForm.inc.php

Lines changed: 1 addition & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -3,7 +3,6 @@
33
import('lib.pkp.classes.form.Form');
44
import('plugins.generic.dataverse.classes.dataverseConfiguration.DataverseConfigurationDAO');
55
import('plugins.generic.dataverse.dataverseAPI.actions.DataverseCollectionActions');
6-
import('plugins.generic.dataverse.settings.DefaultAdditionalInstructions');
76

87
class DataverseSettingsForm extends Form
98
{
@@ -65,14 +64,7 @@ public function initData(): void
6564
$this->setData($name, $value);
6665
}
6766

68-
$context = Application::get()->getRequest()->getContext();
69-
$primaryLocale = $context->getPrimaryLocale();
70-
if (!isset($configurationData['additionalInstructions'])
71-
|| empty($configurationData['additionalInstructions'][$primaryLocale])
72-
) {
73-
$defaultAdditionalInstructions = new DefaultAdditionalInstructions();
74-
$this->setData('additionalInstructions', $defaultAdditionalInstructions->getDefaultInstructions());
75-
}
67+
$this->setData('additionalInstructions', $configuration->getAdditionalInstructions());
7668
}
7769

7870
public function readInputData(): void
Lines changed: 70 additions & 0 deletions
Original file line numberDiff line numberDiff line change
@@ -0,0 +1,70 @@
1+
<?php
2+
3+
import('lib.pkp.tests.PKPTestCase');
4+
import('plugins.generic.dataverse.classes.dataverseConfiguration.DataverseConfiguration');
5+
import('plugins.generic.dataverse.settings.DefaultAdditionalInstructions');
6+
7+
class DataverseConfigurationTest extends PKPTestCase
8+
{
9+
private $dataverseConfiguration;
10+
private $dataverseUrl = 'https://demo.dataverse.org/dataverse/exampleRepository';
11+
private $apiToken = 'randomToken';
12+
private $termsOfUse = [
13+
'en_US' => 'https://test.dataverse.org/terms-of-use/en_US',
14+
'pt_BR' => 'https://test.dataverse.org/terms-of-use/pt_BR',
15+
'es_ES' => 'https://test.dataverse.org/terms-of-use/es_ES'
16+
];
17+
private $additionalInstructions = [
18+
'en_US' => '<p>Additional instructions about research data submission<\/p>',
19+
'pt_BR' => '<p>Instruções adicionais sobre submissão de dados de pesquisa<\/p>',
20+
'es_ES' => '<p>Instrucciones adicionales para la presentación de datos de pesquisa<\/p>'
21+
];
22+
23+
protected function setUp(): void
24+
{
25+
parent::setUp();
26+
$this->dataverseConfiguration = $this->createTestDataverseConfiguration();
27+
}
28+
29+
private function createTestDataverseConfiguration(): DataverseConfiguration
30+
{
31+
$configuration = new DataverseConfiguration();
32+
$configuration->setData('dataverseUrl', $this->dataverseUrl);
33+
$configuration->setData('apiToken', $this->apiToken);
34+
$configuration->setData('termsOfUse', $this->termsOfUse);
35+
$configuration->setData('additionalInstructions', $this->additionalInstructions);
36+
37+
return $configuration;
38+
}
39+
40+
public function testGetDataverseServerUrl(): void
41+
{
42+
$expectedServerUrl = 'https://demo.dataverse.org';
43+
$this->assertEquals($expectedServerUrl, $this->dataverseConfiguration->getDataverseServerUrl());
44+
}
45+
46+
public function testGetDataverseCollection(): void
47+
{
48+
$expectedCollection = 'exampleRepository';
49+
$this->assertEquals($expectedCollection, $this->dataverseConfiguration->getDataverseCollection());
50+
}
51+
52+
public function testGetDefaultAdditionalInstructions(): void
53+
{
54+
$this->assertFalse($this->dataverseConfiguration->additionalInstructionsAreEmpty());
55+
$this->assertEquals($this->additionalInstructions, $this->dataverseConfiguration->getAdditionalInstructions());
56+
$this->assertEquals($this->additionalInstructions['en_US'], $this->dataverseConfiguration->getLocalizedAdditionalInstructions());
57+
58+
$defaultAdditionalInstructions = (new DefaultAdditionalInstructions())->getDefaultInstructions();
59+
60+
$this->dataverseConfiguration->setData('additionalInstructions', null);
61+
$this->assertTrue($this->dataverseConfiguration->additionalInstructionsAreEmpty());
62+
$this->assertEquals($defaultAdditionalInstructions, $this->dataverseConfiguration->getAdditionalInstructions());
63+
$this->assertEquals($defaultAdditionalInstructions['en_US'], $this->dataverseConfiguration->getLocalizedAdditionalInstructions());
64+
65+
$this->dataverseConfiguration->setData('additionalInstructions', ['en_US' => '', 'es_ES' => '', 'pt_BR' => '']);
66+
$this->assertTrue($this->dataverseConfiguration->additionalInstructionsAreEmpty());
67+
$this->assertEquals($defaultAdditionalInstructions, $this->dataverseConfiguration->getAdditionalInstructions());
68+
$this->assertEquals($defaultAdditionalInstructions['en_US'], $this->dataverseConfiguration->getLocalizedAdditionalInstructions());
69+
}
70+
}

0 commit comments

Comments
 (0)