From a723f7da3435471a533909b2ef1639102a8098a1 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 10 Feb 2015 16:36:55 +0100
Subject: [PATCH] OO-1349: fix an issue where the student is block at the end
 of the follow-up time

---
 .../assessment/ui/AssessmentModeGuardController.java      | 8 +++++---
 .../course/assessment/ui/_i18n/LocalStrings_de.properties | 4 ++--
 .../course/assessment/ui/_i18n/LocalStrings_en.properties | 2 +-
 3 files changed, 8 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
index ad44e24f1e1..54aa783d45b 100644
--- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
+++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeGuardController.java
@@ -151,11 +151,13 @@ public class AssessmentModeGuardController extends BasicController implements Ge
 	private ResourceGuard syncAssessmentMode(UserRequest ureq, TransientAssessmentMode mode) {
 		Date now = new Date();
 		Date beginWithLeadTime = mode.getBeginWithLeadTime();
-		if(!mode.isManual() && beginWithLeadTime.after(now)) {
+		Date endWithFollowupTime = mode.getEndWithFollowupTime();
+		//check if the mode must not be guarded anymore
+		if(mode.isManual() && (Status.end.equals(mode.getStatus()) || Status.none.equals(mode.getStatus()))) {
 			return null;
-		} else if(mode.isManual() && (Status.end.equals(mode.getStatus()) || Status.none.equals(mode.getStatus()))) {
+		} else if(!mode.isManual() && (beginWithLeadTime.after(now) || now.after(endWithFollowupTime))) {
 			return null;
-		}
+		} 
 		
 		ResourceGuard guard = guards.getGuardFor(mode);
 		if(guard == null) {
diff --git a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
index 69df7b97659..20c2e8229b2 100644
--- a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_de.properties
@@ -48,7 +48,7 @@ error.ip.range=Sie sind nicht im richtigen Netzwerk.
 error.safe.exam=Bitte benutzen Sie den Safe Exam Browser.
 error.begin.after.end=Das Beginn-Datum muss vor dem Ende-Datum liegen.
 error.group.missing=Sie m\u00FCssen mindestens eine Gruppe ausw\u00E4hlen.
-form.mode.description=Erstellen Sie ein neues Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
+form.mode.description=Erstellen Sie eine neue Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
 form.mode.title=Pr\u00FCfung "{0}"
 form.mode.title.add=Pr\u00FCfung
 groups=Gruppe
@@ -71,7 +71,7 @@ mode.safeexambrowser.hint=Safe Exam Browser Hinweis
 mode.start.element=Startbaustein
 mode.target=Teilnehmer
 modes.title=Pr\u00FCfungsmodus
-modes.description=Erstellen Sie ein neues Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
+modes.description=Erstellen Sie eine neue Pr\u00FCfungskonfiguration, um diesen Kurs oder Elemente aus diesem Kurs in einem gesch\u00FCtzten Modus mit eingeschr\u00E4nken M\u00F6glichkeiten zu betreiben.
 new.mode=Neue Pr\u00FCfung
 popup.chooseareas=$\:choose.areas
 popup.choosegroups=$\:choose.groups
diff --git a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
index e7376d9bd20..5db6fec786f 100644
--- a/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/ui/_i18n/LocalStrings_en.properties
@@ -14,7 +14,7 @@ confirm.start.title=Start exam
 confirm.status.change.assessment=The exam will be started.
 confirm.status.change.end=The exam will be ended.
 confirm.status.change.followup=The exam is in follow-up time.
-confirm.status.change.leadtime=The exam is in leading time.
+confirm.status.change.leadtime=The exam is in preparation time.
 confirm.status.change.title=The state of the exam setting will be changed.
 confirm.stop.text=Do you want to end now the exam?
 confirm.stop.title=End the exam
-- 
GitLab