3204 Include the number of performed reviews in the target history
This commit is contained in:
parent
e5e59f4cbd
commit
2a0eb66b2f
core/src/main/java/se/su/dsv/scipro/reviewing
view/src/main/java/se/su/dsv/scipro/admin/pages
@ -26,5 +26,7 @@ public interface ReviewerCapacityService {
|
||||
* @param year the year to get the targets up to, but not including
|
||||
* @return the entire history for the given reviewer up to the given year
|
||||
*/
|
||||
List<Target> getTargetHistory(User reviewer, Year year);
|
||||
List<TargetHistory> getTargetHistory(User reviewer, Year year);
|
||||
|
||||
record TargetHistory(Year year, int springTarget, int autumnTarget, int completedInSpring, int completedInAutumn) {}
|
||||
}
|
@ -93,15 +93,22 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
}
|
||||
|
||||
@Override
|
||||
public List<Target> getTargetHistory(User reviewer, Year year) {
|
||||
public List<TargetHistory> getTargetHistory(User reviewer, Year year) {
|
||||
return reviewerTargetRepository.getReviewerTargetsBeforeYear(reviewer, year)
|
||||
.stream()
|
||||
.map(reviewerTarget -> new Target(
|
||||
Year.of(reviewerTarget.getYear()),
|
||||
reviewerTarget.getSpring(),
|
||||
reviewerTarget.getAutumn(),
|
||||
reviewerTarget.getNote()))
|
||||
.sorted(Comparator.comparing(Target::year).reversed())
|
||||
.map(reviewerTarget -> {
|
||||
int completedInSpring = decisionRepository.countDecisions(reviewer,
|
||||
startOfSpring(reviewerTarget.getYear()), endOfSpring(reviewerTarget.getYear()));
|
||||
int completedInAutumn = decisionRepository.countDecisions(reviewer,
|
||||
startOfAutumn(reviewerTarget.getYear()), endOfAutumn(reviewerTarget));
|
||||
return new TargetHistory(
|
||||
Year.of(reviewerTarget.getYear()),
|
||||
reviewerTarget.getSpring(),
|
||||
reviewerTarget.getAutumn(),
|
||||
completedInSpring,
|
||||
completedInAutumn);
|
||||
})
|
||||
.sorted(Comparator.comparing(TargetHistory::year).reversed())
|
||||
.toList();
|
||||
}
|
||||
|
||||
@ -170,10 +177,28 @@ class ReviewerCapacityServiceImpl implements ReviewerCapacityService, ReviewerAs
|
||||
|
||||
private int countAssignedReviews(User reviewer, LocalDate fromDate) {
|
||||
if (fromDate.getMonthValue() <= Month.JUNE.getValue()) {
|
||||
return decisionRepository.countDecisions(reviewer, LocalDate.of(fromDate.getYear(), Month.JANUARY, 1), LocalDate.of(fromDate.getYear(), Month.JUNE, 30));
|
||||
return decisionRepository.countDecisions(reviewer,
|
||||
startOfSpring(fromDate.getYear()), endOfSpring(fromDate.getYear()));
|
||||
}
|
||||
else {
|
||||
return decisionRepository.countDecisions(reviewer, LocalDate.of(fromDate.getYear(), Month.JULY, 1), LocalDate.of(fromDate.getYear(), Month.DECEMBER, 31));
|
||||
return decisionRepository.countDecisions(reviewer,
|
||||
startOfAutumn(fromDate.getYear()), LocalDate.of(fromDate.getYear(), Month.DECEMBER, 31));
|
||||
}
|
||||
}
|
||||
|
||||
private static LocalDate endOfAutumn(ReviewerTarget reviewerTarget) {
|
||||
return LocalDate.of(reviewerTarget.getYear(), Month.DECEMBER, 31);
|
||||
}
|
||||
|
||||
private static LocalDate startOfAutumn(int year) {
|
||||
return endOfSpring(year).plusDays(1);
|
||||
}
|
||||
|
||||
private static LocalDate endOfSpring(int year) {
|
||||
return LocalDate.of(year, Month.JUNE, 30);
|
||||
}
|
||||
|
||||
private static LocalDate startOfSpring(int year) {
|
||||
return LocalDate.of(year, Month.JANUARY, 1);
|
||||
}
|
||||
}
|
||||
|
@ -97,9 +97,9 @@
|
||||
<wicket:container wicket:id="history">
|
||||
<dt wicket:id="year">[2024]</dt>
|
||||
<dd>
|
||||
Spring: <span wicket:id="spring">[2]</span>
|
||||
Spring target: <span wicket:id="spring">[2]</span>, completed: <span wicket:id="completed_in_spring">[1]</span>
|
||||
<br>
|
||||
Autumn: <span wicket:id="autumn">[2]</span>
|
||||
Autumn target: <span wicket:id="autumn">[2]</span>, completed: <span wicket:id="completed_in_autumn">[1]</span>
|
||||
</dd>
|
||||
</wicket:container>
|
||||
</dl>
|
||||
|
@ -22,6 +22,7 @@ import se.su.dsv.scipro.profile.UserLabel;
|
||||
import se.su.dsv.scipro.profile.UserProfileImage;
|
||||
import se.su.dsv.scipro.reviewing.ReviewerCapacityService;
|
||||
import se.su.dsv.scipro.reviewing.ReviewerCapacityService.Target;
|
||||
import se.su.dsv.scipro.reviewing.ReviewerCapacityService.TargetHistory;
|
||||
import se.su.dsv.scipro.springdata.services.UnitService;
|
||||
import se.su.dsv.scipro.system.Unit;
|
||||
import se.su.dsv.scipro.system.User;
|
||||
@ -144,13 +145,15 @@ public class AdminReviewerCapacityManagementPage extends AbstractAdminProjectPag
|
||||
add(expandToggle);
|
||||
|
||||
expanded.add(new AssignTargetForm("form", reviewer));
|
||||
IModel<List<Target>> history = LoadableDetachableModel.of(() -> reviewerCapacityService.getTargetHistory(reviewer.getObject(), selectedPeriod.getObject()));
|
||||
ListView<Target> historyComponent = new ListView<>("history", history) {
|
||||
IModel<List<TargetHistory>> history = LoadableDetachableModel.of(() -> reviewerCapacityService.getTargetHistory(reviewer.getObject(), selectedPeriod.getObject()));
|
||||
ListView<TargetHistory> historyComponent = new ListView<>("history", history) {
|
||||
@Override
|
||||
protected void populateItem(ListItem<Target> item) {
|
||||
item.add(new Label("year", item.getModel().map(Target::year)));
|
||||
item.add(new Label("spring", item.getModel().map(Target::spring)));
|
||||
item.add(new Label("autumn", item.getModel().map(Target::autumn)));
|
||||
protected void populateItem(ListItem<TargetHistory> item) {
|
||||
item.add(new Label("year", item.getModel().map(TargetHistory::year)));
|
||||
item.add(new Label("spring", item.getModel().map(TargetHistory::springTarget)));
|
||||
item.add(new Label("autumn", item.getModel().map(TargetHistory::autumnTarget)));
|
||||
item.add(new Label("completed_in_spring", item.getModel().map(TargetHistory::completedInSpring)));
|
||||
item.add(new Label("completed_in_autumn", item.getModel().map(TargetHistory::completedInAutumn)));
|
||||
}
|
||||
};
|
||||
historyComponent.setViewSize(3);
|
||||
|
Loading…
x
Reference in New Issue
Block a user