Index: lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java,v diff -u -r1.18 -r1.18.6.1 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java 10 Oct 2008 00:37:15 -0000 1.18 +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/action/LearningAction.java 29 Apr 2009 00:56:06 -0000 1.18.6.1 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java,v diff -u -r1.3 -r1.3.8.1 --- lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java 25 Sep 2006 23:20:03 -0000 1.3 +++ lams_tool_survey/src/java/org/lamsfoundation/lams/tool/survey/web/form/AnswerForm.java 29 Apr 2009 00:56:06 -0000 1.3.8.1 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_tool_survey/web/pages/learning/learning.jsp,v diff -u -r1.12 -r1.12.6.1 --- lams_tool_survey/web/pages/learning/learning.jsp 8 Jun 2007 01:42:16 -0000 1.12 +++ lams_tool_survey/web/pages/learning/learning.jsp 29 Apr 2009 00:56:06 -0000 1.12.6.1 @@ -31,17 +31,18 @@ + value="<%=request.getAttribute(org.apache.struts.taglib.html.Constants.BEAN_KEY)%>" /> + +

Index: lams_tool_survey/web/pages/learning/result.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_survey/web/pages/learning/result.jsp,v diff -u -r1.17 -r1.17.4.1 --- lams_tool_survey/web/pages/learning/result.jsp 1 Mar 2009 01:51:52 -0000 1.17 +++ lams_tool_survey/web/pages/learning/result.jsp 29 Apr 2009 00:56:06 -0000 1.17.4.1 @@ -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 ; }