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 21 additions and 2 deletions
Showing only changes of commit 1d3daa5226 - Show all commits

View File

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

View File

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

View File

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