2984 PO 5) Show criteria that did not meet minimum requirements when filling in the grading basis
This commit is contained in:
parent
b2c8d94d2f
commit
bf8e31dc28
view/src/main/java/se/su/dsv/scipro/grading
@ -51,6 +51,15 @@
|
||||
</p>
|
||||
<textarea class="form-control" rows="10" wicket:id="overall_motivation"></textarea>
|
||||
</div>
|
||||
<wicket:enclosure child="grading_basis_requirements_not_met">
|
||||
<h4 class="mt-3">Criterion not met</h4>
|
||||
<ul>
|
||||
<li wicket:id="grading_basis_requirements_not_met">
|
||||
<span wicket:id="title">[U1 title]</span>
|
||||
<span wicket:id="given_points"></span>/<span wicket:id="required_points"></span>
|
||||
</li>
|
||||
</ul>
|
||||
</wicket:enclosure>
|
||||
<wicket:enclosure child="save">
|
||||
<div class="position-sticky bottom-0 bg-white py-3 d-flex">
|
||||
<button class="btn btn-success me-3" wicket:id="save">
|
||||
|
@ -17,12 +17,14 @@ import org.apache.wicket.model.LambdaModel;
|
||||
import org.apache.wicket.model.LoadableDetachableModel;
|
||||
import org.apache.wicket.model.Model;
|
||||
import org.apache.wicket.model.StringResourceModel;
|
||||
import se.su.dsv.scipro.components.AutoHidingListView;
|
||||
import se.su.dsv.scipro.components.BootstrapRadioChoice;
|
||||
import se.su.dsv.scipro.components.ScrollSneakBehavior;
|
||||
import se.su.dsv.scipro.grading.GradingBasis.Assessment;
|
||||
import se.su.dsv.scipro.grading.GradingBasis.Criterion;
|
||||
import se.su.dsv.scipro.grading.GradingBasis.Criterion.Requirement;
|
||||
import se.su.dsv.scipro.project.Project;
|
||||
import se.su.dsv.scipro.report.GradingCriterion;
|
||||
import se.su.dsv.scipro.report.GradingReportService;
|
||||
|
||||
import javax.inject.Inject;
|
||||
@ -91,6 +93,21 @@ public class GradingBasisPanel extends GenericPanel<Project> {
|
||||
criterion.setReuseItems(true);
|
||||
add(criterion);
|
||||
|
||||
IModel<List<Assessment>> criteriaNotMet = gradingBasis.map(GradingBasis::criteria).map(criteria -> criteria.stream()
|
||||
.filter(assessment -> Objects.requireNonNullElse(
|
||||
assessment.getPoints(),
|
||||
0) < assessment.criterion().minimumPoints())
|
||||
.toList());
|
||||
add(new AutoHidingListView<>("grading_basis_requirements_not_met", criteriaNotMet) {
|
||||
@Override
|
||||
protected void populateItem(ListItem<Assessment> item) {
|
||||
IModel<Criterion> criterion = item.getModel().map(Assessment::criterion);
|
||||
item.add(new Label("title", criterion.map(Criterion::title)));
|
||||
item.add(new Label("given_points", item.getModel().map(Assessment::getPoints).orElse(0)));
|
||||
item.add(new Label("required_points", criterion.map(Criterion::minimumPoints)));
|
||||
}
|
||||
});
|
||||
|
||||
IModel<String> overallMotivation = LambdaModel.of(gradingBasis,
|
||||
GradingBasis::getOverallMotivation,
|
||||
GradingBasis::setOverallMotivation);
|
||||
|
Loading…
x
Reference in New Issue
Block a user