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 43210bb610f8cacb275b5a80dbbae81048430f88..14e20cdf7c98d9e18b2885659e0b4ea9f6657d3f 100644 --- a/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java +++ b/src/main/java/org/olat/course/assessment/manager/AssessmentModeCoordinationServiceImpl.java @@ -204,15 +204,21 @@ public class AssessmentModeCoordinationServiceImpl implements AssessmentModeCoor private AssessmentMode sendEvent(AssessmentMode mode, Date now, boolean forceStatus) { if(mode.getBeginWithLeadTime().compareTo(now) > 0) { //none - mode = ensureStatusOfMode(mode, Status.none); - sendEvent(AssessmentModeNotificationEvent.BEFORE, mode, - assessmentModeManager.getAssessedIdentityKeys(mode)); + Status status = mode.getStatus(); + if(status != Status.leadtime && status != Status.assessment && status != Status.followup && status != Status.end) { + mode = ensureStatusOfMode(mode, Status.none); + sendEvent(AssessmentModeNotificationEvent.BEFORE, mode, + assessmentModeManager.getAssessedIdentityKeys(mode)); + } } else if(mode.getBeginWithLeadTime().compareTo(now) <= 0 && mode.getBegin().compareTo(now) > 0 && mode.getBeginWithLeadTime().compareTo(mode.getBegin()) != 0) { //leading time - mode = ensureStatusOfMode(mode, Status.leadtime); - sendEvent(AssessmentModeNotificationEvent.LEADTIME, mode, - assessmentModeManager.getAssessedIdentityKeys(mode)); + Status status = mode.getStatus(); + if(status != Status.assessment && status != Status.followup && status != Status.end) { + mode = ensureStatusOfMode(mode, Status.leadtime); + sendEvent(AssessmentModeNotificationEvent.LEADTIME, mode, + assessmentModeManager.getAssessedIdentityKeys(mode)); + } } else if(mode.isManualBeginEnd() && !forceStatus) { //what to do in manual mode if(mode.getStatus() == Status.followup) { diff --git a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java index d0b161837c9f545b0d9885e9d9b08a0ff351ab17..f5fc2bc77e1da096f6989c0acf062b74874e5f1a 100644 --- a/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java +++ b/src/main/java/org/olat/course/assessment/ui/AssessmentModeEditController.java @@ -468,23 +468,27 @@ public class AssessmentModeEditController extends FormBasicController { int leadTime = leadTimeEl.getIntValue(); Status currentStatus = assessmentMode.getStatus(); - Status nextStatus = modeCoordinationService.evaluateStatus(begin, leadTime, end, followupTime); - - if(currentStatus == nextStatus) { - save(ureq, true); + if(startModeEl.isOneSelected() && startModeEl.isSelected(1)) { + //manual start don't change the status of the assessment + save(ureq, false); } else { - String title = translate("confirm.status.change.title"); - - String text; - switch(nextStatus) { - case none: text = translate("confirm.status.change.none"); break; - case leadtime: text = translate("confirm.status.change.leadtime"); break; - case assessment: text = translate("confirm.status.change.assessment"); break; - case followup: text = translate("confirm.status.change.followup"); break; - case end: text = translate("confirm.status.change.end"); break; - default: text = "ERROR"; + Status nextStatus = modeCoordinationService.evaluateStatus(begin, leadTime, end, followupTime); + if(currentStatus == nextStatus) { + save(ureq, true); + } else { + String title = translate("confirm.status.change.title"); + + String text; + switch(nextStatus) { + case none: text = translate("confirm.status.change.none"); break; + case leadtime: text = translate("confirm.status.change.leadtime"); break; + case assessment: text = translate("confirm.status.change.assessment"); break; + case followup: text = translate("confirm.status.change.followup"); break; + case end: text = translate("confirm.status.change.end"); break; + default: text = "ERROR"; + } + confirmCtrl = activateOkCancelDialog(ureq, title, text, confirmCtrl); } - confirmCtrl = activateOkCancelDialog(ureq, title, text, confirmCtrl); } } 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 4d2bc9f616765cb022a0345770173a43909b54c9..b7fbaab1213235c04baedb7e798bd76829415be0 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 @@ -16,7 +16,7 @@ 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 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.text=Do you want to end the exam now? confirm.stop.title=End the exam current.mode=Scheduled exam current.mode.continue=Back to OpenOLAT