Simplified gathering of grading boundries
This commit is contained in:
parent
411908fb72
commit
7e79e0c5d0
core/src/main/java/se/su/dsv/scipro/report
view/src/main/java/se/su/dsv/scipro/grading
@ -81,6 +81,10 @@ public class GradingReportTemplate extends DomainObject {
|
||||
this.validFrom = validFrom;
|
||||
}
|
||||
|
||||
public int getMaxPoints() {
|
||||
return getCriteria().stream().mapToInt(GradingCriterionTemplate::getMaxPoints).sum();
|
||||
}
|
||||
|
||||
// ----------------------------------------------------------------------------------
|
||||
// Properties (Getters and Setters)
|
||||
// ----------------------------------------------------------------------------------
|
||||
|
@ -3,9 +3,8 @@ package se.su.dsv.scipro.grading;
|
||||
import jakarta.inject.Inject;
|
||||
import java.io.Serializable;
|
||||
import java.time.LocalDate;
|
||||
import java.util.Arrays;
|
||||
import java.util.ArrayList;
|
||||
import java.util.List;
|
||||
import java.util.stream.Collectors;
|
||||
import org.apache.wicket.markup.html.WebMarkupContainer;
|
||||
import org.apache.wicket.markup.html.basic.Label;
|
||||
import org.apache.wicket.markup.html.list.ListItem;
|
||||
@ -14,7 +13,6 @@ import org.apache.wicket.markup.html.panel.Panel;
|
||||
import org.apache.wicket.model.IModel;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.report.GradeLimit;
|
||||
import se.su.dsv.scipro.report.GradingCriterionTemplate;
|
||||
import se.su.dsv.scipro.report.GradingReportTemplate;
|
||||
import se.su.dsv.scipro.system.DegreeType;
|
||||
import se.su.dsv.scipro.system.ProjectType;
|
||||
@ -122,20 +120,15 @@ public class TemplatePanel extends Panel {
|
||||
private List<GradeWithPointRange> getGradeWithPointRanges(ProjectType projectType) {
|
||||
GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(projectType);
|
||||
GradeLimit[] gradeLimits = grt.getGradeLimits().toArray(GradeLimit[]::new);
|
||||
List<GradeWithPointRange> list = Arrays.stream(gradeLimits)
|
||||
.map(gradeLimit -> new GradeWithPointRange(gradeLimit.getGrade(), gradeLimit.getLowerLimit()))
|
||||
.collect(Collectors.toList());
|
||||
List<GradeWithPointRange> list = new ArrayList<>();
|
||||
|
||||
for (int i = 1; i < list.size(); i++) {
|
||||
list.get(i).setUpperLimit(gradeLimits[i - 1].getLowerLimit() - 1);
|
||||
}
|
||||
|
||||
if (!list.isEmpty()) {
|
||||
list
|
||||
.get(0)
|
||||
.setUpperLimit(
|
||||
grt.getCriteria().stream().map(GradingCriterionTemplate::getMaxPoints).reduce(0, Integer::sum)
|
||||
);
|
||||
for (int i = 0; i < gradeLimits.length; i++) {
|
||||
GradeLimit gradeLimit = gradeLimits[i];
|
||||
int lowerLimit = gradeLimit.getLowerLimit();
|
||||
int upperLimit = i == 0 ? grt.getMaxPoints() : gradeLimits[i - 1].getLowerLimit() - 1;
|
||||
GradeWithPointRange gradeWithPointRange = new GradeWithPointRange(gradeLimit.getGrade(), lowerLimit);
|
||||
gradeWithPointRange.setUpperLimit(upperLimit);
|
||||
list.add(gradeWithPointRange);
|
||||
}
|
||||
|
||||
return list;
|
||||
|
Loading…
x
Reference in New Issue
Block a user