diff --git a/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepository.java b/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepository.java index af376f6b54..f27798992f 100644 --- a/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepository.java +++ b/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepository.java @@ -7,7 +7,7 @@ import java.time.LocalDate; import java.util.List; public interface DecisionRepository { - int countDecisions(User reviewer, LocalDate fromDate, LocalDate toDate); + int countUniqueProjectsWithDecision(User reviewer, LocalDate fromDate, LocalDate toDate); List<Decision> findBy(Project project); } diff --git a/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepositoryImpl.java b/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepositoryImpl.java index 52643f2d84..cd05696c0c 100644 --- a/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepositoryImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/reviewing/DecisionRepositoryImpl.java @@ -17,11 +17,13 @@ public class DecisionRepositoryImpl extends AbstractRepository implements Decisi } @Override - public int countDecisions(User reviewer, LocalDate fromDate, LocalDate toDate) { + public int countUniqueProjectsWithDecision(User reviewer, LocalDate fromDate, LocalDate toDate) { return (int) from(QDecision.decision) + .select(QDecision.decision.reviewerApproval.id) .where(QDecision.decision.assignedReviewer.eq(reviewer) .and(QDecision.decision.reviewerAssignedAt.goe(fromDate)) .and(QDecision.decision.reviewerAssignedAt.loe(toDate))) + .distinct() .fetchCount(); } diff --git a/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewerCapacityServiceImpl.java b/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewerCapacityServiceImpl.java index 507d899735..c758523db5 100644 --- a/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewerCapacityServiceImpl.java +++ b/core/src/main/java/se/su/dsv/scipro/reviewing/ReviewerCapacityServiceImpl.java @@ -135,7 +135,7 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs } private int countReviews(User reviewer, LocalDate fromDate, LocalDate toDate) { - return decisionRepository.countDecisions(reviewer, fromDate, toDate); + return decisionRepository.countUniqueProjectsWithDecision(reviewer, fromDate, toDate); } private Optional<ReviewerTarget> getTarget(User reviewer, LocalDate date) { diff --git a/core/src/test/java/se/su/dsv/scipro/reviewing/ReviewerTest.java b/core/src/test/java/se/su/dsv/scipro/reviewing/ReviewerTest.java index f3ce8806a1..fcaa8a4731 100644 --- a/core/src/test/java/se/su/dsv/scipro/reviewing/ReviewerTest.java +++ b/core/src/test/java/se/su/dsv/scipro/reviewing/ReviewerTest.java @@ -47,6 +47,7 @@ public class ReviewerTest extends ReviewingModuleTest { // When reviewerCapacityService.assignTarget(reviewer, target); + Either<AlreadyRequested, RoughDraftApproval> firstReviewRequest = roughDraftApprovalService.requestApproval( project, dummyFile(),