Index: lams_central/src/java/org/lamsfoundation/lams/web/FindUserLessonsAction.java =================================================================== diff -u -r5992a4450fd2767ea552a5d6de5f5b71dd1075bf -re5c9d6208cedb95477b449363a244ded3efb753c --- lams_central/src/java/org/lamsfoundation/lams/web/FindUserLessonsAction.java (.../FindUserLessonsAction.java) (revision 5992a4450fd2767ea552a5d6de5f5b71dd1075bf) +++ lams_central/src/java/org/lamsfoundation/lams/web/FindUserLessonsAction.java (.../FindUserLessonsAction.java) (revision e5c9d6208cedb95477b449363a244ded3efb753c) @@ -16,8 +16,8 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.actions.DispatchAction; -import org.lamsfoundation.lams.index.IndexLessonBean; import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.lesson.Lesson; import org.lamsfoundation.lams.lesson.service.ILessonService; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.User; @@ -73,24 +73,14 @@ Set users = getUserSet(query, group); - Map> userLessonsMap = new HashMap>(); + Map> userLessonsMap = new HashMap>(); for (User user : users) { - Set lessons = userLessonsMap.get(user); - - boolean addLessonsToMap = false; - if (lessons == null) { - addLessonsToMap = true; - lessons = new HashSet(); - } - // get all lessons for 'user' in 'group' and add to lessons map - lessons.addAll(lessonService.getLessonsByGroupAndUser(user.getUserId(), group - .getOrganisationId()).values()); - - if (addLessonsToMap) { - userLessonsMap.put(user, lessons); - } + List lessons = (lessonService.getLessonsByGroupAndUser(user.getUserId(), group + .getOrganisationId())); + + userLessonsMap.put(user, lessons); } request.setAttribute("userLessonsMap", userLessonsMap); Index: lams_central/web/findUserLessons.jsp =================================================================== diff -u -r9f625d1d3925aab8738ae9e64b736cd40a47b015 -re5c9d6208cedb95477b449363a244ded3efb753c --- lams_central/web/findUserLessons.jsp (.../findUserLessons.jsp) (revision 9f625d1d3925aab8738ae9e64b736cd40a47b015) +++ lams_central/web/findUserLessons.jsp (.../findUserLessons.jsp) (revision e5c9d6208cedb95477b449363a244ded3efb753c) @@ -86,8 +86,8 @@ test="${user.value ne null and not empty user.value}"> Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -r489844fa0b73c8900fbe568e00962880b1f23904 -re5c9d6208cedb95477b449363a244ded3efb753c --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 489844fa0b73c8900fbe568e00962880b1f23904) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision e5c9d6208cedb95477b449363a244ded3efb753c) @@ -267,20 +267,15 @@ - - - - - - SELECT l.lesson_id, l.name, l.description, l.lesson_state_id, lp.lesson_completed_flag - FROM (lams_lesson l, lams_learning_design ld, lams_group g, lams_user_group ug, lams_organisation lo) - LEFT JOIN lams_learner_progress lp ON lp.user_id = ug.user_id AND lp.lesson_id = l.lesson_id - WHERE l.learning_design_id = ld.learning_design_id + + SELECT DISTINCT {lesson.*} + FROM (lams_lesson {lesson}, lams_learning_design ld, lams_group g, lams_user_group ug, lams_organisation lo) + WHERE {lesson}.learning_design_id = ld.learning_design_id AND ld.copy_type_id != 3 - AND (l.organisation_id = lo.organisation_id) + AND ({lesson}.organisation_id = lo.organisation_id) AND (lo.organisation_id = :orgId or lo.parent_organisation_id = :orgId) - AND l.class_grouping_id = g.grouping_id - AND l.lesson_state_id != 7 + AND {lesson}.class_grouping_id = g.grouping_id + AND {lesson}.lesson_state_id != 7 AND ug.group_id = g.group_id AND ug.user_id = :userId Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java =================================================================== diff -u -rb91354b37e25d51d98bf766f167a864f7053f326 -re5c9d6208cedb95477b449363a244ded3efb753c --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision b91354b37e25d51d98bf766f167a864f7053f326) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision e5c9d6208cedb95477b449363a244ded3efb753c) @@ -331,7 +331,7 @@ * @param organisationId * @return map of lesson beans */ - public abstract Map getLessonsByGroupAndUser(Integer userId, Integer organisationId); + public abstract List getLessonsByGroupAndUser(Integer userId, Integer organisationId); /** * Gets the learner's progress details for a particular lesson. Will return null if the user has not started the Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -rb91354b37e25d51d98bf766f167a864f7053f326 -re5c9d6208cedb95477b449363a244ded3efb753c --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision b91354b37e25d51d98bf766f167a864f7053f326) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision e5c9d6208cedb95477b449363a244ded3efb753c) @@ -745,24 +745,10 @@ return map; } - public Map getLessonsByGroupAndUser(Integer userId, Integer organisationId) { + public List getLessonsByGroupAndUser(Integer userId, Integer organisationId) { TreeMap map = new TreeMap(); - List list = lessonDAO.getLessonsByGroupAndUser(userId, organisationId); - if (list != null) { - Iterator iterator = list.iterator(); - while (iterator.hasNext()) { - Object[] tuple = (Object[]) iterator.next(); - Long lessonId = (Long) tuple[0]; - String lessonName = (String) tuple[1]; - String lessonDescription = (String) tuple[2]; - Integer lessonState = (Integer) tuple[3]; - Boolean lessonCompleted = (Boolean) tuple[4]; - IndexLessonBean bean = new IndexLessonBean(lessonId, lessonName, lessonDescription, lessonState, - (lessonCompleted == null ? false : lessonCompleted.booleanValue())); - map.put(new Long(lessonId), bean); - } - } - return map; + List list = lessonDAO.getLessonsByGroupAndUser(userId, organisationId); + return list; } /**