From c0260ae39f4f71bc20f34aa0f9dfa0dc67016d91 Mon Sep 17 00:00:00 2001 From: aboeckle <alexander.boeckle@frentix.com> Date: Mon, 25 May 2020 08:48:23 +0200 Subject: [PATCH] OO-4550 Expose results fix --- .../iq/QTI21AssessmentRunController.java | 149 +++++++++--------- 1 file changed, 75 insertions(+), 74 deletions(-) diff --git a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java index c013ebe1f70..bbd2c04ad4a 100644 --- a/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java +++ b/src/main/java/org/olat/course/nodes/iq/QTI21AssessmentRunController.java @@ -447,62 +447,87 @@ public class QTI21AssessmentRunController extends BasicController implements Gen private void exposeVisiblityPeriod(boolean passed) { String showResultsActive = config.getStringValue(IQEditController.CONFIG_KEY_DATE_DEPENDENT_RESULTS); - Date startDate; - Date endDate; - Date currentDate = new Date(); - - switch (showResultsActive) { - - case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_ALWAYS: - mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); - break; - case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_DIFFERENT: - if (passed) { - startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_PASSED_START_DATE); - endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_PASSED_END_DATE); - - if(startDate != null && currentDate.before(startDate)) { - Formatter formatter = Formatter.getInstance(getLocale()); - String visibilityStartDate = formatter.formatDate(startDate); - String visibilityEndDate = "-"; - if(endDate != null && currentDate.before(endDate)) { - visibilityEndDate = formatter.formatDate(endDate); - } else if(endDate != null && currentDate.after(endDate)) { - String visibilityPeriod = translate("showResults.visibility.past"); + if (showResultsActive != null) { + Date startDate; + Date endDate; + Date currentDate = new Date(); + + switch (showResultsActive) { + case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_ALWAYS: + mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); + break; + case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_DIFFERENT: + if (passed) { + startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_PASSED_START_DATE); + endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_PASSED_END_DATE); + + if(startDate != null && currentDate.before(startDate)) { + Formatter formatter = Formatter.getInstance(getLocale()); + String visibilityStartDate = formatter.formatDate(startDate); + String visibilityEndDate = "-"; + if(endDate != null && currentDate.before(endDate)) { + visibilityEndDate = formatter.formatDate(endDate); + } else if(endDate != null && currentDate.after(endDate)) { + String visibilityPeriod = translate("showResults.visibility.past"); + mainVC.contextPut("visibilityPeriod", visibilityPeriod); + break; + } + String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); + mainVC.contextPut("visibilityPeriod", visibilityPeriod); + break; + } + } else { + startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_START_DATE); + endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_END_DATE); + + if(startDate != null && currentDate.before(startDate)) { + Formatter formatter = Formatter.getInstance(getLocale()); + String visibilityStartDate = formatter.formatDate(startDate); + String visibilityEndDate = "-"; + if(endDate != null && currentDate.before(endDate)) { + visibilityEndDate = formatter.formatDate(endDate); + } else if(endDate != null && currentDate.after(endDate)) { + String visibilityPeriod = translate("showResults.visibility.past"); + mainVC.contextPut("visibilityPeriod", visibilityPeriod); + break; + } + String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); mainVC.contextPut("visibilityPeriod", visibilityPeriod); break; } - String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); - mainVC.contextPut("visibilityPeriod", visibilityPeriod); - break; } - } else { - startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_START_DATE); - endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_END_DATE); - - if(startDate != null && currentDate.before(startDate)) { - Formatter formatter = Formatter.getInstance(getLocale()); - String visibilityStartDate = formatter.formatDate(startDate); - String visibilityEndDate = "-"; - if(endDate != null && currentDate.before(endDate)) { - visibilityEndDate = formatter.formatDate(endDate); - } else if(endDate != null && currentDate.after(endDate)) { - String visibilityPeriod = translate("showResults.visibility.past"); + mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); + break; + case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_FAILED_ONLY: + if (!passed) { + startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_START_DATE); + endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_END_DATE); + + if(startDate != null && currentDate.before(startDate)) { + Formatter formatter = Formatter.getInstance(getLocale()); + String visibilityStartDate = formatter.formatDate(startDate); + String visibilityEndDate = "-"; + if(endDate != null && currentDate.before(endDate)) { + visibilityEndDate = formatter.formatDate(endDate); + } else if(endDate != null && currentDate.after(endDate)) { + String visibilityPeriod = translate("showResults.visibility.past"); + mainVC.contextPut("visibilityPeriod", visibilityPeriod); + break; + } + String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); mainVC.contextPut("visibilityPeriod", visibilityPeriod); break; } - String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); - mainVC.contextPut("visibilityPeriod", visibilityPeriod); + } else { + mainVC.contextPut("showResultsOnHomePage", Boolean.valueOf(false)); break; } - } - mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); - break; - case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_FAILED_ONLY: - if (!passed) { - startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_START_DATE); - endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_FAILED_END_DATE); - + mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); + break; + case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_SAME: + startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_START_DATE); + endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_END_DATE); + if(startDate != null && currentDate.before(startDate)) { Formatter formatter = Formatter.getInstance(getLocale()); String visibilityStartDate = formatter.formatDate(startDate); @@ -518,36 +543,12 @@ public class QTI21AssessmentRunController extends BasicController implements Gen mainVC.contextPut("visibilityPeriod", visibilityPeriod); break; } - } else { - mainVC.contextPut("showResultsOnHomePage", Boolean.valueOf(false)); + mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); break; - } - mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); - break; - case IQEditController.CONFIG_VALUE_DATE_DEPENDENT_RESULT_SAME: - startDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_START_DATE); - endDate = config.getDateValue(IQEditController.CONFIG_KEY_RESULTS_END_DATE); - - if(startDate != null && currentDate.before(startDate)) { - Formatter formatter = Formatter.getInstance(getLocale()); - String visibilityStartDate = formatter.formatDate(startDate); - String visibilityEndDate = "-"; - if(endDate != null && currentDate.before(endDate)) { - visibilityEndDate = formatter.formatDate(endDate); - } else if(endDate != null && currentDate.after(endDate)) { - String visibilityPeriod = translate("showResults.visibility.past"); - mainVC.contextPut("visibilityPeriod", visibilityPeriod); - break; - } - String visibilityPeriod = translate("showResults.visibility", new String[] { visibilityStartDate, visibilityEndDate }); - mainVC.contextPut("visibilityPeriod", visibilityPeriod); + default: + mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); break; } - mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); - break; - default: - mainVC.contextPut("visibilityPeriod", translate("showResults.visibility.future")); - break; } } -- GitLab