@@ -26,8 +26,7 @@ import {
2626 selectCurrentMembers ,
2727 selectHasUpdateReviewAssignmentsPermission ,
2828 selectReviewPeriod ,
29- selectReviewPeriods ,
30- selectSupervisors ,
29+ selectReviewPeriods
3130} from '../../../context/selectors' ;
3231import { titleCase } from '../../../helpers/strings.js' ;
3332
@@ -91,44 +90,37 @@ const ReviewPeriodCard = ({ mode, onSelect, periodId, selfReviews }) => {
9190 if ( res . error ) return ;
9291
9392 const assignments = res . payload . data ;
94-
95- const supervisors = selectSupervisors ( state ) ;
9693 for ( const assignment of assignments ) {
97- // If the reviewer is not a supervisor, locally modify the assignment
98- // so that this will count as one to be approved by the reviewer's
99- // supervisor.
100- const id = assignment . reviewerId ;
101- if ( ! supervisors . some ( s => s . id === id ) ) {
102- const member = currentMembers . find ( m => m . id === id ) ;
103- if ( member ) {
104- assignment . reviewerId = member . supervisorid ;
105- }
94+ // Use the reviewee supervisor to track who needs to approve reviewers.
95+ const member = currentMembers . find ( m => m . id === assignment . revieweeId ) ;
96+ if ( member ?. supervisorid ) {
97+ assignment . revieweeSupervisorId = member . supervisorid ;
10698 }
10799 }
108100
109101 const approvedCount = assignments . filter ( a => a . approved ) . length ;
110102 setOverallApprovalPercentage ( ( 100 * approvedCount ) / assignments . length ) ;
111103
112- // Get a list of all the reviewers in this period.
113- const reviewerIds = new Set ( assignments . map ( a => a . reviewerId ) ) ;
114- const reviewers = [ ...reviewerIds ] . map ( id =>
104+ // Get a list of all the supervisors in this period.
105+ const supervisorIds = new Set ( assignments . map ( a => a . revieweeSupervisorId ) ) ;
106+ const supervisors = [ ...supervisorIds ] . filter ( id => ! ! id ) . map ( id =>
115107 currentMembers . find ( m => m . id === id )
116108 ) ;
117- reviewers . sort ( ( a , b ) => a . name . localeCompare ( b . name ) ) ;
109+ supervisors . sort ( ( a , b ) => a . name . localeCompare ( b . name ) ) ;
118110
119- // Build an array containing statistics for each reviewer .
120- const stats = reviewers . map ( reviewer => {
121- const { id } = reviewer ;
122- const assignmentsForReviewer = assignments . filter (
123- assignment => assignment . reviewerId === id
111+ // Build an array containing statistics for each supervisor .
112+ const stats = supervisors . map ( supervisor => {
113+ const { id } = supervisor ;
114+ const assignmentsForSupervisor = assignments . filter (
115+ assignment => assignment . revieweeSupervisorId === id
124116 ) ;
125- const approved = assignmentsForReviewer . filter (
117+ const approved = assignmentsForSupervisor . filter (
126118 assignment => assignment . approved
127119 ) . length ;
128120 return {
129- name : reviewer . name ,
121+ name : supervisor . name ,
130122 percent :
131- ( ( 100 * approved ) / assignmentsForReviewer . length ) . toFixed ( 0 ) + '%'
123+ ( ( 100 * approved ) / assignmentsForSupervisor . length ) . toFixed ( 0 ) + '%'
132124 } ;
133125 } ) ;
134126
0 commit comments