Skip to content

Commit f5f94fb

Browse files
committed
Only make new review assignments for added members and remove review assignments for those no longer selected.
1 parent e27aa62 commit f5f94fb

File tree

2 files changed

+16
-4
lines changed

2 files changed

+16
-4
lines changed

server/src/main/java/com/objectcomputing/checkins/services/reviews/ReviewAssignmentController.java

Lines changed: 1 addition & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -68,7 +68,7 @@ public HttpResponse<ReviewAssignment> createReviewAssignment(@Body @Valid Review
6868
public List<ReviewAssignment> createReviewAssignment(@NotNull UUID reviewPeriodId,
6969
@Body List<@Valid ReviewAssignmentDTO> assignments) {
7070
List<ReviewAssignment> assignmentEntities = assignments.stream().map(ReviewAssignmentDTO::convertToEntity).toList();
71-
return reviewAssignmentServices.saveAll(reviewPeriodId, assignmentEntities, true);
71+
return reviewAssignmentServices.saveAll(reviewPeriodId, assignmentEntities, false);
7272
}
7373

7474
/**

web-ui/src/components/reviews/TeamReviews.jsx

Lines changed: 15 additions & 3 deletions
Original file line numberDiff line numberDiff line change
@@ -239,16 +239,28 @@ const TeamReviews = ({ onBack, periodId }) => {
239239
};
240240

241241
const updateTeamMembers = async teamMembers => {
242-
// First, create a set of team members, each with a default reviewer.
243-
const data = teamMembers.map(tm => ({
242+
// First, get the list of review assignements.
243+
let res = await getReviewAssignments(periodId, csrf);
244+
if (res.error) return;
245+
246+
// Match up the review assignments with the team members.
247+
const existing = res.payload.data
248+
.filter(a => teamMembers.find(m => m.id == a.revieweeId));
249+
250+
// Create a set of team members that do not yet have review assignments,
251+
// each with a default reviewer.
252+
const mem = teamMembers.filter(
253+
m => !existing.find(a => a.revieweeId == m.id)
254+
);
255+
const data = mem.map(tm => ({
244256
revieweeId: tm.id,
245257
reviewerId: tm.supervisorid,
246258
reviewPeriodId: periodId,
247259
approved: false
248260
}));
249261

250262
// Set those on the server as the review assignments.
251-
let res = await createReviewAssignments(periodId, data, csrf);
263+
res = await createReviewAssignments(periodId, data, csrf);
252264
if (res.error) return;
253265

254266
// Get the list of review assignments from the server to ensure that we are

0 commit comments

Comments
 (0)