Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java =================================================================== diff -u -ref2417616a93e7d6f1eaee601fd78455a90564d6 -reba9c28a1a43b03830d28d70b6fa172af29eaf1f --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java (.../LearningAction.java) (revision ef2417616a93e7d6f1eaee601fd78455a90564d6) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java (.../LearningAction.java) (revision eba9c28a1a43b03830d28d70b6fa172af29eaf1f) @@ -135,20 +135,23 @@ SessionMap sessionMap = new SessionMap(); request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap); answerForm.setSessionMapID(sessionMap.getSessionID()); - + // save toolContentID into HTTPSession ToolAccessMode mode = WebUtil.readToolAccessModeParam(request, AttributeNames.PARAM_MODE, true); Long sessionId = new Long(request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID)); // it will be use when runOffline or lock on finish page. request.setAttribute(SurveyConstants.ATTR_SESSION_MAP_ID, sessionMap.getSessionID()); - + // get back the survey and question list and display them on page ISurveyService service = getSurveyService(); SurveyUser surveyUser = null; if (mode != null && mode.isTeacher()) { // monitoring mode - user is specified in URL surveyUser = getSpecifiedUser(service, sessionId, WebUtil.readIntParam(request, AttributeNames.PARAM_USER_ID, false)); + // setting Learner + Long userID = WebUtil.readLongParam(request, AttributeNames.PARAM_USER_ID, true); + answerForm.setUserID(userID); } else { surveyUser = getCurrentUser(service, sessionId); } @@ -325,15 +328,26 @@ private ActionForward doSurvey(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { + ISurveyService service = getSurveyService(); + AnswerForm answerForm = (AnswerForm) form; Integer questionSeqID = answerForm.getQuestionSeqID(); String sessionMapID = answerForm.getSessionMapID(); SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(sessionMapID); - + // validate SortedMap surveyItemMap = getQuestionList(sessionMap); Collection surveyItemList = surveyItemMap.values(); + + SurveyUser surveyLearner = null; + Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); + Long userID = WebUtil.readLongParam(request, AttributeNames.PARAM_USER_ID, true); + if (userID != null) { + surveyLearner = service.getUserByIDAndSession(userID, sessionId); + request.setAttribute(AttributeNames.PARAM_USER_ID, userID); + } + ActionErrors errors; if (questionSeqID == null || questionSeqID.equals(0)) { errors = getAnswers(request); @@ -347,16 +361,16 @@ List answerList = new ArrayList(); for (AnswerDTO question : surveyItemList) { if (question.getAnswer() != null) { + if (userID != null) + question.getAnswer().setUser(surveyLearner); answerList.add(question.getAnswer()); } } - ISurveyService service = getSurveyService(); service.updateAnswerList(answerList); request.setAttribute(SurveyConstants.ATTR_SESSION_MAP_ID, sessionMapID); - Long sessionId = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID); Survey survey = service.getSurveyBySessionId(sessionId); HttpSession ss = SessionManager.getSession(); UserDTO surveyUser = (UserDTO) ss.getAttribute(AttributeNames.USER); Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java =================================================================== diff -u -rf0c3f41d54ef4f390ef3f93f28c0679c46b6730c -reba9c28a1a43b03830d28d70b6fa172af29eaf1f --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java (.../AnswerForm.java) (revision f0c3f41d54ef4f390ef3f93f28c0679c46b6730c) +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java (.../AnswerForm.java) (revision eba9c28a1a43b03830d28d70b6fa172af29eaf1f) @@ -36,6 +36,7 @@ private Integer questionSeqID; private int position; private int currentIdx; + private Long userID; public int getPosition() { return position; @@ -61,6 +62,10 @@ public void setCurrentIdx(int currentIdx) { this.currentIdx = currentIdx; } - - + public void setUserID(Long userID) { + this.userID = userID; + } + public Long getUserID() { + return userID; + } } Index: lams_tool_survey/web/pages/learning/learning.jsp =================================================================== diff -u -r18e5e690d2e1a7c3d918759f7a2827c8205feaac -reba9c28a1a43b03830d28d70b6fa172af29eaf1f --- lams_tool_survey/web/pages/learning/learning.jsp (.../learning.jsp) (revision 18e5e690d2e1a7c3d918759f7a2827c8205feaac) +++ lams_tool_survey/web/pages/learning/learning.jsp (.../learning.jsp) (revision eba9c28a1a43b03830d28d70b6fa172af29eaf1f) @@ -31,17 +31,18 @@ + value="<%=request.getAttribute(org.apache.struts.taglib.html.Constants.BEAN_KEY)%>" /> + +

Index: lams_tool_survey/web/pages/learning/result.jsp =================================================================== diff -u -rffa933cf31351c773cee8dba243d7f7fcd269f1e -reba9c28a1a43b03830d28d70b6fa172af29eaf1f --- lams_tool_survey/web/pages/learning/result.jsp (.../result.jsp) (revision ffa933cf31351c773cee8dba243d7f7fcd269f1e) +++ lams_tool_survey/web/pages/learning/result.jsp (.../result.jsp) (revision eba9c28a1a43b03830d28d70b6fa172af29eaf1f) @@ -23,7 +23,7 @@ function retakeSurvey(questionSeqId){ //retake for all questions if(questionSeqId == -1) - document.location.href=''; + document.location.href=''; else document.location.href='' +questionSeqId ; }