retrieve( 'SELECT sc.submission_id, sc.comments, sc.author_id FROM submission_comments sc JOIN submissions s ON (s.submission_id = sc.submission_id) WHERE comment_type = ? AND s.context_id = ?', [SubmissionComment::COMMENT_TYPE_PEER_REVIEW, (int) $contextId] ); $site = Application::get()->getRequest()->getSite(); $sitePrimaryLocale = $site->getPrimaryLocale(); $reviewsReturner = $this->retrieve( 'SELECT r.stage_id AS stage_id, r.review_id as review_id, r.round AS round, COALESCE(asl.setting_value, aspl.setting_value) AS submission, a.submission_id AS submission_id, u.user_id AS reviewer_id, u.username AS reviewer, u.email AS email, u.country AS country, us.setting_value AS orcid, COALESCE(uasl.setting_value, uas.setting_value) AS affiliation, COALESCE(ugsl.setting_value, ugs.setting_value) AS user_given, COALESCE(ufsl.setting_value, ufs.setting_value) AS user_family, r.date_assigned AS date_assigned, r.date_notified AS date_notified, r.date_confirmed AS date_confirmed, r.date_completed AS date_completed, r.date_acknowledged AS date_acknowledged, r.date_reminded AS date_reminded, r.date_due AS date_due, r.date_response_due AS date_response_due, (r.declined=1) AS declined, r.considered AS considered, (r.cancelled=1) AS cancelled, r.recommendation AS recommendation FROM review_assignments r LEFT JOIN submissions a ON r.submission_id = a.submission_id LEFT JOIN publications p ON a.current_publication_id = p.publication_id LEFT JOIN publication_settings asl ON (p.publication_id = asl.publication_id AND asl.locale = ? AND asl.setting_name = ?) LEFT JOIN publication_settings aspl ON (p.publication_id = aspl.publication_id AND aspl.locale = a.locale AND aspl.setting_name = ?) LEFT JOIN users u ON (u.user_id = r.reviewer_id) LEFT JOIN user_settings uas ON (u.user_id = uas.user_id AND uas.setting_name = ? AND uas.locale = a.locale) LEFT JOIN user_settings uasl ON (u.user_id = uasl.user_id AND uasl.setting_name = ? AND uasl.locale = ?) LEFT JOIN user_settings ugs ON (u.user_id = ugs.user_id AND ugs.setting_name = ? AND ugs.locale = a.locale) LEFT JOIN user_settings ugsl ON (u.user_id = ugsl.user_id AND ugsl.setting_name = ? AND ugsl.locale = ?) LEFT JOIN user_settings ufs ON (u.user_id = ufs.user_id AND ufs.setting_name = ? AND ufs.locale = a.locale) LEFT JOIN user_settings ufsl ON (u.user_id = ufsl.user_id AND ufsl.setting_name = ? AND ufsl.locale = ?) LEFT JOIN user_settings us ON (u.user_id = us.user_id AND us.setting_name = ?) WHERE a.context_id = ? ORDER BY submission', [ $locale, // Submission title 'title', 'title', 'affiliation', 'affiliation', $sitePrimaryLocale, 'givenName', 'givenName', $sitePrimaryLocale, 'familyName', 'familyName', $sitePrimaryLocale, 'orcid', (int) $contextId ] ); $interestManager = new InterestManager(); $assignedReviewerIds = $this->retrieve( 'SELECT r.reviewer_id FROM review_assignments r LEFT JOIN submissions a ON r.submission_id = a.submission_id WHERE a.context_id = ? ORDER BY r.reviewer_id', [(int) $contextId] ); $interests = []; foreach ($assignedReviewerIds as $row) { if (!array_key_exists($row->reviewer_id, $interests)) { $user = Repo::user()->get($row->reviewer_id, true); $reviewerInterests = $interestManager->getInterestsString($user); if (!empty($reviewerInterests)) { $interests[$row->reviewer_id] = $reviewerInterests; } } } return [$commentsReturner, $reviewsReturner, $interests]; } }