Use detachable IModels to prevent stale data

This commit is contained in:
Andreas Svanberg 2025-02-20 10:48:47 +01:00
parent 7e79e0c5d0
commit cee39cbf78
2 changed files with 11 additions and 6 deletions
view/src
main/java/se/su/dsv/scipro/grading
test/java/se/su/dsv/scipro/grading

@ -171,14 +171,19 @@ public class TemplatePanel extends Panel {
public GradeLimitsContainer(String id, IModel<Project> projectIModel) {
super(id, projectIModel);
List<GradeWithPointRange> list = getGradeWithPointRanges(projectIModel.getObject().getProjectType());
IModel<List<GradeWithPointRange>> list = projectIModel.map(project ->
getGradeWithPointRanges(project.getProjectType())
);
add(
new ListView<>("gradewithlimits_list", list) {
@Override
protected void populateItem(ListItem<GradeWithPointRange> item) {
GradeWithPointRange gpr = item.getModelObject();
String s = "[" + gpr.getGrade() + "] " + gpr.getLowerLimit() + " - " + gpr.getUpperLimit();
IModel<String> s = item
.getModel()
.map(
gpr -> "[" + gpr.getGrade() + "] " + gpr.getLowerLimit() + " - " + gpr.getUpperLimit()
);
item.add(new Label("gradewithlimits", s));
add(item);
}

@ -81,9 +81,9 @@ public class TemplatePanelTest extends SciProTest {
project.setStartDate(LocalDate.of(2017, Month.MAY, 29));
project.setCredits(credits);
Mockito.when(gradingReportTemplateService.getCurrentTemplate(project.getProjectType())).thenReturn(
new GradingReportTemplate(projectType, LocalDate.of(2024, Month.JANUARY, 1))
);
Mockito.lenient()
.when(gradingReportTemplateService.getCurrentTemplate(project.getProjectType()))
.thenReturn(new GradingReportTemplate(projectType, LocalDate.of(2024, Month.JANUARY, 1)));
panel = tester.startComponentInPage(new TemplatePanel("id", Model.of(project)));
}