diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html index ff92fe94f5..e788ed878f 100644 --- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html +++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.html @@ -45,9 +45,9 @@ <wicket:container wicket:id="grade_limits"> <div class="row align-items-center mb-3" wicket:id="grade_limit"> <div class="col"><label class="form-label" wicket:for="minimum">Minimum points</label></div> - <div class="col"><input type="number" class="form-control" min="1" wicket:id="minimum"></div> + <div class="col"><input type="number" required class="form-control" min="1" wicket:id="minimum"></div> <div class="col"><label class="form-label">Grade</label></div> - <div class="col"><input type="text" class="form-control" wicket:id="grade"></div> + <div class="col"><input type="text" required class="form-control" wicket:id="grade"></div> <div class="col-auto"><button class="btn btn-sm btn-outline-danger" wicket:id="remove">Remove</button></div> </div> </wicket:container> diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java index 1faee9b092..69e21918d6 100644 --- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java +++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.java @@ -224,6 +224,10 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe }); add(new ListView<>("grade_limits", model.map(GradeLimits::getGradeLimits)) { + { + setReuseItems(true); + } + @Override protected void populateItem(ListItem<GradeLimits.GradeLimit> item) { item.add(new GradeLimitEditingPanel("grade_limit", item.getModel())); @@ -243,22 +247,23 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe private class GradeLimitEditingPanel extends GenericWebMarkupContainer<GradeLimits.GradeLimit> { public GradeLimitEditingPanel(String id, IModel<GradeLimits.GradeLimit> model) { super(id, model); - add(new NumberTextField<>("minimum", LambdaModel.of( + + NumberTextField<Integer> minimum = new NumberTextField<>("minimum", LambdaModel.of( model, GradeLimits.GradeLimit::getLowerLimit, - GradeLimits.GradeLimit::setLowerLimit), Integer.class) { - { - add(new AutoSave()); - } - }); - add(new TextField<>("grade", LambdaModel.of( + GradeLimits.GradeLimit::setLowerLimit), Integer.class); + minimum.setRequired(true); + minimum.add(new AutoSave()); + add(minimum); + + TextField<String> grade = new TextField<>("grade", LambdaModel.of( model, GradeLimits.GradeLimit::getGrade, - GradeLimits.GradeLimit::setGrade)) { - { - add(new AutoSave()); - } - }); + GradeLimits.GradeLimit::setGrade)); + grade.setRequired(true); + grade.add(new AutoSave()); + add(grade); + add(new AjaxLink<>("remove") { @Override public void onClick(AjaxRequestTarget target) { diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties index 4e9a0c63c9..8329e18a8f 100644 --- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties +++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplateComponentPanel.utf8.properties @@ -8,3 +8,5 @@ requirement_sv.Required=You must set the swedish requirement for every criteria requirement_en.Required=You must set the english requirement for every criteria point Type.PROJECT=Once per thesis Type.INDIVIDUAL=Individually for each author +minimum.Required=You must set the minimum number of points for each grade +grade.Required=You must set the letter for each grade