Index: lams_admin/.classpath =================================================================== diff -u -r6ea112b9b57636ff8cf428beaf3e91df321aa0d9 -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_admin/.classpath (.../.classpath) (revision 6ea112b9b57636ff8cf428beaf3e91df321aa0d9) +++ lams_admin/.classpath (.../.classpath) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -4,6 +4,7 @@ + Index: lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java =================================================================== diff -u -r7b9b1931a178ac9bac070531b53731383df0a187 -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java (.../AdminServiceProxy.java) (revision 7b9b1931a178ac9bac070531b53731383df0a187) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/service/AdminServiceProxy.java (.../AdminServiceProxy.java) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -26,6 +26,8 @@ import javax.servlet.ServletContext; import org.lamsfoundation.lams.integration.service.IIntegrationService; +import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.monitoring.service.IMonitoringService; import org.lamsfoundation.lams.statistics.service.IStatisticsService; import org.lamsfoundation.lams.themes.service.IThemeService; import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; @@ -52,6 +54,8 @@ private static IStatisticsService statisticsService; private static IThemeService themeService; private static Configuration configurationService; + private static ILessonService lessonService; + private static IMonitoringService monitoringService; public static final IUserManagementService getService(ServletContext servletContext) { if (manageService == null) { @@ -117,6 +121,20 @@ return configurationService; } + public static final ILessonService getLessonService(ServletContext servletContext) { + if (lessonService == null) { + lessonService = (ILessonService)getDomainService(servletContext, "lessonService"); + } + return lessonService; + } + + public static final IMonitoringService getMonitoringService(ServletContext servletContext) { + if (monitoringService == null) { + monitoringService = (IMonitoringService)getDomainService(servletContext, "monitoringService"); + } + return monitoringService; + } + private static Object getDomainService(ServletContext servletContext,String serviceName) { WebApplicationContext wac = WebApplicationContextUtils.getRequiredWebApplicationContext(servletContext); return wac.getBean(serviceName); Index: lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/CloneGroupAction.java =================================================================== diff -u --- lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/CloneGroupAction.java (revision 0) +++ lams_admin/src/java/org/lamsfoundation/lams/admin/web/action/CloneGroupAction.java (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,324 @@ +/**************************************************************** + * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) + * ============================================================= + * License Information: http://lamsfoundation.org/licensing/lams/2.0/ + * + * This program is free software; you can redistribute it and/or modify + * it under the terms of the GNU General Public License version 2.0 + * as published by the Free Software Foundation. + * + * This program is distributed in the hope that it will be useful, + * but WITHOUT ANY WARRANTY; without even the implied warranty of + * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + * GNU General Public License for more details. + * + * You should have received a copy of the GNU General Public License + * along with this program; if not, write to the Free Software + * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301 * USA + * + * http://www.gnu.org/licenses/gpl.txt + * **************************************************************** + */ + +/* $Id$ */ +package org.lamsfoundation.lams.admin.web.action; + +import java.util.ArrayList; +import java.util.Enumeration; +import java.util.HashMap; +import java.util.List; +import java.util.Vector; + +import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; + +import org.apache.commons.lang.StringUtils; +import org.apache.log4j.Logger; +import org.apache.struts.action.Action; +import org.apache.struts.action.ActionForm; +import org.apache.struts.action.ActionForward; +import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.admin.service.AdminServiceProxy; +import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.lesson.service.ILessonService; +import org.lamsfoundation.lams.monitoring.service.IMonitoringService; +import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.OrganisationState; +import org.lamsfoundation.lams.usermanagement.OrganisationType; +import org.lamsfoundation.lams.usermanagement.Role; +import org.lamsfoundation.lams.usermanagement.User; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException; +import org.lamsfoundation.lams.usermanagement.service.IUserManagementService; +import org.lamsfoundation.lams.util.WebUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; + +/** + * @author jliew + * + * @struts:action path="/clone" scope="request" validate="false" + * + * @struts:action-forward name="start" path=".clone-start" + * @struts:action-forward name="availableLessonsPart" path="/organisation/parts/availableLessons.jsp" + * @struts:action-forward name="selectStaffPart" path="/organisation/parts/selectStaff.jsp" + * @struts:action-forward name="selectLearnersPart" path="/organisation/parts/selectLearners.jsp" + * @struts:action-forward name="result" path=".clone-result" + */ +public class CloneGroupAction extends Action { + + private static final Logger log = Logger.getLogger(CloneGroupAction.class); + private static IUserManagementService userManagementService; + private static ILessonService lessonService; + private static IMonitoringService monitoringService; + + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws UserAccessDeniedException { + + if (!(request.isUserInRole(Role.SYSADMIN))) { + throw new UserAccessDeniedException(); + } + + List errors = new ArrayList(); + try { + userManagementService = AdminServiceProxy.getService(getServlet().getServletContext()); + + String method = WebUtil.readStrParam(request, "method", true); + if (StringUtils.equals(method, "getGroups")) { + return getGroups(mapping, form, request, response); + } else if (StringUtils.equals(method, "getSubgroups")) { + return getSubgroups(mapping, form, request, response); + } else if (StringUtils.equals(method, "availableLessons")) { + return availableLessons(mapping, form, request, response); + } else if (StringUtils.equals(method, "selectStaff")) { + return selectStaff(mapping, form, request, response); + } else if (StringUtils.equals(method, "selectLearners")) { + return selectLearners(mapping, form, request, response); + } else if (StringUtils.equals(method, "clone")) { + return clone(mapping, form, request, response); + } + + // default action + Integer groupId = WebUtil.readIntParam(request, "groupId", false); + request.setAttribute("org", userManagementService.findById(Organisation.class, groupId)); + } catch (Exception e) { + e.printStackTrace(); + errors.add(e.getMessage()); + } + request.setAttribute("errors", errors); + + return mapping.findForward("start"); + } + + // ajax + public ActionForward getGroups(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + response.addHeader("Cache-Control", "no-cache"); + + List groups = userManagementService.getOrganisationsByTypeAndStatus(OrganisationType.COURSE_TYPE, + OrganisationState.ACTIVE); + for (Object o : groups) { + Organisation org = (Organisation) o; + response.getWriter().println( + ""); + } + + return null; + } + + // ajax + public ActionForward getSubgroups(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + Integer groupId = WebUtil.readIntParam(request, "groupId", true); + + response.addHeader("Cache-Control", "no-cache"); + + if (groupId != null) { + HashMap properties = new HashMap(); + properties.put("parentOrganisation.organisationId", groupId); + properties.put("organisationType.organisationTypeId", OrganisationType.CLASS_TYPE); + properties.put("organisationState.organisationStateId", OrganisationState.ACTIVE); + + response.getWriter().println(""); + List groups = userManagementService.findByProperties(Organisation.class, properties); + for (Object o : groups) { + Organisation org = (Organisation) o; + response.getWriter().println( + ""); + } + } + + return null; + } + + // ajax + public ActionForward availableLessons(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + Integer sourceGroupId = WebUtil.readIntParam(request, "sourceGroupId", true); + + if (sourceGroupId != null) { + lessonService = AdminServiceProxy.getLessonService(getServlet().getServletContext()); + + List lessons = lessonService.getLessonsByGroup(sourceGroupId); + request.setAttribute("lessons", lessons); + } + + response.addHeader("Cache-Control", "no-cache"); + return mapping.findForward("availableLessonsPart"); + } + + // ajax + public ActionForward selectStaff(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + Integer groupId = WebUtil.readIntParam(request, "groupId", false); + + Vector monitors = userManagementService.getUsersFromOrganisationByRole(groupId, Role.MONITOR, false, true); + request.setAttribute("monitors", monitors); + + response.addHeader("Cache-Control", "no-cache"); + return mapping.findForward("selectStaffPart"); + } + + // ajax + public ActionForward selectLearners(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws Exception { + + Integer groupId = WebUtil.readIntParam(request, "groupId", false); + + Vector learners = userManagementService.getUsersFromOrganisationByRole(groupId, Role.LEARNER, false, true); + request.setAttribute("learners", learners); + + response.addHeader("Cache-Control", "no-cache"); + return mapping.findForward("selectLearnersPart"); + } + + public ActionForward clone(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) throws UserAccessDeniedException { + + Enumeration e = request.getParameterNames(); + while (e.hasMoreElements()) { + String name = (String) e.nextElement(); + log.debug(name + "=" + request.getParameter(name)); + } + + // Integer sourceGroupId = WebUtil.readIntParam(request, "sourceGroupId", false); + Integer groupId = WebUtil.readIntParam(request, "groupId", false); + String lessons = request.getParameter("lessons"); + String staff = request.getParameter("staff"); + String learners = request.getParameter("learners"); + Boolean addAllStaff = WebUtil.readBooleanParam(request, "addAllStaff"); + Boolean addAllLearners = WebUtil.readBooleanParam(request, "addAllLearners"); + + String[] lessonIds = new String[0], staffIds = new String[0], learnerIds = new String[0]; + if (StringUtils.isNotEmpty(lessons)) { + lessonIds = lessons.split(","); + } + if (StringUtils.isNotEmpty(staff)) { + staffIds = staff.split(","); + } + if (StringUtils.isNotEmpty(learners)) { + learnerIds = learners.split(","); + } + + monitoringService = AdminServiceProxy.getMonitoringService(getServlet().getServletContext()); + String error = null; + List errors = new ArrayList(); + + Organisation group = (Organisation) userManagementService.findById(Organisation.class, groupId); + if (group != null) { + for (String l : lessonIds) { + Lesson lesson = lessonService.getLesson(Long.valueOf(l)); + if (lesson != null) { + HttpSession ss = SessionManager.getSession(); + if (ss != null) { + UserDTO userDto = (UserDTO) ss.getAttribute(AttributeNames.USER); + if (userDto != null) { + if ((!addAllStaff && staffIds.length > 0) || addAllStaff) { + // create staff LessonClass + String staffGroupName = group.getName() + " Staff"; + List staffUsers = createStaffGroup(groupId, addAllStaff, staffIds); + + if ((!addAllLearners && learnerIds.length > 0) || addAllLearners) { + // create learner LessonClass for lesson + String learnerGroupName = group.getName() + " Learners"; + List learnerUsers = createLearnerGroup(groupId, addAllLearners, learnerIds); + + // init Lesson with user as creator + Lesson newLesson = monitoringService.initializeLesson(lesson.getLessonName(), + lesson.getLessonDescription(), lesson.getLearnerExportAvailable(), lesson + .getLearningDesign().getLearningDesignId(), groupId, userDto + .getUserID(), null, lesson.getLearnerPresenceAvailable(), lesson + .getLearnerImAvailable(), lesson.getLiveEditEnabled()); + + // save LessonClasses + newLesson = monitoringService.createLessonClassForLesson(newLesson.getLessonId(), + group, learnerGroupName, learnerUsers, staffGroupName, staffUsers, userDto + .getUserID()); + + // start Lessons + // TODO user-specified creator + monitoringService + .startLesson(newLesson.getLessonId(), Integer.valueOf(staffIds[0])); + } else { + error = "No learners specified, can't create any Lessons."; + } + } else { + error = "No staff specified, can't create any Lessons."; + } + } else { + error = "No UserDTO in session, can't create any Lessons."; + } + } + } else { + error = "Couldn't find Lesson based on id=" + l; + } + } + } else { + error = "Couldn't find Organisation based on id=" + groupId; + } + + if (error != null) { + log.error(error); + errors.add(error); + } + request.setAttribute("errors", errors); + request.setAttribute("org", group); + + return mapping.findForward("result"); + } + + private List createLearnerGroup(Integer groupId, Boolean addAllLearners, String[] learnerIds) { + List learnerUsers = new ArrayList(); + if (addAllLearners) { + Vector learnerVector = userManagementService.getUsersFromOrganisationByRole(groupId, Role.LEARNER, false, + true); + learnerUsers.addAll(learnerVector); + } + return learnerUsers; + } + + private List createStaffGroup(Integer groupId, Boolean addAllStaff, String[] staffIds) { + List staffUsers = new ArrayList(); + if (addAllStaff) { + Vector staffVector = userManagementService.getUsersFromOrganisationByRole(groupId, Role.MONITOR, false, + true); + staffUsers.addAll(staffVector); + } else { + User user = null; + for (String s : staffIds) { + user = (User) userManagementService.findById(User.class, s); + if (user != null) { + staffUsers.add(user); + } else { + log.error("Couldn't find User based on id=" + s); + } + } + } + return staffUsers; + } +} Index: lams_admin/web/WEB-INF/tiles/tiles-defs.xml =================================================================== diff -u -r7b9b1931a178ac9bac070531b53731383df0a187 -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 7b9b1931a178ac9bac070531b53731383df0a187) +++ lams_admin/web/WEB-INF/tiles/tiles-defs.xml (.../tiles-defs.xml) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -1,6 +1,24 @@ + + + + + + + + + + + + + + + + + + Index: lams_admin/web/organisation/cloneResult.jsp =================================================================== diff -u --- lams_admin/web/organisation/cloneResult.jsp (revision 0) +++ lams_admin/web/organisation/cloneResult.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,14 @@ +<%@ include file="/taglibs.jsp"%> + + + +

Clone Lessons for

+ + +

+ + + +

+
+ Index: lams_admin/web/organisation/cloneStart.jsp =================================================================== diff -u --- lams_admin/web/organisation/cloneStart.jsp (revision 0) +++ lams_admin/web/organisation/cloneStart.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,175 @@ +<%@ include file="/taglibs.jsp"%> + + + + + + + + + + + + +

Clone Lessons for

+ + +

+ + + +

+
+ +

Choose group to clone lessons from

+
+

+ Group: + +

+

+ Subgroup: + +

+

+ +

+
+ +
+ + "> + + + + + + + + + + +
\ No newline at end of file Index: lams_admin/web/organisation/list.jsp =================================================================== diff -u -rce3e782fd6844641f7298e09104f8d7554f073ff -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_admin/web/organisation/list.jsp (.../list.jsp) (revision ce3e782fd6844641f7298e09104f8d7554f073ff) +++ lams_admin/web/organisation/list.jsp (.../list.jsp) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -112,6 +112,11 @@

+ ';"> +
+

 

+ +
@@ -178,6 +183,11 @@

+
+ ';"> +
+

 

+ Index: lams_admin/web/organisation/parts/availableLessons.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/availableLessons.jsp (revision 0) +++ lams_admin/web/organisation/parts/availableLessons.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,26 @@ +<%@ include file="/taglibs.jsp"%> + + + There are no lessons to clone. + + + +

Check the box for each lesson to clone it.

+
    + +
  • " checked="checked" /> + "> + +
+ + +
" title="" style="display:none;"> +

+ + + (No lesson description) + +

+
+
+
\ No newline at end of file Index: lams_admin/web/organisation/parts/breadcrumbs.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/breadcrumbs.jsp (revision 0) +++ lams_admin/web/organisation/parts/breadcrumbs.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,15 @@ +<%@ include file="/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.usermanagement.OrganisationType" %> + +

+ : + <%= OrganisationType.CLASS_TYPE %> + + "> + + : + + "> + + +

\ No newline at end of file Index: lams_admin/web/organisation/parts/cloneGroupAttributes.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/cloneGroupAttributes.jsp (revision 0) +++ lams_admin/web/organisation/parts/cloneGroupAttributes.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,13 @@ +<%@ include file="/taglibs.jsp"%> +<%@ page import="org.lamsfoundation.lams.usermanagement.OrganisationType" %> + +
    + <%= OrganisationType.CLASS_TYPE %> + +
  • Parent group: + "> + +
  • Name: " > +
  • Code: " > +
  • Description: " > +
\ No newline at end of file Index: lams_admin/web/organisation/parts/cloneGroupMembers.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/cloneGroupMembers.jsp (revision 0) +++ lams_admin/web/organisation/parts/cloneGroupMembers.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,15 @@ +<%@ include file="/taglibs.jsp"%> + +

+ Clone monitors? +
+ Clone learners? +

+ +

+ Add existing users to this group +

+ + \ No newline at end of file Index: lams_admin/web/organisation/parts/selectLearners.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/selectLearners.jsp (revision 0) +++ lams_admin/web/organisation/parts/selectLearners.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,34 @@ +<%@ include file="/taglibs.jsp"%> + + +

This group has no learners! Please add some via the Add/Remove users screen.

+
+ + +

Check the box of each learner to add to each of the new lessons.

+ + + + + + + + + + + + + + + + +
UsernameNameEmail
+ " checked="checked" /> + + + + + + +
+
\ No newline at end of file Index: lams_admin/web/organisation/parts/selectStaff.jsp =================================================================== diff -u --- lams_admin/web/organisation/parts/selectStaff.jsp (revision 0) +++ lams_admin/web/organisation/parts/selectStaff.jsp (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -0,0 +1,34 @@ +<%@ include file="/taglibs.jsp"%> + + +

This group has no monitors! Please add some via the Add/Remove users screen.

+
+ + +

Check the box of each monitor to add as staff to each of the new lessons.

+ + + + + + + + + + + + + + + + +
UsernameNameEmail
+ " checked="checked" /> + + + + + + +
+
\ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -rb91354b37e25d51d98bf766f167a864f7053f326 -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision b91354b37e25d51d98bf766f167a864f7053f326) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -177,6 +177,14 @@ public List getLessonsByGroupAndUser(final Integer userId, final Integer orgId); /** + * Gets all non-removed lessons for a group. + * + * @param orgId + * @return + */ + public List getLessonsByGroup(final Integer orgId); + + /** * Get lessons based on learning designs where the original learning design has the given id. * * @param ldId Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -rb91354b37e25d51d98bf766f167a864f7053f326 -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision b91354b37e25d51d98bf766f167a864f7053f326) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -62,6 +62,8 @@ + " l " + "where l.learningDesign.originalLearningDesign.learningDesignId = ? " + "and l.learningDesign.copyTypeID != " + LearningDesign.COPY_TYPE_PREVIEW + " " + "and l.lessonStateId = " + Lesson.STARTED_STATE + " " + "and l.organisation.organisationId = ? " + " order by l.lessonName"; + private final static String LESSONS_BY_GROUP = "from " + Lesson.class.getName() + + " where organisation.organisationId=? and lessonStateId <= 6"; /** * Retrieves the Lesson. Used in instances where it cannot be lazy loaded so it forces an initialize. @@ -320,6 +322,10 @@ }); return dtos; } + + public List getLessonsByGroup(final Integer orgId) { + return this.getHibernateTemplate().find(LessonDAO.LESSONS_BY_GROUP, orgId); + } /** * @see org.lamsfoundation.lams.lesson.dao.ILessonDAO#getLessonsByOriginalLearningDesign(Integer) Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java =================================================================== diff -u -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -347,15 +347,23 @@ /** * - * Returns map of lessons in a group (including sub-groups) for a particular user + * Returns list of lessons in a group (including sub-groups) for a particular user * * @param userId * @param organisationId - * @return map of lesson beans + * @return list of lessons */ public abstract List getLessonsByGroupAndUser(Integer userId, Integer organisationId); /** + * Return list of organisation's non-removed lessons. + * + * @param organisationId + * @return list of lessons + */ + public List getLessonsByGroup(Integer organisationId); + + /** * Gets the learner's progress details for a particular lesson. Will return null if the user has not started the * lesson. * Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -rb3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb -r109a71a895d44a4bb8294b9b4c127e741cb2f772 --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision b3c3f6c6fc713cfa940a7f0f1924c2e8e4d601bb) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 109a71a895d44a4bb8294b9b4c127e741cb2f772) @@ -783,10 +783,14 @@ } public List getLessonsByGroupAndUser(Integer userId, Integer organisationId) { - TreeMap map = new TreeMap(); List list = lessonDAO.getLessonsByGroupAndUser(userId, organisationId); return list; } + + public List getLessonsByGroup(Integer organisationId) { + List list = lessonDAO.getLessonsByGroup(organisationId); + return list; + } /** * Gets the learner's progress details for a particular lesson. Will return null if the user has not started the