Skip to content

Commit

Permalink
Merge branch 'demandReadme330-739' into 'stable-3_3_0'
Browse files Browse the repository at this point in the history
Exige envio de arquivo "README" no conjunto de dados - 330

See merge request softwares-pkp/plugins_ojs/dataverse!175
  • Loading branch information
JhonathanLepidus committed Jan 29, 2025
2 parents ab4c615 + bc5fc2d commit 20cf3c6
Show file tree
Hide file tree
Showing 9 changed files with 110 additions and 16 deletions.
33 changes: 32 additions & 1 deletion classes/dispatchers/DraftDatasetFilesDispatcher.inc.php
Original file line number Diff line number Diff line change
@@ -1,5 +1,6 @@
<?php

import('lib.pkp.classes.file.TemporaryFileManager');
import('plugins.generic.dataverse.classes.dispatchers.DataverseDispatcher');
import('plugins.generic.dataverse.classes.services.DataStatementService');

Expand Down Expand Up @@ -54,6 +55,7 @@ public function addStep2Validation(string $hookName, array $params): void
if (!empty($publication->getData('dataStatementTypes'))) {
$this->validateResearchDataFileRequired($form);
$this->validateGalleyContainsResearchData($form);
$this->validateResearchDataReadme($form);
}
}

Expand Down Expand Up @@ -87,7 +89,6 @@ private function validateGalleyContainsResearchData(SubmissionSubmitStep2Form $f
$draftDatasetFileDAO = DAORegistry::getDAO('DraftDatasetFileDAO');
$draftDatasetFiles = $draftDatasetFileDAO->getBySubmissionId($form->submission->getId());

import('lib.pkp.classes.file.TemporaryFileManager');
$datasetFiles = array_map(function (DraftDatasetFile $draftFile) {
$temporaryFileManager = new TemporaryFileManager();
return $temporaryFileManager->getFile(
Expand All @@ -103,4 +104,34 @@ private function validateGalleyContainsResearchData(SubmissionSubmitStep2Form $f
$form->addErrorField('dataverseStep2ValidationError');
}
}

private function validateResearchDataReadme(SubmissionSubmitStep2Form $form): void
{
$publication = $form->submission->getCurrentPublication();
if (!in_array(DATA_STATEMENT_TYPE_DATAVERSE_SUBMITTED, $publication->getData('dataStatementTypes'))) {
return;
}

$draftDatasetFileDAO = DAORegistry::getDAO('DraftDatasetFileDAO');
$draftDatasetFiles = $draftDatasetFileDAO->getBySubmissionId($form->submission->getId());
$temporaryFileManager = new TemporaryFileManager();

foreach ($draftDatasetFiles as $file) {
$tempFile = $temporaryFileManager->getFile(
$file->getData('fileId'),
$file->getData('userId')
);
$fileName = strtolower($file->getFileName());
$fileType = $tempFile->getData('filetype');

if (str_contains($fileName, 'readme')
&& ($fileType == 'application/pdf' || $fileType == 'text/plain')
) {
return;
}
}

$form->addError('dataverseStep2ValidationError', __("plugins.generic.dataverse.error.readmeFileRequired"));
$form->addErrorField('dataverseStep2ValidationError');
}
}
Binary file added cypress/fixtures/README.pdf
Binary file not shown.
52 changes: 43 additions & 9 deletions cypress/tests/Test03_ResearchDataDeposit.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -87,6 +87,24 @@ describe('Research data deposit', function () {
cy.location('search').then(search => {
submission.id = parseInt(search.split('=')[1], 10);
});

cy.get('#submitStep2Form button.submitFormButton').click();
cy.get('div:contains("It is mandatory to send a README file, in PDF or TXT format, to accompany the research data files")');

cy.contains('Add research data').click();
cy.wait(1000);
cy.fixture('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', { encoding: 'base64' }).then((fileContent) => {
cy.get('#uploadForm input[type=file]')
.upload({
fileContent,
fileName: 'README.pdf',
mimeType: 'application/pdf',
encoding: 'base64',
});
});
cy.wait(200);
cy.get('input[name="termsOfUse"').check();
cy.get('#uploadForm button').contains('OK').click();
cy.get('#submitStep2Form button.submitFormButton').click();

cy.wait(1000);
Expand Down Expand Up @@ -188,14 +206,14 @@ describe('Research data deposit', function () {
cy.get('form:visible button:contains("Save")').click();
cy.waitJQuery();
cy.get('#datasetFiles .listPanel__items').contains('Submissão de dados.pdf');
cy.get('#datasetTab-button .pkpBadge').contains('2');
cy.get('#datasetTab-button .pkpBadge').contains('3');

cy.get('.listPanel__item:contains(Submissão de dados.pdf) button:contains(Delete)').click();
cy.get('#datasetFiles .listPanel__items').contains('Submissão de dados.pdf');
cy.get('.modal:visible button:contains(Yes)').click();
cy.waitJQuery();
cy.get('#datasetFiles .listPanel__items').should('not.include.text', 'Submissão de dados.pdf');
cy.get('#datasetTab-button .pkpBadge').contains('1');
cy.get('#datasetTab-button .pkpBadge').contains('2');
});

it('Check author can delete research data', function () {
Expand Down Expand Up @@ -397,6 +415,7 @@ describe('Research data deposit', function () {

cy.get('input[name="shouldPublishResearchData"][value="1"]').click();
cy.get('div.pkpWorkflow__publishModal button:contains("Publish"), .pkp_modal_panel button:contains("Post")').click();
cy.wait(3000);

cy.waitDatasetTabLoading('datasetTab');
cy.contains('button', 'Delete research data').should('be.disabled');
Expand Down Expand Up @@ -454,6 +473,22 @@ describe('Research data deposit', function () {
cy.wait(200);
cy.get('input[name="termsOfUse"').check();
cy.get('#uploadForm button').contains('OK').click();

cy.wait(1000);
cy.contains('Add research data').click();
cy.wait(1000);
cy.fixture('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', { encoding: 'base64' }).then((fileContent) => {
cy.get('#uploadForm input[type=file]')
.upload({
fileContent,
fileName: 'README.pdf',
mimeType: 'application/pdf',
encoding: 'base64',
});
});
cy.wait(200);
cy.get('input[name="termsOfUse"').check();
cy.get('#uploadForm button').contains('OK').click();
cy.get('#submitStep2Form button.submitFormButton').click();

cy.get('input[id^="title-en_US-"').type('Submission with research data', { delay: 0 });
Expand Down Expand Up @@ -503,14 +538,13 @@ describe('Research data deposit', function () {
cy.waitDatasetTabLoading('datasetTab');
cy.contains('button', 'Publish research data').click();

const publishMsg = 'Do you really want to publish the research data related to this submission? This action cannot be undone.'
+ 'Before proceeding, make sure they are suitable for publication in '
+ dataverseServerName;
cy.get('div[data-modal="publish"]').contains(publishMsg);
cy.get('div[data-modal="publish"] button').contains('Yes').click();
cy.wait(1000);
cy.get('div[data-modal="publish"]').within(() => {
cy.contains('Do you really want to publish the research data related to this submission? This action cannot be undone.');
cy.contains('Before proceeding, make sure they are suitable for publication in');
cy.contains('button', 'Yes').click();
});
cy.wait(3000);

cy.get('.value > p').contains('V1');
cy.get('button').contains('Publish research data').should('not.exist');
cy.get('button').contains('Delete research data').should('be.disabled');
cy.get('button').contains('Add research data').should('be.disabled');
Expand Down
10 changes: 7 additions & 3 deletions cypress/tests/Test04_Review.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -27,7 +27,7 @@ describe('Research data on review', function () {
submission = {
id: 0,
section: 'Articles',
title: 'The Rise of the Machine Empire',
title: 'Machine Empire and Society',
abstract: 'An example abstract.',
keywords: ['Modern History'],
researchDataFileNames : ['discarded_robots.csv', 'robots_spy_missions.csv']
Expand All @@ -49,8 +49,10 @@ describe('Research data on review', function () {

addResearchDataFile('dummy.pdf', submission.researchDataFileNames[0]);
addResearchDataFile('dummy.zip', submission.researchDataFileNames[1]);
addResearchDataFile('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', 'README.pdf');
cy.contains(submission.researchDataFileNames[0]);
cy.contains(submission.researchDataFileNames[1]);
cy.contains('README.pdf');

cy.get('#submitStep2Form button.submitFormButton').click();

Expand Down Expand Up @@ -83,8 +85,9 @@ describe('Research data on review', function () {
cy.get('#editorialActions').contains('Send to Review').click();

cy.get('#selectDataFilesForReview').contains('This submission has deposited research data. Please, select which data files will be made available for reviewers to view.');
cy.get('input[name^="selectedDataFilesForReview"]').should('be.checked');
cy.get('input[name^="selectedDataFilesForReview"]').eq(1).uncheck();
cy.contains('label', submission.researchDataFileNames[1]).within(() => {
cy.get('input[name^="selectedDataFilesForReview"]').uncheck();
});

cy.get('#initiateReview').contains('Send to Review').click();

Expand All @@ -104,5 +107,6 @@ describe('Research data on review', function () {
cy.contains('Data statement');
cy.contains('The research data has been submitted to the Dataverse de Exemplo Lepidus repository');
cy.get('a:contains("' + submission.researchDataFileNames[0] + '")');
cy.get('a:contains("README.pdf")');
});
});
18 changes: 17 additions & 1 deletion cypress/tests/Test05_EditorDecision.spec.js
Original file line number Diff line number Diff line change
Expand Up @@ -10,7 +10,7 @@ describe('Research data publishing in editor decision', function () {
submission = {
id: 0,
section: 'Articles',
title: 'The Rise of the Machine Empire',
title: 'The second Machine Empire',
abstract: 'An example abstract.',
keywords: ['Modern History'],
}
Expand Down Expand Up @@ -65,6 +65,22 @@ describe('Research data publishing in editor decision', function () {
});
cy.get('input[name="termsOfUse"').check();
cy.get('#uploadForm button').contains('OK').click();
cy.wait(1000);

cy.contains('Add research data').click();
cy.wait(1000);
cy.fixture('../../plugins/generic/dataverse/cypress/fixtures/README.pdf', { encoding: 'base64' }).then((fileContent) => {
cy.get('#uploadForm input[type=file]')
.upload({
fileContent,
fileName: 'README.pdf',
mimeType: 'application/pdf',
encoding: 'base64',
});
});
cy.wait(200);
cy.get('input[name="termsOfUse"').check();
cy.get('#uploadForm button').contains('OK').click();
cy.get('#submitStep2Form button.submitFormButton').click();

cy.get('input[id^="title-en_US-"').type(submission.title, { delay: 0 });
Expand Down
3 changes: 3 additions & 0 deletions locale/en_US/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -110,6 +110,9 @@ msgid "plugins.generic.dataverse.error.datasetSubjectRequired"
msgstr "The subject of the research data is required.<br>"
"Please ensure that you have chosen the subject of the research data in step 3 of the submission."

msgid "plugins.generic.dataverse.error.readmeFileRequired"
msgstr "It is mandatory to send a README file, in PDF or TXT format, to accompany the research data files"

msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
msgstr "Error depositing research data to Dataverse: {$error}<br>"
"Please choose another data statement option or try again later."
Expand Down
3 changes: 3 additions & 0 deletions locale/es_ES/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ msgid "plugins.generic.dataverse.error.datasetSubjectRequired"
msgstr "El asunto de los datos de investigación es obligatorio.<br>"
"Asegúrate de haber seleccionado el asunto de los datos de investigación en el paso 3 del envío."

msgid "plugins.generic.dataverse.error.readmeFileRequired"
msgstr "Es obligatorio enviar un archivo README, en formato PDF o TXT, que acompañe a los archivos de datos de la investigación"

msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
msgstr "Error al depositar los datos de investigación en Dataverse: {$error}<br>"
"Por favor, elija otra opción de declaración de datos o intente nuevamente más tarde."
Expand Down
3 changes: 3 additions & 0 deletions locale/pt_BR/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -113,6 +113,9 @@ msgid "plugins.generic.dataverse.error.datasetSubjectRequired"
msgstr "O assunto dos dados de pesquisa é obrigatório.<br>"
"Certifique-se que você informou o assunto dos dados de pesquisa no passo 3 da submissão."

msgid "plugins.generic.dataverse.error.readmeFileRequired"
msgstr "É obrigatório o envio de um arquivo README, em formato PDF ou TXT, que acompanhe os arquivos de dados de pesquisa"

msgid "plugins.generic.dataverse.error.depositFailedOnSubmission"
msgstr "Erro ao depositar dados de pesquisa no Dataverse: {$error}<br>"
"Por favor, escolha outra opção de declaração de dados ou tente novamente mais tarde."
Expand Down
4 changes: 2 additions & 2 deletions version.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,8 +13,8 @@
<version>
<application>dataverse</application>
<type>plugins.generic</type>
<release>2.7.0.0</release>
<date>2025-01-17</date>
<release>2.7.1.0</release>
<date>2025-01-29</date>
<lazy-load>1</lazy-load>
<class>DataversePlugin</class>
</version>

0 comments on commit 20cf3c6

Please sign in to comment.