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