Allows admins to manage grading report templates #14
@ -45,9 +45,9 @@
|
||||
<wicket:container wicket:id="grade_limits">
|
||||
<div class="row align-items-center mb-3" wicket:id="grade_limit">
|
||||
<div class="col"><label class="form-label" wicket:for="minimum">Minimum points</label></div>
|
||||
<div class="col"><input type="number" class="form-control" min="1" wicket:id="minimum"></div>
|
||||
<div class="col"><input type="number" required class="form-control" min="1" wicket:id="minimum"></div>
|
||||
<div class="col"><label class="form-label">Grade</label></div>
|
||||
<div class="col"><input type="text" class="form-control" wicket:id="grade"></div>
|
||||
<div class="col"><input type="text" required class="form-control" wicket:id="grade"></div>
|
||||
<div class="col-auto"><button class="btn btn-sm btn-outline-danger" wicket:id="remove">Remove</button></div>
|
||||
</div>
|
||||
</wicket:container>
|
||||
|
@ -224,6 +224,10 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe
|
||||
});
|
||||
|
||||
add(new ListView<>("grade_limits", model.map(GradeLimits::getGradeLimits)) {
|
||||
{
|
||||
setReuseItems(true);
|
||||
}
|
||||
|
||||
@Override
|
||||
protected void populateItem(ListItem<GradeLimits.GradeLimit> item) {
|
||||
item.add(new GradeLimitEditingPanel("grade_limit", item.getModel()));
|
||||
@ -243,22 +247,23 @@ class EditingGradingTemplateComponentPanel extends GenericPanel<EditingGradingTe
|
||||
private class GradeLimitEditingPanel extends GenericWebMarkupContainer<GradeLimits.GradeLimit> {
|
||||
public GradeLimitEditingPanel(String id, IModel<GradeLimits.GradeLimit> model) {
|
||||
super(id, model);
|
||||
add(new NumberTextField<>("minimum", LambdaModel.of(
|
||||
|
||||
NumberTextField<Integer> minimum = new NumberTextField<>("minimum", LambdaModel.of(
|
||||
model,
|
||||
GradeLimits.GradeLimit::getLowerLimit,
|
||||
GradeLimits.GradeLimit::setLowerLimit), Integer.class) {
|
||||
{
|
||||
add(new AutoSave());
|
||||
}
|
||||
});
|
||||
add(new TextField<>("grade", LambdaModel.of(
|
||||
GradeLimits.GradeLimit::setLowerLimit), Integer.class);
|
||||
minimum.setRequired(true);
|
||||
minimum.add(new AutoSave());
|
||||
add(minimum);
|
||||
|
||||
TextField<String> grade = new TextField<>("grade", LambdaModel.of(
|
||||
model,
|
||||
GradeLimits.GradeLimit::getGrade,
|
||||
GradeLimits.GradeLimit::setGrade)) {
|
||||
{
|
||||
add(new AutoSave());
|
||||
}
|
||||
});
|
||||
GradeLimits.GradeLimit::setGrade));
|
||||
grade.setRequired(true);
|
||||
grade.add(new AutoSave());
|
||||
add(grade);
|
||||
|
||||
add(new AjaxLink<>("remove") {
|
||||
@Override
|
||||
public void onClick(AjaxRequestTarget target) {
|
||||
|
@ -8,3 +8,5 @@ requirement_sv.Required=You must set the swedish requirement for every criteria
|
||||
requirement_en.Required=You must set the english requirement for every criteria point
|
||||
Type.PROJECT=Once per thesis
|
||||
Type.INDIVIDUAL=Individually for each author
|
||||
minimum.Required=You must set the minimum number of points for each grade
|
||||
grade.Required=You must set the letter for each grade
|
||||
|
Loading…
x
Reference in New Issue
Block a user