From a6649c08fb96044f74bc4cda4633e8281a9090f9 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Thu, 12 Feb 2015 15:10:43 +0100 Subject: [PATCH] OO-1349: don't reset the state of an assessment in manual mode... --- ...AssessmentModeCoordinationServiceImpl.java | 18 ++++++---- .../ui/AssessmentModeEditController.java | 34 +++++++++++-------- .../ui/_i18n/LocalStrings_en.properties | 2 +- 3 files changed, 32 insertions(+), 22 deletions(-) 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 43210bb610f..14e20cdf7c9 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 d0b161837c9..f5fc2bc77e1 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 4d2bc9f6167..b7fbaab1213 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 -- GitLab