Skip to content

Commit

Permalink
Merge branch 'showMissingRequirements-568' into 'main'
Browse files Browse the repository at this point in the history
Lista requisitos não preenchidos no momento da submissão para preservação

See merge request softwares-pkp/plugins_ojs/carinianaPreservation!4
  • Loading branch information
JhonathanLepidus committed Jun 7, 2023
2 parents 416cd73 + de3263d commit 739bac4
Show file tree
Hide file tree
Showing 7 changed files with 76 additions and 43 deletions.
49 changes: 32 additions & 17 deletions classes/form/PreservationSubmissionForm.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -41,30 +41,45 @@ public function validate($callHooks = true)
$journalDao = DAORegistry::getDAO('JournalDAO');
$journal = $journalDao->getById($this->contextId);

$locale = AppLocale::getLocale();
$necessaryData = [
$journal->getData('publisherInstitution'),
$journal->getLocalizedData('name', $locale),
$journal->getData('printIssn'),
$journal->getData('onlineIssn'),
$journal->getData('urlPath'),
$journal->getLocalizedData('description', $locale),
$journal->getLocalizedData('acronym', $locale),
$journal->getData('contactEmail')
];

foreach($necessaryData as $data) {
if(empty($data))
$this->addError('preservationSubmission', __("plugins.generic.carinianaPreservation.preservationSubmission.missingData"));
list($requirementsAreMissing, $missingRequirements) = $this->requirementsAreMissing($journal);
if($requirementsAreMissing) {
$missingRequirements = implode(', ', $missingRequirements);
$this->addError('preservationSubmission', __("plugins.generic.carinianaPreservation.preservationSubmission.missingRequirements", ['missingRequirements' => $missingRequirements]));
}

$statementFile = $this->plugin->getSetting($this->contextId, 'statementFile');
if(empty($data))
if(empty($statementFile)) {
$this->addError('preservationSubmission', __("plugins.generic.carinianaPreservation.preservationSubmission.missingResponsabilityStatement"));
}

return parent::validate($callHooks);
}

private function requirementsAreMissing($journal): array
{
$requirements = [
'manager.setup.publisher' => $journal->getData('publisherInstitution'),
'manager.setup.contextTitle' => $journal->getLocalizedData('name'),
'manager.setup.printIssn' => $journal->getData('printIssn'),
'manager.setup.onlineIssn' => $journal->getData('onlineIssn'),
'context.path' => $journal->getData('urlPath'),
'manager.setup.contextSummary' => $journal->getLocalizedData('description'),
'manager.setup.contextInitials' => $journal->getLocalizedData('acronym'),
'admin.settings.contactEmail' => $journal->getData('contactEmail')
];

$requirementsAreMissing = false;
$missingRequirements = [];
foreach($requirements as $name => $value) {
if(empty($value)) {
$requirementsAreMissing = true;
$missingRequirements[] = __($name);
}
}

return [$requirementsAreMissing, $missingRequirements];
}

public function execute(...$functionArgs)
{
$journalDao = DAORegistry::getDAO('JournalDAO');
Expand Down
40 changes: 21 additions & 19 deletions cypress/tests/functional/Test1_pluginSettings.spec.js
Original file line number Diff line number Diff line change
@@ -1,29 +1,31 @@
function loginAdminUser() {
cy.get('input[id=username]').clear();
cy.get('input[id=username]').type(Cypress.env('OJSAdminUsername'), { delay: 0 });
cy.get('input[id=password]').type(Cypress.env('OJSAdminPassword'), { delay: 0 });
cy.get('button[class=submit]').click();
}

describe("Cariniana Preservation Plugin - Checking of plugin's settings", function() {
it("Setting of recipient e-mail in plugin's settings", function() {
cy.visit(Cypress.env('baseUrl') + 'index.php/' + Cypress.env('journalAcronym') + '/management/settings/website');
loginAdminUser();
it("Sets recipient e-mail and responsability statement", function() {
const pluginRowId = 'component-grid-settings-plugins-settingsplugingrid-category-generic-row-carinianapreservationplugin';
cy.login('dbarnes', null, 'publicknowledge');
cy.get('a:contains("Website")').click();

cy.get('#plugins-button').click();
cy.get('#component-grid-settings-plugins-settingsplugingrid-category-generic-row-carinianapreservationplugin > .first_column > .show_extras').click();
cy.get('a[id^=component-grid-settings-plugins-settingsplugingrid-category-generic-row-carinianapreservationplugin-settings-button]').click();
cy.waitJQuery();
cy.get('button#plugins-button').click();
cy.get('#' + pluginRowId + ' > .first_column > .show_extras').click();
cy.get('a[id^='+ pluginRowId + '-settings-button]').click();

cy.contains('Recipient e-mail');
cy.get('input[id^=recipientEmail]').clear().type('destino.cariniana@gmail.com');
cy.contains('Responsability statement');
cy.fixture('dummy.pdf', { encoding: 'base64' }).then((fileContent) => {
cy.get('#statementUpload input[type=file]')
.upload({
fileContent,
fileName: 'responsability_statement.pdf',
mimeType: 'application/pdf',
encoding: 'base64',
});
});
cy.wait(200);
cy.get('button[id^=submitFormButton]').contains('Save').click();

cy.get('a[id^=component-grid-settings-plugins-settingsplugingrid-category-generic-row-carinianapreservationplugin-settings-button]').click();
cy.get('a[id^=' + pluginRowId + '-settings-button]').click();
cy.get('input[id^=recipientEmail]').should('have.value', 'destino.cariniana@gmail.com');

cy.contains('Responsability statement');
cy.contains('Download, complete and sign the disclaimer document and then attach the file in the field below.');

cy.get('.pkpFormField--upload__uploadActions');
cy.contains('The completed file of the terms of responsibility has already been sent previously and is saved in the system');
});
});
16 changes: 16 additions & 0 deletions cypress/tests/functional/Test2_missingRequirements.spec.js
Original file line number Diff line number Diff line change
@@ -0,0 +1,16 @@
describe("Cariniana Preservation Plugin - Missing requirements", function() {
it("Checks for missing requirements message on submission for preservation", function() {
const pluginRowId = 'component-grid-settings-plugins-settingsplugingrid-category-generic-row-carinianapreservationplugin';
cy.login('dbarnes', null, 'publicknowledge');
cy.get('a:contains("Website")').click();

cy.waitJQuery();
cy.get('button#plugins-button').click();
cy.get('#' + pluginRowId + ' > .first_column > .show_extras').click();
cy.get('a[id^='+ pluginRowId + '-preservationSubmission-button]').click();
cy.wait(200);

cy.get('button[id^=submitFormButton]').contains('Submit').click();
cy.contains('The submission of the journal could not be carried out. The following data need to be filled: Journal Summary');
});
});
4 changes: 2 additions & 2 deletions locale/en_US/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ msgstr "Submission for preservation"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.description"
msgstr "Click on \"Submit\" to submit this journal for digital preservation by Cariniana"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingData"
msgstr "The submission of the journal could not be carried out because some of the necessary data were not filled in"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingRequirements"
msgstr "The submission of the journal could not be carried out. The following data need to be filled: {$missingRequirements}"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingResponsabilityStatement"
msgstr "Responsability statement file not sent. Access the plugin settings to send it"
4 changes: 2 additions & 2 deletions locale/es_ES/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ msgstr "Envío para preservación"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.description"
msgstr "Haga cliq en \"Enviar\" para enviar esta revista para su preservación digital por Cariniana"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingData"
msgstr "No se ha podido realizar el envío de la revista porque no se cumplimentaron algunos de los datos necesarios"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingRequirements"
msgstr "No se ha podido realizar el envío de la revista. Los siguientes datos deben ser llenados: {$missingRequirements}"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingResponsabilityStatement"
msgstr "Archivo de descargo de responsabilidad no enviado. Accede a la configuración del plugin para enviar"
4 changes: 2 additions & 2 deletions locale/pt_BR/locale.po
Original file line number Diff line number Diff line change
Expand Up @@ -70,8 +70,8 @@ msgstr "Submissão para preservação"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.description"
msgstr "Clique em \"Submeter\" para realizar a submissão deste periódico para preservação digital pela Cariniana"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingData"
msgstr "A submissão do periódico não pôde ser realizada pois alguns dos dados necessários não foram preenchidos"
msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingRequirements"
msgstr "A submissão do periódico para preservação não pôde ser realizada. Os seguintes dados precisam ser preenchidos: {$missingRequirements}"

msgid "plugins.generic.carinianaPreservation.preservationSubmission.missingResponsabilityStatement"
msgstr "O arquivo dos termos de responsabilidade não foi enviado. Acesse as configurações do plugin para realizar o envio"
2 changes: 1 addition & 1 deletion version.xml
Original file line number Diff line number Diff line change
Expand Up @@ -12,7 +12,7 @@
<application>carinianaPreservation</application>
<type>plugins.generic</type>
<lazy-load>0</lazy-load>
<release>1.2.0.0</release>
<release>1.2.1.0</release>
<date>2023-06-07</date>
<class>CarinianaPreservationPlugin</class>
</version>

0 comments on commit 739bac4

Please sign in to comment.