From a7d08e0108a730d42a84b64bc1b7c46688334f89 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Thu, 29 Aug 2019 15:44:52 +0200 Subject: [PATCH] OO-4150: more exact daily lectures --- .../ui/_i18n/LocalStrings_de.properties | 4 ++-- .../ui/_i18n/LocalStrings_en.properties | 4 ++-- .../DailyLectureBlockOverviewController.java | 5 +++++ .../ui/coach/DayChooserController.java | 4 ++++ .../ui/coach/LecturesCockpitController.java | 21 +++++++++++++++++-- 5 files changed, 32 insertions(+), 6 deletions(-) diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties index 2fabc696a21..4dbbc6cfd70 100644 --- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties @@ -81,8 +81,8 @@ cockpit.lectures=Lektionen cockpit.lectures.day.list=Sie haben keine Lektionen an diesem Tag. cockpit.pending.day={0} {1} ({2} Lektion) cockpit.pending.day.plural={0} {1} ({2} Lektion(en)) -cockpit.pending.days=Es wurden nicht abgeschlossene Lektionen gefunden. Bitte erfassen Sie die Absenzen auch f\u00FCr den n\u00E4chsten Tag\: -cockpit.pending.days.plural=Es wurden nicht abgeschlossene Lektionen gefunden. Bitte erfassen Sie die Absenzen auch f\u00FCr die n\u00E4chsten Tage\: +cockpit.pending.days=Es wurden nicht abgeschlossene Lektionen gefunden. Bitte erfassen Sie die Absenzen auch f\u00FCr den vergangenen Tag\: +cockpit.pending.days.plural=Es wurden nicht abgeschlossene Lektionen gefunden. Bitte erfassen Sie die Absenzen auch f\u00FCr die vergangenen Tage\: config.calculate.attendance.rate=Anwesenheitsquote berechnen config.override=Standard Konfiguration \u00FCberschreiben zulassen config.override.no=Nein diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties index 8d480472923..65dbaeffe7b 100644 --- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties @@ -81,8 +81,8 @@ cockpit.lectures=Lectures cockpit.lectures.day.list=You don't have any lectures this day. cockpit.pending.day={0} {1} ({2} lectures) cockpit.pending.day.plural={0} {1} ({2} lectures) -cockpit.pending.days=There is some lectures which are not already closed. Please record the absences for the following day\: -cockpit.pending.days.plural=There is some lectures which are not already closed. Please record the absences for the following days\: +cockpit.pending.days=There is some lectures which are not already closed. Please record the absences for the past day\: +cockpit.pending.days.plural=There is some lectures which are not already closed. Please record the absences for the past days\: config.calculate.attendance.rate=Calculate attendance rate config.override=Override default configuration config.override.no=No diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockOverviewController.java b/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockOverviewController.java index bf99deff1e3..fbc1e6ab1a3 100644 --- a/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockOverviewController.java +++ b/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockOverviewController.java @@ -146,6 +146,11 @@ public class DailyLectureBlockOverviewController extends FormBasicController { public void setCurrentDate(Date date) { this.currentDate = date; + if(closeButton != null) { + String title = translate("close.lecture.blocks.day", new String[] { formatter.formatDate(date) }); + closeButton.setI18nKey(title); + } + loadModel(); updateCanClose(); } diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/DayChooserController.java b/src/main/java/org/olat/modules/lecture/ui/coach/DayChooserController.java index c75d702efab..599fd5483f4 100644 --- a/src/main/java/org/olat/modules/lecture/ui/coach/DayChooserController.java +++ b/src/main/java/org/olat/modules/lecture/ui/coach/DayChooserController.java @@ -79,6 +79,10 @@ public class DayChooserController extends FormBasicController { } return date; } + + public void setDate(Date date) { + dateEl.setDate(date); + } @Override protected void doDispose() { diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesCockpitController.java b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesCockpitController.java index a4e24c5d37c..780b7b9620d 100644 --- a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesCockpitController.java +++ b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesCockpitController.java @@ -21,6 +21,8 @@ package org.olat.modules.lecture.ui.coach; import java.util.ArrayList; import java.util.Calendar; +import java.util.Collections; +import java.util.Comparator; import java.util.Date; import java.util.HashMap; import java.util.HashSet; @@ -156,10 +158,9 @@ public class LecturesCockpitController extends BasicController implements Activa fireEvent(ureq, event); } } else if(source == rollCallCtrl) { - if(event == Event.DONE_EVENT) { + if(event == Event.DONE_EVENT || event == Event.BACK_EVENT || event == Event.CANCELLED_EVENT) { backToDaily(); } - } else if(event == Event.BACK_EVENT) { backToDaily(); } @@ -243,6 +244,8 @@ public class LecturesCockpitController extends BasicController implements Activa Formatter formatter = Formatter.getInstance(getLocale()); List<LectureBlock> lectureBlocks = lectureService.getLectureBlocks(searchParams); + Collections.sort(lectureBlocks, new LectureBlockComparator()); + List<Link> pendingLinks = new ArrayList<>(); Set<String> deduplicate = new HashSet<>(); for(LectureBlock lectureBlock:lectureBlocks) { @@ -272,10 +275,24 @@ public class LecturesCockpitController extends BasicController implements Activa } private void doChangeCurrentDate(Date date) { + dayChooserCtrl.setDate(date); if(lectureBlocksCtrl != null) { lectureBlocksCtrl.setCurrentDate(date); } absencesListCtrl.setCurrentDate(date); updateCurrentDate(); } + + private static class LectureBlockComparator implements Comparator<LectureBlock> { + + @Override + public int compare(LectureBlock o1, LectureBlock o2) { + Date s1 = o1.getStartDate(); + Date s2 = o2.getStartDate(); + if(s1 == null && s2 == null) return 0; + if(s1 == null) return 1; + if(s2 == null) return -1; + return s1.compareTo(s2); + } + } } -- GitLab