Allows admins to manage grading report templates #14

Merged
niat8586 merged 41 commits from 3482-new-grading-criteria into develop 2024-10-30 10:05:23 +01:00
3 changed files with 33 additions and 0 deletions
Showing only changes of commit e5aa53f882 - Show all commits

View File

@ -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;

View File

@ -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>

View File

@ -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(