Allows admins to manage grading report templates #14
@ -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> {
|
||||
|
Loading…
x
Reference in New Issue
Block a user