Skip to content

Commit

Permalink
Merge branch 'fixReviewersListing-757' into 'main'
Browse files Browse the repository at this point in the history
Realiza ajustes na listagem de avaliadores

See merge request softwares-pkp/plugins_ojs/reviewersControlReport!4
  • Loading branch information
JhonathanLepidus committed Mar 8, 2024
2 parents 8f3743b + 6ffd3e2 commit a291dc6
Show file tree
Hide file tree
Showing 3 changed files with 91 additions and 20 deletions.
51 changes: 33 additions & 18 deletions classes/traits/ReviewerData.inc.php
Original file line number Diff line number Diff line change
Expand Up @@ -2,30 +2,45 @@

trait ReviewerData
{
public function getReviewerData($id, $reviewersDao): array
public function getReviewerData($reviewerId, $reviewersDao): array
{
$reviewerData = array_merge(
$this->getReviewerPersonalData($reviewerId),
$this->getReviewerReviewsData($reviewerId, $reviewersDao)
);

return $reviewerData;
}

public function getReviewerPersonalData($reviewerId): array
{
$reviewersData = [];
$userDao = DAORegistry::getDAO('UserDAO');
$user = $userDao->getById($id);
$reviewer = $userDao->getById($reviewerId);

return [
$reviewer->getLocalizedGivenName() . ' ' . $reviewer->getLocalizedFamilyName(),
$reviewer->getEmail(),
$reviewer->getLocalizedAffiliation(),
$reviewer->getInterestString()
];
}

$reviewersData[] = $user->getLocalizedGivenName() . $user->getLocalizedFamilyName();
$reviewersData[] = $user->getEmail();
$reviewersData[] = $user->getLocalizedAffiliation();
$reviewersData[] = $user->getInterestString();
$rating = $reviewersDao->getQualityAverage($user->getId());
$completedSubmissions = $reviewersDao->getTotalReviewedSubmissions($user->getId());
$reviewersData[] = $rating > 0 ? $rating : "";
$reviewersData[] = $completedSubmissions > 0 ? $completedSubmissions : "";
private function getReviewerReviewsData($reviewerId, $reviewersDao): array
{
$rating = $reviewersDao->getQualityAverage($reviewerId);
$completedSubmissions = $reviewersDao->getTotalReviewedSubmissions($reviewerId);
$isCsv = true;
$reviewedSubmissionsTitleAndDate = $reviewersDao->getReviewedSubmissionsTitleAndDate($user->getId(), $isCsv);
$fullSubmissionsText = "";
$reviewedSubmissionsTitleAndDate = $reviewersDao->getReviewedSubmissionsTitleAndDate($reviewerId, $isCsv);

foreach ($reviewedSubmissionsTitleAndDate as $submission) {
$fullSubmissionsText .= $submission[0] . ". " . $submission[1] . "\n";
$fullSubmissionsText = "";
foreach ($reviewedSubmissionsTitleAndDate as [$title, $dateCompleted]) {
$fullSubmissionsText .= "{$title}. {$dateCompleted}\n";
}

$reviewersData[] = $fullSubmissionsText;

return $reviewersData;
return [
$rating > 0 ? $rating : "",
$completedSubmissions > 0 ? $completedSubmissions : "",
$fullSubmissionsText
];
}
}
56 changes: 56 additions & 0 deletions tests/ReviewersControlReportFormTest.php
Original file line number Diff line number Diff line change
@@ -0,0 +1,56 @@
<?php

import('lib.pkp.tests.DatabaseTestCase');
import('lib.pkp.classes.user.User');
import('plugins.generic.reviewersControlReport.classes.ReviewersControlReportForm');

class ReviewersControlReportFormTest extends DatabaseTestCase
{
private $reviewerId;
private $locale = 'en_US';
private $givenName = 'Walter';
private $familyName = 'Salles';
private $username = 'walter.salles';
private $email = 'walter.salles@ancine.com.br';
private $affiliation = 'Agência Nacional do Cinema';

public function setUp(): void
{
parent::setUp();
$this->reviewerId = $this->createUser();
}

protected function getAffectedTables()
{
return ['users', 'user_settings'];
}

private function createUser()
{
$user = new User();
$user->setData('givenName', [$this->locale => $this->givenName]);
$user->setData('familyName', [$this->locale => $this->familyName]);
$user->setData('affiliation', [$this->locale => $this->affiliation]);
$user->setData('email', $this->email);
$user->setData('username', $this->username);
$user->setData('password', $this->username);

return DAORegistry::getDAO('UserDAO')->insertObject($user);
}

public function testGetsReviewerPersonalData()
{
$form = new ReviewersControlReportForm();

$reviewerPersonalData = $form->getReviewerPersonalData($this->reviewerId);
$emptyInterests = '';
$expectedPersonalData = [
$this->givenName . ' ' . $this->familyName,
$this->email,
$this->affiliation,
$emptyInterests
];

$this->assertEquals($expectedPersonalData, $reviewerPersonalData);
}
}
4 changes: 2 additions & 2 deletions version.xml
Original file line number Diff line number Diff line change
Expand Up @@ -13,6 +13,6 @@
<version>
<application>reviewersControlReport</application>
<type>plugins.generic</type>
<release>1.4.4.0</release>
<date>2024-01-10</date>
<release>1.4.5.0</release>
<date>2024-03-08</date>
</version>

0 comments on commit a291dc6

Please sign in to comment.