Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java,v diff -u -r1.6 -r1.7 --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java 13 Nov 2008 05:19:30 -0000 1.6 +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonJoinServlet.java 24 Mar 2009 04:18:04 -0000 1.7 @@ -285,7 +285,7 @@ ownerUserId = ld.getUser().getUserId(); learnerGroupName = org.getName() + " Learners"; staffGroupName = org.getName() + " Staff"; - Vector userDTOs = userService.getUsersFromOrganisationByRole(orgId, Role.MONITOR, false); + Vector userDTOs = userService.getUsersFromOrganisationByRole(orgId, Role.MONITOR, false, false); staffList = getUsersFromDTOs(userDTOs); } Lesson lesson = monitoringService.initializeLesson(lessonName, lessonDescription, learnerExportAvailable, Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java,v diff -u -r1.51 -r1.52 --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 16 Mar 2009 05:56:01 -0000 1.51 +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java 24 Mar 2009 04:18:04 -0000 1.52 @@ -118,13 +118,13 @@ */ public void setAuthoringService(IAuthoringService authoringService) { this.authoringService = authoringService; - } + } /** * @param repositoryService The repositoryService to set. */ public void setRepositoryService(IRepositoryService repositoryService) { this.repositoryService = repositoryService; - } + } /** * @param learningDesignDAO The learningDesignDAO to set. */ @@ -1458,7 +1458,7 @@ */ public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName) { - return (Vector) userMgmtService.getUsersFromOrganisationByRole(organisationID, roleName, true); + return (Vector) userMgmtService.getUsersFromOrganisationByRole(organisationID, roleName, true, false); } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java,v diff -u -r1.59 -r1.60 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 12 Nov 2008 01:03:15 -0000 1.59 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java 24 Mar 2009 04:18:05 -0000 1.60 @@ -218,9 +218,10 @@ * @param organisationID * @param roleName * @param isFlashCall + * @param getUser * @return UserFlashDTO objects (in a Vector to suit WDDX) */ - public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean isFlashCall); + public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean isFlashCall, boolean getUser); public Organisation getRootOrganisation(); Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java,v diff -u -r1.98 -r1.99 --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 14 Nov 2008 07:02:05 -0000 1.98 +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java 24 Mar 2009 04:18:05 -0000 1.99 @@ -366,10 +366,12 @@ * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#getUsersFromOrganisationByRole(java.lang.Integer, * java.lang.String) */ - public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean isFlashCall) { + public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName, boolean isFlashCall, boolean getUser) { Vector users = null; if (isFlashCall) users = new Vector(); + else if(getUser) + users = new Vector(); else users = new Vector(); @@ -385,10 +387,12 @@ UserOrganisationRole userOrganisationRole = (UserOrganisationRole) userOrganisationRoleIterator .next(); if (userOrganisationRole.getRole().getName().equals(roleName)) - if (isFlashCall) - users.add(userOrganisation.getUser().getUserFlashDTO()); + if (isFlashCall && !getUser) + users.add(userOrganisation.getUser().getUserFlashDTO()); + else if(getUser) + users.add(userOrganisation.getUser()); else - users.add(userOrganisation.getUser().getUserDTO()); + users.add(userOrganisation.getUser().getUserDTO()); } } } @@ -534,7 +538,7 @@ // get course managers and give them staff role in this new // class Vector managers = getUsersFromOrganisationByRole(pOrg.getOrganisationId(), Role.GROUP_MANAGER, - false); + false, false); for (UserDTO m : managers) { User user = (User) findById(User.class, m.getUserID()); UserOrganisation uo = new UserOrganisation(user, organisation); Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== RCS file: /usr/local/cvsroot/lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java,v diff -u -r1.148 -r1.149 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 12 Mar 2009 01:08:58 -0000 1.148 +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java 24 Mar 2009 04:18:04 -0000 1.149 @@ -81,10 +81,12 @@ import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.service.ILamsCoreToolService; import org.lamsfoundation.lams.usermanagement.Organisation; +import org.lamsfoundation.lams.usermanagement.Role; import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.UserOrganisation; import org.lamsfoundation.lams.usermanagement.Workspace; import org.lamsfoundation.lams.usermanagement.WorkspaceFolder; +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.usermanagement.util.LastNameAlphabeticComparator; @@ -518,29 +520,35 @@ try { Hashtable table = (Hashtable) WDDXProcessor.deserialize(lessonPacket); + // todo: convert:data type: Integer orgId = WDDXProcessor.convertToInteger(MonitoringConstants.KEY_ORGANISATION_ID, table .get(MonitoringConstants.KEY_ORGANISATION_ID)); long lessonId = WDDXProcessor.convertToLong(MonitoringConstants.KEY_LESSON_ID, table.get(MonitoringConstants.KEY_LESSON_ID)).longValue(); + // get leaner group info Hashtable learnerMap = (Hashtable) table.get(MonitoringConstants.KEY_LEARNER); List learners = (List) learnerMap.get(MonitoringConstants.KEY_USERS); String learnerGroupName = WDDXProcessor.convertToString(learnerMap, MonitoringConstants.KEY_GROUP_NAME); + // get staff group info Hashtable staffMap = (Hashtable) table.get(MonitoringConstants.KEY_STAFF); List staffs = (List) staffMap.get(MonitoringConstants.KEY_USERS); String staffGroupName = WDDXProcessor.convertToString(staffMap, MonitoringConstants.KEY_GROUP_NAME); - if (learners == null) { - learners = new LinkedList(); - } - if (staffs == null) { - staffs = new LinkedList(); - } - Organisation organisation = (Organisation) baseDAO.find(Organisation.class, orgId); User creator = (User) baseDAO.find(User.class, creatorUserId); + + if (learners == null || learners.size() <= 0) { + learners = new LinkedList(); + Vector learnersList = userManagementService.getUsersFromOrganisationByRole(orgId, Role.LEARNER, false, true); + learners.addAll(learnersList); + } + + if (staffs == null || staffs.size() <= 0) { + staffs = new LinkedList(); + } // create the lesson class - add all the users in this organisation // to the lesson class @@ -549,8 +557,15 @@ Iterator iter = learners.iterator(); while (iter.hasNext()) { try { - int id = ((Double) iter.next()).intValue(); - learnerList.add((User) baseDAO.find(User.class, id)); + Object user = iter.next(); + + if(user instanceof User) + learnerList.add((User) user); + else { + int id = ((Double) user).intValue(); + learnerList.add((User) baseDAO.find(User.class, id)); + } + } catch (Exception e) { MonitoringService.log.error("Error parsing learner ID from " + lessonPacket); continue; @@ -560,6 +575,7 @@ List staffList = new LinkedList(); staffList.add(creator); iter = staffs.iterator(); + while (iter.hasNext()) { try { int id = ((Double) iter.next()).intValue();