diff --git a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java index dafb0d94157a10379736d4bf769c43b129728445..7be7a27b10dbc7547605bfc2bebbcec7897a1540 100644 --- a/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java +++ b/src/main/java/org/olat/repository/manager/RepositoryEntryMyCourseQueries.java @@ -432,7 +432,14 @@ public class RepositoryEntryMyCourseQueries { return needIdentityKey; } - + /** + * Append additional informations and values to the select part of the query + * needed by the order by. + * + * @param params + * @param sb + * @return + */ private boolean appendOrderByInSelect(SearchMyRepositoryEntryViewParams params, StringBuilder sb) { boolean needIdentityKey = false; OrderBy orderBy = params.getOrderBy(); @@ -493,7 +500,12 @@ public class RepositoryEntryMyCourseQueries { appendAsc(sb, asc).append(" nulls last, lower(v.displayname) asc"); break; case title: - sb.append(" order by lower(v.displayname)"); + //life cycle always sorted from the newer to the older. + if(asc) { + sb.append(" order by lower(v.displayname) asc, lifecycle.validFrom desc nulls last, lower(v.externalRef) asc nulls last"); + } else { + sb.append(" order by lower(v.displayname) desc, lifecycle.validFrom desc nulls last, lower(v.externalRef) desc nulls last"); + } appendAsc(sb, asc); break; case lifecycle: diff --git a/src/test/java/org/olat/repository/manager/RepositoryEntryAuthorQueriesTest.java b/src/test/java/org/olat/repository/manager/RepositoryEntryAuthorQueriesTest.java index 0d04ac51404a3d514b1b90ab355faa385044c3a0..8788bde88c45cf372ae029de33b1bb63e2ff3121 100644 --- a/src/test/java/org/olat/repository/manager/RepositoryEntryAuthorQueriesTest.java +++ b/src/test/java/org/olat/repository/manager/RepositoryEntryAuthorQueriesTest.java @@ -35,6 +35,9 @@ import org.olat.test.OlatTestCase; import org.springframework.beans.factory.annotation.Autowired; /** + * + * Check if the query with the sort argument are "playable" but don't + * check if the order by goes in the right direction. * * Initial date: 04.06.2014<br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com diff --git a/src/test/java/org/olat/repository/manager/RepositoryEntryMyCourseQueriesTest.java b/src/test/java/org/olat/repository/manager/RepositoryEntryMyCourseQueriesTest.java index 6c8eea49383b94651dbe61fa08f04f9480c3cea8..ea91b3d13ab4c3fd2e8f48b8d3b500df995a2569 100644 --- a/src/test/java/org/olat/repository/manager/RepositoryEntryMyCourseQueriesTest.java +++ b/src/test/java/org/olat/repository/manager/RepositoryEntryMyCourseQueriesTest.java @@ -35,6 +35,8 @@ import org.olat.test.OlatTestCase; import org.springframework.beans.factory.annotation.Autowired; /** + * Check if the query with the sort argument are "playable" but don't + * check if the order by goes in the right direction. * * Initial date: 04.06.2014<br> * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com