diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java index 9a2c2ddcd94fcef00b2b1d4e9d0533f6ddc46f96..3f661662c29a33b4b2a4985b5e372991380ec75a 100644 --- a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java +++ b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java @@ -237,6 +237,29 @@ public class LectureBlockDAO { .append(" where block.entry.key=v.key and membership.identity.key=:teacherKey") .append(" )"); } + + //quick search in repository entry infos + Long quickId = null; + String quickRefs = null; + String quickText = null; + if(StringHelper.containsNonWhitespace(searchParams.getSearchString())) { + quickRefs = searchParams.getSearchString(); + sb.append(" and (v.externalId=:quickRef or "); + PersistenceHelper.appendFuzzyLike(sb, "v.externalRef", "quickText", dbInstance.getDbVendor()); + sb.append(" or v.softkey=:quickRef or "); + quickText = PersistenceHelper.makeFuzzyQueryString(quickRefs); + PersistenceHelper.appendFuzzyLike(sb, "v.displayname", "quickText", dbInstance.getDbVendor()); + if(StringHelper.isLong(quickRefs)) { + try { + quickId = Long.parseLong(quickRefs); + sb.append(" or v.key=:quickVKey or res.resId=:quickVKey"); + } catch (NumberFormatException e) { + // + } + } + sb.append(")"); + } + //TODO absences coach if(searchParams.getManager() != null || searchParams.getMasterCoach() != null) { sb.append(" and exists (select membership.key from repoentrytogroup as rel, bgroupmember as membership") @@ -263,6 +286,16 @@ public class LectureBlockDAO { query.setParameter("managerKey", searchParams.getMasterCoach().getKey()); } + if(quickId != null) { + query.setParameter("quickVKey", quickId); + } + if(quickRefs != null) { + query.setParameter("quickRef", quickRefs); + } + if(quickText != null) { + query.setParameter("quickText", quickText); + } + List<Object[]> rawObjects = query.getResultList(); return rawObjects.stream() .map(objects -> new LectureRepositoryEntryInfos((RepositoryEntry)objects[0], PersistenceHelper.extractPrimitiveLong(objects, 1)))