From a60660c520ca98ce8ec624a4785cb86cf2a3e019 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Fri, 13 Mar 2020 10:38:40 +0100
Subject: [PATCH] OO-4574: add sorting to lectures user search

---
 .../lecture/ui/coach/CurriculumElementsTableModel.java   | 9 +++++++--
 .../lecture/ui/coach/LecturesMembersTableModel.java      | 8 ++++++--
 .../ui/coach/RepositoryEntriesListTableModel.java        | 9 +++++++--
 3 files changed, 20 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/CurriculumElementsTableModel.java b/src/main/java/org/olat/modules/lecture/ui/coach/CurriculumElementsTableModel.java
index 5c63b652fbd..2993e4c177f 100644
--- a/src/main/java/org/olat/modules/lecture/ui/coach/CurriculumElementsTableModel.java
+++ b/src/main/java/org/olat/modules/lecture/ui/coach/CurriculumElementsTableModel.java
@@ -19,6 +19,7 @@
  */
 package org.olat.modules.lecture.ui.coach;
 
+import java.util.List;
 import java.util.Locale;
 
 import org.olat.core.commons.persistence.SortKey;
@@ -26,6 +27,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiSortableColumnDef;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate;
 import org.olat.modules.curriculum.CurriculumElement;
 import org.olat.modules.lecture.model.LectureCurriculumElementInfos;
 
@@ -46,8 +48,11 @@ implements SortableFlexiTableDataModel<LectureCurriculumElementInfos> {
 	}
 
 	@Override
-	public void sort(SortKey sortKey) {
-		//
+	public void sort(SortKey orderBy) {
+		if(orderBy != null) {
+			List<LectureCurriculumElementInfos> rows = new SortableFlexiTableModelDelegate<>(orderBy, this, locale).sort();
+			super.setObjects(rows);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesMembersTableModel.java b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesMembersTableModel.java
index 3a323419390..67c8dd95fb8 100644
--- a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesMembersTableModel.java
+++ b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesMembersTableModel.java
@@ -27,6 +27,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiSortableColumnDef;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate;
 import org.olat.user.propertyhandlers.UserPropertyHandler;
 
 /**
@@ -48,8 +49,11 @@ implements SortableFlexiTableDataModel<LecturesMemberRow> {
 	}
 	
 	@Override
-	public void sort(SortKey sortKey) {
-		//
+	public void sort(SortKey orderBy) {
+		if(orderBy != null) {
+			List<LecturesMemberRow> rows = new SortableFlexiTableModelDelegate<>(orderBy, this, locale).sort();
+			super.setObjects(rows);
+		}
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/RepositoryEntriesListTableModel.java b/src/main/java/org/olat/modules/lecture/ui/coach/RepositoryEntriesListTableModel.java
index 468158aa2d9..9f0e6ed9868 100644
--- a/src/main/java/org/olat/modules/lecture/ui/coach/RepositoryEntriesListTableModel.java
+++ b/src/main/java/org/olat/modules/lecture/ui/coach/RepositoryEntriesListTableModel.java
@@ -19,6 +19,7 @@
  */
 package org.olat.modules.lecture.ui.coach;
 
+import java.util.List;
 import java.util.Locale;
 
 import org.olat.core.commons.persistence.SortKey;
@@ -26,6 +27,7 @@ import org.olat.core.gui.components.form.flexible.impl.elements.table.DefaultFle
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiSortableColumnDef;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel;
 import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableDataModel;
+import org.olat.core.gui.components.form.flexible.impl.elements.table.SortableFlexiTableModelDelegate;
 import org.olat.modules.lecture.model.LectureRepositoryEntryInfos;
 import org.olat.repository.RepositoryEntry;
 import org.olat.repository.model.RepositoryEntryLifecycle;
@@ -47,8 +49,11 @@ implements SortableFlexiTableDataModel<LectureRepositoryEntryInfos>  {
 	}
 
 	@Override
-	public void sort(SortKey sortKey) {
-		//
+	public void sort(SortKey orderBy) {
+		if(orderBy != null) {
+			List<LectureRepositoryEntryInfos> rows = new SortableFlexiTableModelDelegate<>(orderBy, this, locale).sort();
+			super.setObjects(rows);
+		}
 	}
 	
 	@Override
-- 
GitLab