Add new criteria to grading templates

This commit is contained in:
Andreas Svanberg 2024-10-21 15:31:40 +02:00
parent 99e4613a1c
commit 1d3daa5226
3 changed files with 21 additions and 2 deletions

@ -56,6 +56,10 @@ class EditingGradingTemplate implements Serializable {
.sum();
}
public void addCriteria() {
this.criteria.add(new Criteria());
}
class Criteria implements Serializable {
enum Flag {
OPPOSITION, REFLECTION
@ -63,13 +67,12 @@ class EditingGradingTemplate implements Serializable {
private String titleSv;
private String titleEn;
private List<Point> points;
private List<Point> points = new ArrayList<>();
private Flag flag;
Criteria(GradingCriterionTemplate criteria) {
this.titleSv = criteria.getTitle();
this.titleEn = criteria.getTitleEn();
this.points = new ArrayList<>();
for (var point : criteria.getGradingCriterionPointTemplates()) {
if (point.getPoint() == 0) continue;;
Point editingPoint = new Point(point);
@ -77,6 +80,8 @@ class EditingGradingTemplate implements Serializable {
}
}
private Criteria() {}
public String getTitleSv() {
return titleSv;
}

@ -130,6 +130,10 @@
</fieldset>
</div>
</div>
<div class="mb-3">
<button class="btn btn-sm btn-outline-success" wicket:id="add_criteria">Add new criteria</button>
</div>
</wicket:panel>
</body>
</html>

@ -28,6 +28,8 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe
{
super(id, editingGradingTemplateModel);
setOutputMarkupId(true);
TextField<LocalDate> validFromField = new RequiredTextField<>("valid_from",
LambdaModel.of(editingGradingTemplateModel,
EditingGradingTemplate::getValidFrom,
@ -59,6 +61,14 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe
item.add(new CriteriaEditingPanel("criteria", item.getModel()));
}
});
add(new AjaxLink<>("add_criteria") {
@Override
public void onClick(AjaxRequestTarget target) {
editingGradingTemplateModel.getObject().addCriteria();
target.add(EditingGradingTemplateComponentPanel.this);
}
});
}
class CriteriaEditingPanel extends GenericWebMarkupContainer<EditingGradingTemplate.Criteria> {