diff --git a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplate.java b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplate.java index 9383cf158b..27de115481 100644 --- a/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplate.java +++ b/view/src/main/java/se/su/dsv/scipro/admin/pages/grading/EditingGradingTemplate.java @@ -74,10 +74,12 @@ class EditingGradingTemplate implements Serializable { private List<Point> points = new ArrayList<>(); private Flag flag; private Type type = Type.PROJECT; + private int pointsRequiredToPass; Criteria(GradingCriterionTemplate criteria) { this.titleSv = criteria.getTitle(); this.titleEn = criteria.getTitleEn(); + this.pointsRequiredToPass = criteria.getPointsRequiredToPass(); for (var point : criteria.getGradingCriterionPointTemplates()) { if (point.getPoint() == 0) continue;; Point editingPoint = new Point(point); @@ -131,6 +133,14 @@ class EditingGradingTemplate implements Serializable { this.points = points; } + public int getPointsRequiredToPass() { + return pointsRequiredToPass; + } + + public void setPointsRequiredToPass(int pointsRequiredToPass) { + this.pointsRequiredToPass = pointsRequiredToPass; + } + class Point implements Serializable { private String requirementEn; private String requirementSv; 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 ba86c85a78..ff92fe94f5 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 @@ -94,6 +94,17 @@ <small class="text-muted">You can flag a criteria if it is connected to some other part of the system</small> </div> + <div class="mb-3"> + <label class="form-label" wicket:for="points_required_to_pass"> + Points required to pass + </label> + <input required type="number" class="form-control" wicket:id="points_required_to_pass"> + <small class="text-muted"> + If the author does not get at least this many points on this criterion, + they get the default grade. + </small> + </div> + <fieldset> <legend>Points</legend> 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 c829870bd0..1faee9b092 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 @@ -114,6 +114,18 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe typeChoice.setRequired(true); add(typeChoice); + NumberTextField<Integer> pointsRequiredToPass = new NumberTextField<>( + "points_required_to_pass", + LambdaModel.of( + model, + EditingGradingTemplate.Criteria::getPointsRequiredToPass, + EditingGradingTemplate.Criteria::setPointsRequiredToPass), + Integer.class); + pointsRequiredToPass.setMinimum(0); + pointsRequiredToPass.setRequired(true); + pointsRequiredToPass.add(new AutoSave()); + add(pointsRequiredToPass); + AjaxDropDownChoice<EditingGradingTemplate.Criteria.Flag> flagChoice = new AjaxDropDownChoice<>( "flag", LambdaModel.of(