3392 Multiple reviews on the same project should not fulfil multiple targets
Targets set by administrators are based on how many projects the reviewer gets assigned. If there are multiple reviews on a single project due to rejecting earlier versions the reviewer does not get more time.
This commit is contained in:
parent
58cd2003a7
commit
0c06dbd6a3
core/src
main/java/se/su/dsv/scipro/reviewing
test/java/se/su/dsv/scipro/reviewing
@ -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);
|
||||
}
|
||||
|
@ -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();
|
||||
}
|
||||
|
||||
|
@ -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) {
|
||||
|
@ -47,6 +47,7 @@ public class ReviewerTest extends ReviewingModuleTest {
|
||||
|
||||
// When
|
||||
reviewerCapacityService.assignTarget(reviewer, target);
|
||||
|
||||
Either<AlreadyRequested, RoughDraftApproval> firstReviewRequest = roughDraftApprovalService.requestApproval(
|
||||
project,
|
||||
dummyFile(),
|
||||
|
Loading…
x
Reference in New Issue
Block a user