diff --git a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java index f9c3c3bfc4d2ff3b81f77cde717a17ff3c4bf1a4..ec4398e7519ee80584376f951ab60945dd8869ff 100644 --- a/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java +++ b/src/main/java/org/olat/ims/qti21/ui/AssessmentEntryOutcomesListener.java @@ -58,6 +58,7 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener { private final boolean authorMode; private final boolean needManualCorrection; + private AtomicBoolean incrementAttempts = new AtomicBoolean(true); private AtomicBoolean start = new AtomicBoolean(true); private AtomicBoolean close = new AtomicBoolean(true); @@ -140,6 +141,11 @@ public class AssessmentEntryOutcomesListener implements OutcomesListener { assessmentEntry.setPassed(submittedPass); assessmentEntry.setCompletion(completion); assessmentEntry.setAssessmentId(assessmentId); + if(incrementAttempts.getAndSet(false)) { + int currentAttempts = assessmentEntry.getAttempts() == null ? 0 : assessmentEntry.getAttempts().intValue(); + assessmentEntry.setAttempts(currentAttempts + 1); + } + assessmentEntry = assessmentService.updateAssessmentEntry(assessmentEntry); boolean firstClose = close.getAndSet(false);