From dae92084684e14eb2d73ccb11967b7bbf16e6682 Mon Sep 17 00:00:00 2001 From: srosse <stephane.rosse@frentix.com> Date: Wed, 26 Feb 2020 16:57:45 +0100 Subject: [PATCH] OO-4542: check daily recording of absences option in cockpit --- .../DailyLectureBlockOverviewController.java | 4 +++- .../ui/coach/DailyLectureBlockTableModel.java | 22 +++++++++++-------- 2 files changed, 16 insertions(+), 10 deletions(-) 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 4cdd66c82d3..683b20b975e 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 @@ -105,6 +105,7 @@ public class DailyLectureBlockOverviewController extends FormBasicController { private final Formatter formatter; private final boolean isAdministrativeUser; private final boolean authorizedAbsenceEnabled; + private final boolean dailyRecordingEnabled; private final Identity profiledIdentity; private final LecturesSecurityCallback secCallback; private final RollCallSecurityCallback rollCallSecCallback; @@ -134,6 +135,7 @@ public class DailyLectureBlockOverviewController extends FormBasicController { Roles roles = ureq.getUserSession().getRoles(); isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles); authorizedAbsenceEnabled = lectureModule.isAuthorizedAbsenceEnabled(); + dailyRecordingEnabled = lectureModule.getDailyRollCall() == DailyRollCall.daily; initForm(ureq); loadModel(); @@ -187,7 +189,7 @@ public class DailyLectureBlockOverviewController extends FormBasicController { toolsCol.setSortable(false); columnsModel.addFlexiColumnModel(toolsCol); - tableModel = new DailyLectureBlockTableModel(columnsModel, getLocale()); + tableModel = new DailyLectureBlockTableModel(columnsModel, getLocale(), dailyRecordingEnabled); tableEl = uifactory.addTableElement(getWindowControl(), "table", tableModel, 20, false, getTranslator(), formLayout); FlexiTableSortOptions sortOptions = new FlexiTableSortOptions(); sortOptions.setDefaultOrderBy(new SortKey(BlockCols.times.name(), true)); diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockTableModel.java b/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockTableModel.java index 1d702ceb754..b8b52f3ca39 100644 --- a/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockTableModel.java +++ b/src/main/java/org/olat/modules/lecture/ui/coach/DailyLectureBlockTableModel.java @@ -46,10 +46,12 @@ public class DailyLectureBlockTableModel extends DefaultFlexiTreeTableDataModel< implements SortableFlexiTableDataModel<DailyLectureBlockRow> { private final Locale locale; + private final boolean dailyRecordingEnabled; - public DailyLectureBlockTableModel(FlexiTableColumnModel columnModel, Locale locale) { + public DailyLectureBlockTableModel(FlexiTableColumnModel columnModel, Locale locale, boolean dailyRecordingEnabled) { super(columnModel); this.locale = locale; + this.dailyRecordingEnabled = dailyRecordingEnabled; } @Override @@ -114,7 +116,7 @@ implements SortableFlexiTableDataModel<DailyLectureBlockRow> { switch(BlockCols.values()[col]) { case times: return row.getLectureBlock(); case tools: return row.getTools(); - case details: return Boolean.TRUE; + case details: return Boolean.valueOf(dailyRecordingEnabled); default: return null; } } @@ -130,20 +132,22 @@ implements SortableFlexiTableDataModel<DailyLectureBlockRow> { case numOfAbsences: return row.getNumOfAbsences(); case warnings: case alerts: return row.getLectureBlockBlockStatistics(); - case details: { - Date end = row.getLectureBlock().getEndDate(); - Date start = row.getLectureBlock().getStartDate(); - Date now = new Date(); - return end.before(new Date()) || (row.isIamTeacher() && start.compareTo(now) <= 0); - } + case details: return allowDetails(row); case tools: return row.getTools(); default: return "ERROR"; } } + + private boolean allowDetails(DailyLectureBlockRow row) { + Date end = row.getLectureBlock().getEndDate(); + Date start = row.getLectureBlock().getStartDate(); + Date now = new Date(); + return end.before(new Date()) || (row.isIamTeacher() && start.compareTo(now) <= 0); + } @Override public DefaultFlexiTableDataModel<DailyLectureBlockRow> createCopyWithEmptyList() { - return new DailyLectureBlockTableModel(getTableColumnModel(), locale); + return new DailyLectureBlockTableModel(getTableColumnModel(), locale, dailyRecordingEnabled); } public enum BlockCols implements FlexiSortableColumnDef { -- GitLab