diff --git a/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java b/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java index 98b7357b861ea57b71162c06ea68d7eeafe954ca..643ad5575db65d23239f21a82cd690b3d8abeec3 100644 --- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java @@ -249,6 +249,13 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor mode = ensureStatusOfMode(mode, Status.none); sendEvent(AssessmentModeNotificationEvent.BEFORE, mode, assessmentModeManager.getAssessedIdentityKeys(mode)); + } else if(mode.getStatus() == Status.followup && mode.isManualBeginEnd() && !forceStatus) { + // close manual assessment mode in the follow-up time but started before the begin date + if(mode.getEndWithFollowupTime().compareTo(now) < 0) { + mode = ensureStatusOfMode(mode, Status.end); + sendEvent(AssessmentModeNotificationEvent.END, mode, + assessmentModeManager.getAssessedIdentityKeys(mode)); + } } } else if(mode.getBeginWithLeadTime().compareTo(now) <= 0 && mode.getBegin().compareTo(now) > 0 && mode.getBeginWithLeadTime().compareTo(mode.getBegin()) != 0) {