Index: lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java,v diff -u -r1.3.2.2 -r1.3.2.3 --- lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 9 Jan 2008 05:51:40 -0000 1.3.2.2 +++ lams_central/src/java/org/lamsfoundation/lams/util/CentralConstants.java 22 Jan 2008 04:10:37 -0000 1.3.2.3 @@ -54,6 +54,8 @@ public static final String PARAM_LANG = "lang"; public static final String PARAM_METHOD = "method"; + + public static final String PARAM_PROGRESS_USER = "progressUser"; public static final String METHOD_START = "start"; Index: lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java,v diff -u -r1.2.4.2 -r1.2.4.3 --- lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java 9 Jan 2008 05:51:41 -0000 1.2.4.2 +++ lams_central/src/java/org/lamsfoundation/lams/webservice/xml/LessonManagerServlet.java 22 Jan 2008 04:10:38 -0000 1.2.4.3 @@ -123,6 +123,7 @@ String lang = request.getParameter(CentralConstants.PARAM_LANG); String method = request.getParameter(CentralConstants.PARAM_METHOD); String filePath = request.getParameter(CentralConstants.PARAM_FILEPATH); + String progressUser = request.getParameter(CentralConstants.PARAM_PROGRESS_USER); Long ldId = null; Long lsId = null; @@ -178,7 +179,7 @@ else if (method.equals(CentralConstants.METHOD_SINGLE_STUDENT_PROGRESS)) { lsId = new Long(lsIdStr); element = getSingleStudentProgress(document, serverId, datetime, hashValue, - username, lsId, courseId); + username, lsId, courseId, progressUser); }else { @@ -390,7 +391,7 @@ } public Element getSingleStudentProgress(Document document, String serverId, String datetime, - String hashValue, String username, long lsId, String courseID) + String hashValue, String username, long lsId, String courseID, String progressUser) throws RemoteException { try { @@ -413,32 +414,38 @@ int activitiesTotal = lesson.getLearningDesign().getActivities().size(); Iterator iterator = lesson.getLearnerProgresses().iterator(); - while(iterator.hasNext()){ - LearnerProgress learnProg = (LearnerProgress)iterator.next(); - LearnerProgressDTO learnerProgress = learnProg.getLearnerProgressData(); - - if (learnerProgress.getUserName().equals(prefix + "_" + userMap.getExtUsername())) - { - Element learnerProgElem = document.createElement(CentralConstants.ELEM_LEARNER_PROGRESS); - - int completedActivities = learnerProgress.getCompletedActivities().length; - int attemptedActivities = learnerProgress.getAttemptedActivities().length; - - if(learnerProgElem.getNodeType()== Node.ELEMENT_NODE) + ExtUserUseridMap progressUserMap = integrationService.getExistingExtUserUseridMap( + serverMap, progressUser); + + if (progressUserMap!=null) + { + while(iterator.hasNext()){ + LearnerProgress learnProg = (LearnerProgress)iterator.next(); + LearnerProgressDTO learnerProgress = learnProg.getLearnerProgressData(); + + if (learnerProgress.getUserName().equals(prefix + "_" + progressUserMap.getExtUsername())) { - learnerProgElem.setAttribute(CentralConstants.ATTR_LESSON_COMPLETE , "" + learnerProgress.getLessonComplete()); - learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITY_COUNT , "" + activitiesTotal); - learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITIES_COMPLETED , "" + completedActivities); - learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITIES_ATTEMPTED , "" + attemptedActivities); - //learnerProgElem.setAttribute(CentralConstants.ATTR_CURRENT_ACTIVITY , currActivity); - learnerProgElem.setAttribute(CentralConstants.ATTR_STUDENT_ID, "" + userMap.getSid()); - learnerProgElem.setAttribute(CentralConstants.ATTR_COURSE_ID, courseID); - learnerProgElem.setAttribute(CentralConstants.ATTR_USERNAME, username); - learnerProgElem.setAttribute(CentralConstants.ATTR_LESSON_ID, "" + lsId); + Element learnerProgElem = document.createElement(CentralConstants.ELEM_LEARNER_PROGRESS); + + int completedActivities = learnerProgress.getCompletedActivities().length; + int attemptedActivities = learnerProgress.getAttemptedActivities().length; + + if(learnerProgElem.getNodeType()== Node.ELEMENT_NODE) + { + learnerProgElem.setAttribute(CentralConstants.ATTR_LESSON_COMPLETE , "" + learnerProgress.getLessonComplete()); + learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITY_COUNT , "" + activitiesTotal); + learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITIES_COMPLETED , "" + completedActivities); + learnerProgElem.setAttribute(CentralConstants.ATTR_ACTIVITIES_ATTEMPTED , "" + attemptedActivities); + //learnerProgElem.setAttribute(CentralConstants.ATTR_CURRENT_ACTIVITY , currActivity); + learnerProgElem.setAttribute(CentralConstants.ATTR_STUDENT_ID, "" + progressUserMap.getSid()); + learnerProgElem.setAttribute(CentralConstants.ATTR_COURSE_ID, courseID); + learnerProgElem.setAttribute(CentralConstants.ATTR_USERNAME, progressUser); + learnerProgElem.setAttribute(CentralConstants.ATTR_LESSON_ID, "" + lsId); + } + + element.appendChild(learnerProgElem); } - - element.appendChild(learnerProgElem); - } + } } } else{ Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java,v diff -u -r1.4.6.1 -r1.4.6.2 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 12 Dec 2007 04:27:45 -0000 1.4.6.1 +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IIntegrationService.java 22 Jan 2008 04:10:36 -0000 1.4.6.2 @@ -43,6 +43,8 @@ ExtUserUseridMap getExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername) throws UserInfoFetchException; + ExtUserUseridMap getExistingExtUserUseridMap(ExtServerOrgMap serverMap, String extUsername) throws UserInfoFetchException; + ExtServerOrgMap getExtServerOrgMap(Integer sid); ExtServerOrgMap getExtServerOrgMap(String serverId); Index: lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java,v diff -u -r1.11.4.5 -r1.11.4.6 --- lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 13 Dec 2007 03:36:12 -0000 1.11.4.5 +++ lams_common/src/java/org/lamsfoundation/lams/integration/service/IntegrationService.java 22 Jan 2008 04:10:36 -0000 1.11.4.6 @@ -135,6 +135,22 @@ } } + public ExtUserUseridMap getExistingExtUserUseridMap( + ExtServerOrgMap serverMap, + String extUsername) + throws UserInfoFetchException + { + Map properties = new HashMap(); + properties.put("extServerOrgMap.sid", serverMap.getSid()); + properties.put("extUsername", extUsername); + List list = service.findByProperties(ExtUserUseridMap.class, properties); + if(list==null || list.size()==0){ + return null; + }else{ + return (ExtUserUseridMap)list.get(0); + } + } + public ExtUserUseridMap getImplicitExtUserUseridMap( ExtServerOrgMap serverMap, String extUsername,