3321 PO Show the currently assigned reviewer's target information
This commit is contained in:
parent
95a300eeee
commit
14d2dcbba0
core/src/main/java/se/su/dsv/scipro/reviewing
view/src/main/java/se/su/dsv/scipro/admin/pages
@ -12,6 +12,10 @@ public interface ReviewerAssignmentService {
|
||||
|
||||
void unassignReviewer(Project project);
|
||||
|
||||
CurrentTarget getCurrentTarget(User reviewer, LocalDate date);
|
||||
|
||||
record CurrentTarget(int target, int assigned) {}
|
||||
|
||||
enum ReviewerAssignment {
|
||||
OK, ERROR_IS_SUPERVISOR, WARNING_NO_REVIEW_REQUEST, ERROR_IS_NOT_REVIEWER
|
||||
}
|
||||
|
@ -210,6 +210,15 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
eventBus.post(new ReviewerUnassignedEvent(project));
|
||||
}
|
||||
|
||||
@Override
|
||||
public CurrentTarget getCurrentTarget(User reviewer, LocalDate date) {
|
||||
int assignedReviews = countAssignedReviews(reviewer, date);
|
||||
int currentTarget = getTarget(reviewer, date)
|
||||
.map(rt -> getPeriodTarget(rt, date))
|
||||
.orElse(0);
|
||||
return new CurrentTarget(currentTarget, assignedReviews);
|
||||
}
|
||||
|
||||
private int countAssignedReviews(User reviewer, LocalDate fromDate) {
|
||||
if (fromDate.getMonthValue() <= Month.JUNE.getValue()) {
|
||||
return decisionRepository.countDecisions(reviewer,
|
||||
|
@ -35,6 +35,7 @@
|
||||
<div class="col my-auto">
|
||||
<div class="card-body">
|
||||
<h4 class="card-title" wicket:id="name"></h4>
|
||||
<span wicket:id="assigned"></span> / <span wicket:id="target"></span>
|
||||
<div>
|
||||
Research areas:
|
||||
<ul>
|
||||
|
@ -31,9 +31,6 @@ import javax.inject.Inject;
|
||||
import java.time.Clock;
|
||||
import java.time.LocalDate;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.Objects;
|
||||
import java.util.stream.Stream;
|
||||
|
||||
public class AdminAssignReviewerPage extends AbstractAdminProjectPage {
|
||||
@Inject
|
||||
@ -135,6 +132,13 @@ public class AdminAssignReviewerPage extends AbstractAdminProjectPage {
|
||||
private class CurrentReviewerCard extends GenericWebMarkupContainer<User> {
|
||||
public CurrentReviewerCard(String id, IModel<User> reviewer) {
|
||||
super(id, reviewer);
|
||||
|
||||
IModel<ReviewerAssignmentService.CurrentTarget> currentTarget = LoadableDetachableModel.of(() ->
|
||||
reviewerAssignmentService.getCurrentTarget(reviewer.getObject(), LocalDate.now(clock)));
|
||||
|
||||
add(new Label("assigned", currentTarget.map(ReviewerAssignmentService.CurrentTarget::assigned)));
|
||||
add(new Label("target", currentTarget.map(ReviewerAssignmentService.CurrentTarget::target)));
|
||||
|
||||
add(new UserProfileImage("image", reviewer, UserProfileImage.Size.MEDIUM));
|
||||
add(new UserLabel("name", reviewer));
|
||||
add(new AutoHidingListView<>("research_areas", reviewer.map(User::getResearchAreas).map(ArrayList::new)) {
|
||||
|
Loading…
x
Reference in New Issue
Block a user