@@ -90,32 +90,37 @@ const ReviewPeriodCard = ({ mode, onSelect, periodId, selfReviews }) => {
9090 if ( res . error ) return ;
9191
9292 const assignments = res . payload . data ;
93+ for ( const assignment of assignments ) {
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 ;
98+ }
99+ }
100+
93101 const approvedCount = assignments . filter ( a => a . approved ) . length ;
94102 setOverallApprovalPercentage ( ( 100 * approvedCount ) / assignments . length ) ;
95103
96- // Get a list of all the reviewers in this period.
97- const reviewerIds = new Set ( ) ;
98- for ( const assignment of assignments ) {
99- reviewerIds . add ( assignment . reviewerId ) ;
100- }
101- 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 =>
102107 currentMembers . find ( m => m . id === id )
103108 ) ;
104- reviewers . sort ( ( a , b ) => a . name . localeCompare ( b . name ) ) ;
109+ supervisors . sort ( ( a , b ) => a . name . localeCompare ( b . name ) ) ;
105110
106- // Build an array containing statistics for each reviewer .
107- const stats = reviewers . map ( reviewer => {
108- const { id } = reviewer ;
109- const assignmentsForReviewer = assignments . filter (
110- 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
111116 ) ;
112- const approved = assignmentsForReviewer . filter (
117+ const approved = assignmentsForSupervisor . filter (
113118 assignment => assignment . approved
114119 ) . length ;
115120 return {
116- name : reviewer . name ,
121+ name : supervisor . name ,
117122 percent :
118- ( ( 100 * approved ) / assignmentsForReviewer . length ) . toFixed ( 0 ) + '%'
123+ ( ( 100 * approved ) / assignmentsForSupervisor . length ) . toFixed ( 0 ) + '%'
119124 } ;
120125 } ) ;
121126
0 commit comments