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);
|
||||||
|
|
||||||
|
GradingReportTemplate getCurrentTemplate(ProjectType projectType, LocalDate startDate);
|
||||||
|
|
||||||
GradingReportTemplate getTemplate(long templateId);
|
GradingReportTemplate getTemplate(long templateId);
|
||||||
|
|
||||||
/**
|
/**
|
||||||
|
@ -216,6 +216,11 @@ public class GradingReportServiceImpl implements GradingReportTemplateService, G
|
|||||||
return gradingReportTemplateRepo.getCurrentTemplate(projectType, LocalDate.now(clock));
|
return gradingReportTemplateRepo.getCurrentTemplate(projectType, LocalDate.now(clock));
|
||||||
}
|
}
|
||||||
|
|
||||||
|
@Override
|
||||||
|
public GradingReportTemplate getCurrentTemplate(ProjectType projectType, LocalDate startDate) {
|
||||||
|
return gradingReportTemplateRepo.getCurrentTemplate(projectType, startDate);
|
||||||
|
}
|
||||||
|
|
||||||
@Override
|
@Override
|
||||||
public GradingReportTemplate getTemplate(long templateId) {
|
public GradingReportTemplate getTemplate(long templateId) {
|
||||||
return gradingReportTemplateRepo.findOne(templateId);
|
return gradingReportTemplateRepo.findOne(templateId);
|
||||||
|
@ -117,8 +117,9 @@ public class TemplatePanel extends Panel {
|
|||||||
);
|
);
|
||||||
}
|
}
|
||||||
|
|
||||||
private List<GradeWithPointRange> getGradeWithPointRanges(ProjectType projectType) {
|
private List<GradeWithPointRange> getGradeWithPointRanges(Project project) {
|
||||||
GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(projectType);
|
GradingReportTemplate grt = gradingReportTemplateService.getCurrentTemplate(project.getProjectType(),
|
||||||
|
project.getStartDate());
|
||||||
GradeLimit[] gradeLimits = grt.getGradeLimits().toArray(GradeLimit[]::new);
|
GradeLimit[] gradeLimits = grt.getGradeLimits().toArray(GradeLimit[]::new);
|
||||||
List<GradeWithPointRange> list = new ArrayList<>();
|
List<GradeWithPointRange> list = new ArrayList<>();
|
||||||
|
|
||||||
@ -126,53 +127,21 @@ public class TemplatePanel extends Panel {
|
|||||||
GradeLimit gradeLimit = gradeLimits[i];
|
GradeLimit gradeLimit = gradeLimits[i];
|
||||||
int lowerLimit = gradeLimit.getLowerLimit();
|
int lowerLimit = gradeLimit.getLowerLimit();
|
||||||
int upperLimit = i == 0 ? grt.getMaxPoints() : gradeLimits[i - 1].getLowerLimit() - 1;
|
int upperLimit = i == 0 ? grt.getMaxPoints() : gradeLimits[i - 1].getLowerLimit() - 1;
|
||||||
GradeWithPointRange gradeWithPointRange = new GradeWithPointRange(gradeLimit.getGrade(), lowerLimit);
|
|
||||||
gradeWithPointRange.setUpperLimit(upperLimit);
|
list.add(new GradeWithPointRange(gradeLimit.getGrade(), lowerLimit, upperLimit));
|
||||||
list.add(gradeWithPointRange);
|
|
||||||
}
|
}
|
||||||
|
|
||||||
return list;
|
return list;
|
||||||
}
|
}
|
||||||
|
|
||||||
private class GradeWithPointRange implements Serializable {
|
private record GradeWithPointRange (String grade, int lowerLimit, int upperLimit) { }
|
||||||
|
|
||||||
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 class GradeLimitsContainer extends WebMarkupContainer {
|
private class GradeLimitsContainer extends WebMarkupContainer {
|
||||||
|
|
||||||
public GradeLimitsContainer(String id, IModel<Project> projectIModel) {
|
public GradeLimitsContainer(String id, IModel<Project> projectIModel) {
|
||||||
super(id, projectIModel);
|
super(id, projectIModel);
|
||||||
IModel<List<GradeWithPointRange>> list = projectIModel.map(project ->
|
IModel<List<GradeWithPointRange>> list = projectIModel.map(project ->
|
||||||
getGradeWithPointRanges(project.getProjectType())
|
getGradeWithPointRanges(project)
|
||||||
);
|
);
|
||||||
|
|
||||||
add(
|
add(
|
||||||
@ -182,7 +151,7 @@ public class TemplatePanel extends Panel {
|
|||||||
IModel<String> s = item
|
IModel<String> s = item
|
||||||
.getModel()
|
.getModel()
|
||||||
.map(
|
.map(
|
||||||
gpr -> "[" + gpr.getGrade() + "] " + gpr.getLowerLimit() + " - " + gpr.getUpperLimit()
|
gpr -> "[" + gpr.grade() + "] " + gpr.lowerLimit() + " - " + gpr.upperLimit()
|
||||||
);
|
);
|
||||||
item.add(new Label("gradewithlimits", s));
|
item.add(new Label("gradewithlimits", s));
|
||||||
add(item);
|
add(item);
|
||||||
|
Loading…
x
Reference in New Issue
Block a user