diff --git a/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.java b/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.java index cd277ede9d..f8ed61ccce 100644 --- a/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.java +++ b/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.java @@ -228,7 +228,7 @@ public class SeminarOppositionPanel extends Panel { private class FinalSeminarOppositionForm extends Form<FinalSeminarOpposition> { - private IModel<OppositionCriteria> pointsModel = new StatelessModel<>(); + private IModel<OppositionCriteria.Point> pointsModel = new StatelessModel<>(); private IModel<String> feedbackModel = new Model<>(); public FinalSeminarOppositionForm(String id, final IModel<FinalSeminarOpposition> finalSeminarOpposition) { @@ -237,7 +237,7 @@ public class SeminarOppositionPanel extends Panel { finalSeminarOppositionService.getCriteriaForOpposition(finalSeminarOpposition.getObject()) ); - FormComponent<OppositionCriteria> pointsField = new DropDownChoice<>( + FormComponent<OppositionCriteria.Point> pointsField = new DropDownChoice<>( POINTS, pointsModel, criteriaModel.map(OppositionCriteria::pointsAvailable), @@ -255,14 +255,19 @@ public class SeminarOppositionPanel extends Panel { new AjaxSubmitLink(SUBMIT) { @Override protected void onSubmit(AjaxRequestTarget target) { - finalSeminarOppositionService.gradeOpponent( - finalSeminarOpposition.getObject(), - pointsModel.getObject().points(), - feedbackModel.getObject() - ); - success(getString("feedback.opponent.updated", finalSeminarOpposition)); - target.add(feedbackPanel); - target.add(oppositionContainer); + try { + finalSeminarOppositionService.gradeOpponent( + finalSeminarOpposition.getObject(), + pointsModel.getObject().value(), + feedbackModel.getObject() + ); + success(getString("feedback.opponent.updated", finalSeminarOpposition)); + target.add(feedbackPanel); + target.add(oppositionContainer); + } catch (PointNotValidException e) { + error(getString("point.not.valid")); + target.add(feedbackPanel); + } } @Override diff --git a/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.properties b/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.properties index 4976fecc4d..24ac972a57 100644 --- a/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.properties +++ b/view/src/main/java/se/su/dsv/scipro/finalseminar/SeminarOppositionPanel.properties @@ -8,6 +8,7 @@ gradingFeedback.Required = You need to write a motivation points.Required = Points are required opponents.form.points.RangeValidator.range= Points assigned must be between ${minimum} and ${maximum} feedback.opponent.updated= Opponent ${user.fullName} feedback updated. +point.not.valid=You need to assign points from the available selection. feedback.opponent.not.updated= Opponent ${user.fullName} feedback updated. Point and motivation could not be transferred to the students final grading report since the opponents supervisor already filled it in. criteria= As the supervisor on this final seminar you are also required to grade the opponents opposition report.\ <\br><\br>Requirement for 1 point: <\br>That the opposition report provides a short summary of the evaluated thesis, that it deliberates about the scientific basis, originality, \