97: Using record and improve GradingReportTemplateService
This commit is contained in:
parent
cee39cbf78
commit
be29e38e97
core/src/main/java/se/su/dsv/scipro
view/src/main/java/se/su/dsv/scipro/grading
@ -14,6 +14,8 @@ public interface GradingReportTemplateService {
|
||||
|
||||
GradingReportTemplate getCurrentTemplate(ProjectType projectType);
|
||||
|
||||
GradingReportTemplate getCurrentTemplate(ProjectType projectType, LocalDate startDate);
|
||||
|
||||
GradingReportTemplate getTemplate(long templateId);
|
||||
|
||||
/**
|
||||
|
@ -216,6 +216,11 @@ public class GradingReportServiceImpl implements GradingReportTemplateService, G
|
||||
return gradingReportTemplateRepo.getCurrentTemplate(projectType, LocalDate.now(clock));
|
||||
}
|
||||
|
||||
@Override
|
||||
public GradingReportTemplate getCurrentTemplate(ProjectType projectType, LocalDate startDate) {
|
||||
return gradingReportTemplateRepo.getCurrentTemplate(projectType, startDate);
|
||||
}
|
||||
|
||||
@Override
|
||||
public GradingReportTemplate getTemplate(long templateId) {
|
||||
return gradingReportTemplateRepo.findOne(templateId);
|
||||
|
@ -117,8 +117,9 @@ public class TemplatePanel extends Panel {
|
||||
);
|
||||
}
|
||||
|
||||
private List<GradeWithPointRange> getGradeWithPointRanges(ProjectType projectType) {
|
||||
GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(projectType);
|
||||
private List<GradeWithPointRange> getGradeWithPointRanges(Project project) {
|
||||
GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(project.getProjectType(),
|
||||
project.getStartDate());
|
||||
GradeLimit[] gradeLimits = grt.getGradeLimits().toArray(GradeLimit[]::new);
|
||||
List<GradeWithPointRange> list = new ArrayList<>();
|
||||
|
||||
@ -126,53 +127,21 @@ public class TemplatePanel extends Panel {
|
||||
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);
|
||||
|
||||
list.add(new GradeWithPointRange(gradeLimit.getGrade(), lowerLimit, upperLimit));
|
||||
}
|
||||
|
||||
return list;
|
||||
}
|
||||
|
||||
private class GradeWithPointRange implements Serializable {
|
||||
|
||||
private String grade;
|
||||
private int lowerLimit;
|
||||
private int upperLimit;
|
||||
|
||||
public GradeWithPointRange(String grade, int lowerLimit) {
|
||||
this.grade = grade;
|
||||
this.lowerLimit = lowerLimit;
|
||||
}
|
||||
|
||||
public String getGrade() {
|
||||
return grade;
|
||||
}
|
||||
|
||||
public int getLowerLimit() {
|
||||
return lowerLimit;
|
||||
}
|
||||
|
||||
public int getUpperLimit() {
|
||||
return upperLimit;
|
||||
}
|
||||
|
||||
public void setUpperLimit(int upperLimit) {
|
||||
this.upperLimit = upperLimit;
|
||||
}
|
||||
|
||||
@Override
|
||||
public String toString() {
|
||||
return "[" + grade + "]: " + lowerLimit + " - " + upperLimit;
|
||||
}
|
||||
}
|
||||
private record GradeWithPointRange (String grade, int lowerLimit, int upperLimit) { }
|
||||
|
||||
private class GradeLimitsContainer extends WebMarkupContainer {
|
||||
|
||||
public GradeLimitsContainer(String id, IModel<Project> projectIModel) {
|
||||
super(id, projectIModel);
|
||||
IModel<List<GradeWithPointRange>> list = projectIModel.map(project ->
|
||||
getGradeWithPointRanges(project.getProjectType())
|
||||
getGradeWithPointRanges(project)
|
||||
);
|
||||
|
||||
add(
|
||||
@ -182,7 +151,7 @@ public class TemplatePanel extends Panel {
|
||||
IModel<String> s = item
|
||||
.getModel()
|
||||
.map(
|
||||
gpr -> "[" + gpr.getGrade() + "] " + gpr.getLowerLimit() + " - " + gpr.getUpperLimit()
|
||||
gpr -> "[" + gpr.grade() + "] " + gpr.lowerLimit() + " - " + gpr.upperLimit()
|
||||
);
|
||||
item.add(new Label("gradewithlimits", s));
|
||||
add(item);
|
||||
|
Loading…
x
Reference in New Issue
Block a user