Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java =================================================================== diff -u -r6bfa03ad456ce58485d7f46bf300ddaf54f64a89 -r03a83c5c77b771974fb90318e94672f6a443511a --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision 6bfa03ad456ce58485d7f46bf300ddaf54f64a89) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision 03a83c5c77b771974fb90318e94672f6a443511a) @@ -212,8 +212,10 @@ * @param mcContent * @return List */ - public static List buildGroupsQuestionData(HttpServletRequest request, QaContent qaContent) + public static List buildGroupsQuestionData(HttpServletRequest request, QaContent qaContent, boolean allUsersData) { + logger.debug("allUsersData: " + allUsersData); + IQaService qaService = (IQaService)request.getSession().getAttribute(TOOL_SERVICE); logger.debug("qaService: " + qaService); @@ -235,7 +237,8 @@ qaMonitoredAnswersDTO.setQuestionUid(qaQueContent.getUid().toString()); qaMonitoredAnswersDTO.setQuestion(qaQueContent.getQuestion()); - Map questionAttemptData= buildGroupsAttemptData(request, qaContent, qaQueContent, qaQueContent.getUid().toString()); + logger.debug("using allUsersData to retrieve users data: " + allUsersData); + Map questionAttemptData= buildGroupsAttemptData(request, qaContent, qaQueContent, qaQueContent.getUid().toString(), allUsersData ); logger.debug("questionAttemptData:..." + questionAttemptData); qaMonitoredAnswersDTO.setQuestionAttempts(questionAttemptData); listMonitoredAnswersContainerDTO.add(qaMonitoredAnswersDTO); @@ -247,8 +250,10 @@ } - public static Map buildGroupsAttemptData(HttpServletRequest request, QaContent qaContent, QaQueContent qaQueContent, String questionUid) + public static Map buildGroupsAttemptData(HttpServletRequest request, QaContent qaContent, QaQueContent qaQueContent, String questionUid, boolean allUsersData) { + logger.debug("allUsersData: " + allUsersData); + logger.debug("doing buildGroupsAttemptData..."); IQaService qaService = (IQaService)request.getSession().getAttribute(TOOL_SERVICE); logger.debug("qaService: " + qaService); @@ -274,7 +279,7 @@ { List listUsers=qaService.getUserBySessionOnly(qaSession); logger.debug("listMcUsers for session id:" + qaSession.getQaSessionId() + " = " + listUsers); - Map sessionUsersAttempts=populateSessionUsersAttempts(request,qaSession.getQaSessionId(), listUsers, questionUid); + Map sessionUsersAttempts=populateSessionUsersAttempts(request,qaSession.getQaSessionId(), listUsers, questionUid, allUsersData); listMonitoredAttemptsContainerDTO.add(sessionUsersAttempts); } } @@ -295,8 +300,10 @@ * @param listUsers * @return List */ - public static Map populateSessionUsersAttempts(HttpServletRequest request,Long sessionId, List listUsers, String questionUid) + public static Map populateSessionUsersAttempts(HttpServletRequest request,Long sessionId, List listUsers, String questionUid, boolean allUsersData) { + logger.debug("allUsersData: " + allUsersData); + logger.debug("doing populateSessionUsersAttempts..."); IQaService qaService = (IQaService)request.getSession().getAttribute(TOOL_SERVICE); logger.debug("qaService: " + qaService); @@ -305,12 +312,53 @@ List listMonitoredUserContainerDTO= new LinkedList(); Iterator itUsers=listUsers.iterator(); - while (itUsers.hasNext()) + + if (allUsersData) { - QaQueUsr qaQueUsr=(QaQueUsr)itUsers.next(); - logger.debug("qaQueUsr: " + qaQueUsr); - - if (qaQueUsr != null) + logger.debug("getting alll the user' data"); + while (itUsers.hasNext()) + { + QaQueUsr qaQueUsr=(QaQueUsr)itUsers.next(); + logger.debug("qaQueUsr: " + qaQueUsr); + + if (qaQueUsr != null) + { + logger.debug("getting listUserAttempts for user id: " + qaQueUsr.getUid() + " and que content id: " + questionUid); + List listUserAttempts=qaService.getAttemptsForUserAndQuestionContent(qaQueUsr.getUid(), new Long(questionUid)); + logger.debug("listUserAttempts: " + listUserAttempts); + + Iterator itAttempts=listUserAttempts.iterator(); + while (itAttempts.hasNext()) + { + QaUsrResp qaUsrResp=(QaUsrResp)itAttempts.next(); + logger.debug("qaUsrResp: " + qaUsrResp); + + if (qaUsrResp != null) + { + QaMonitoredUserDTO qaMonitoredUserDTO = new QaMonitoredUserDTO(); + qaMonitoredUserDTO.setAttemptTime(qaUsrResp.getAttemptTime().toString()); + qaMonitoredUserDTO.setTimeZone(qaUsrResp.getTimezone()); + qaMonitoredUserDTO.setUid(qaUsrResp.getResponseId().toString()); + qaMonitoredUserDTO.setUserName(qaQueUsr.getUsername()); + qaMonitoredUserDTO.setQueUsrId(qaQueUsr.getUid().toString()); + qaMonitoredUserDTO.setSessionId(sessionId.toString()); + qaMonitoredUserDTO.setResponse(qaUsrResp.getAnswer()); + qaMonitoredUserDTO.setQuestionUid(questionUid); + listMonitoredUserContainerDTO.add(qaMonitoredUserDTO); + } + } + } + } + } + else + { + logger.debug("getting only current user's data" ); + String userID= (String)request.getSession().getAttribute(USER_ID); + logger.debug("userID: " + userID); + QaQueUsr qaQueUsr=qaService.getQaQueUsrById(new Long(userID).longValue()); + logger.debug("the current user qaQueUsr " + qaQueUsr + " and username: " + qaQueUsr.getUsername()); + + if (qaQueUsr != null) { logger.debug("getting listUserAttempts for user id: " + qaQueUsr.getUid() + " and que content id: " + questionUid); List listUserAttempts=qaService.getAttemptsForUserAndQuestionContent(qaQueUsr.getUid(), new Long(questionUid)); @@ -336,8 +384,9 @@ listMonitoredUserContainerDTO.add(qaMonitoredUserDTO); } } - } + } } + logger.debug("final listMonitoredUserContainerDTO: " + listMonitoredUserContainerDTO); mapMonitoredUserContainerDTO=convertToMcMonitoredUserDTOMap(listMonitoredUserContainerDTO); logger.debug("final mapMonitoredUserContainerDTO:..." + mapMonitoredUserContainerDTO); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java =================================================================== diff -u -r6bfa03ad456ce58485d7f46bf300ddaf54f64a89 -r03a83c5c77b771974fb90318e94672f6a443511a --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java (.../QAction.java) (revision 6bfa03ad456ce58485d7f46bf300ddaf54f64a89) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java (.../QAction.java) (revision 03a83c5c77b771974fb90318e94672f6a443511a) @@ -568,9 +568,23 @@ QaContent qaContent=qaService.loadQa(toolContentID.longValue()); logger.debug("qaContent: " + qaContent); - QaMonitoringAction qaMonitoringAction= new QaMonitoringAction(); - logger.debug("refreshing summary data..."); - qaMonitoringAction.refreshSummaryData(request, qaContent, qaService); + Boolean isUserNamesVisible=(Boolean)request.getSession().getAttribute(IS_USERNAME_VISIBLE); + logger.debug("isUserNamesVisible: " + isUserNamesVisible); + + + QaMonitoringAction qaMonitoringAction= new QaMonitoringAction(); + if (isUserNamesVisible.booleanValue()) + { + /*the report should have all the users' entries*/ + logger.debug("refreshing summary data for all..."); + qaMonitoringAction.refreshSummaryData(request, qaContent, qaService, true); + } + else + { + /*the report should have only this user's entries*/ + logger.debug("refreshing summary data ..."); + qaMonitoringAction.refreshSummaryData(request, qaContent, qaService, false); + } request.getSession().setAttribute(REQUEST_LEARNING_REPORT, new Boolean(true).toString()); logger.debug("fwd'ing to." + LEARNER_REPORT); @@ -582,27 +596,33 @@ */ else if (qaLearningForm.getEndLearning() != null) { - /* - * The learner is done with the tool session. The tool needs to clean-up. - */ - logger.debug("end learning..."); - Long toolSessionId=(Long)request.getSession().getAttribute(AttributeNames.PARAM_TOOL_SESSION_ID); - HttpSession ss = SessionManager.getSession(); - /*get back login user DTO*/ - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - logger.debug("simulating container behaviour by calling " + - "leaveToolSession() with toolSessionId: " + toolSessionId + " and user: " + user); - - String nextActivityUrl = qaService.leaveToolSession(toolSessionId, new Long(user.getUserID().longValue())); - response.sendRedirect(nextActivityUrl); + endLearning(request, qaService, response); return null; - } + } logger.debug("forwarding to: " + LOAD_LEARNER); qaLearningForm.resetUserActions(); return (mapping.findForward(LOAD_LEARNER)); } + + public void endLearning(HttpServletRequest request, IQaService qaService, HttpServletResponse response) + throws IOException, ToolException + { + /* + * The learner is done with the tool session. The tool needs to clean-up. + */ + logger.debug("end learning..."); + Long toolSessionId=(Long)request.getSession().getAttribute(AttributeNames.PARAM_TOOL_SESSION_ID); + HttpSession ss = SessionManager.getSession(); + /*get back login user DTO*/ + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + logger.debug("simulating container behaviour by calling " + + "leaveToolSession() with toolSessionId: " + toolSessionId + " and user: " + user); + + String nextActivityUrl = qaService.leaveToolSession(toolSessionId, new Long(user.getUserID().longValue())); + response.sendRedirect(nextActivityUrl); + } /** * persists error messages to request scope Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java =================================================================== diff -u -r6bfa03ad456ce58485d7f46bf300ddaf54f64a89 -r03a83c5c77b771974fb90318e94672f6a443511a --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 6bfa03ad456ce58485d7f46bf300ddaf54f64a89) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 03a83c5c77b771974fb90318e94672f6a443511a) @@ -388,7 +388,7 @@ QaContent qaContent=qaService.loadQa(toolContentId.longValue()); logger.debug("existing qaContent:" + qaContent); - List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, qaContent); + List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, qaContent, true); request.getSession().setAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO, listMonitoredAnswersContainerDTO); logger.debug("LIST_MONITORED_ANSWERS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO)); } @@ -457,9 +457,32 @@ } } + + public ActionForward endLearning(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException, ToolException + { + logger.debug("dispatching proxy endLearning to learnng module..."); + IQaService qaService = (IQaService)request.getSession().getAttribute(TOOL_SERVICE); + logger.debug("qaService: " + qaService); + if (qaService == null) + { + logger.debug("will retrieve qaService"); + qaService = QaServiceProxy.getQaService(getServlet().getServletContext()); + logger.debug("retrieving qaService from session: " + qaService); + } + + QAction qAction= new QAction(); + qAction.endLearning(request, qaService, response); + return null; + } - public void refreshSummaryData(HttpServletRequest request, QaContent qaContent, IQaService qaService) + public void refreshSummaryData(HttpServletRequest request, QaContent qaContent, IQaService qaService, boolean allUsersData) { + logger.debug("allUsersData: " + allUsersData); + /* this section is related to summary tab. Starts here. */ Map summaryToolSessions=MonitoringUtil.populateToolSessions(request, qaContent, qaService); logger.debug("summaryToolSessions: " + summaryToolSessions); @@ -470,14 +493,12 @@ request.setAttribute(USER_EXCEPTION_NO_TOOL_SESSIONS, new Boolean(true).toString()); logger.debug("USER_EXCEPTION_NO_TOOL_SESSIONS is set to true"); } - request.getSession().setAttribute(SUMMARY_TOOL_SESSIONS, summaryToolSessions); Map summaryToolSessionsId=MonitoringUtil.populateToolSessionsId(request, qaContent, qaService); logger.debug("summaryToolSessionsId: " + summaryToolSessionsId); request.getSession().setAttribute(SUMMARY_TOOL_SESSIONS_ID, summaryToolSessionsId); - /* SELECTION_CASE == 2 indicates start up */ request.getSession().setAttribute(SELECTION_CASE, new Long(2)); logger.debug("SELECTION_CASE: " + request.getSession().getAttribute(SELECTION_CASE)); @@ -486,7 +507,9 @@ request.getSession().setAttribute(CURRENT_MONITORED_TOOL_SESSION, "All"); logger.debug("CURRENT_MONITORED_TOOL_SESSION: " + request.getSession().getAttribute(CURRENT_MONITORED_TOOL_SESSION)); - List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, qaContent); + + logger.debug("using allUsersData to retrieve data: " + allUsersData); + List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, qaContent, allUsersData); request.getSession().setAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO, listMonitoredAnswersContainerDTO); logger.debug("LIST_MONITORED_ANSWERS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO)); /* ends here. */ Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java =================================================================== diff -u -r6bfa03ad456ce58485d7f46bf300ddaf54f64a89 -r03a83c5c77b771974fb90318e94672f6a443511a --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java (.../QaMonitoringStarterAction.java) (revision 6bfa03ad456ce58485d7f46bf300ddaf54f64a89) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java (.../QaMonitoringStarterAction.java) (revision 03a83c5c77b771974fb90318e94672f6a443511a) @@ -2,8 +2,6 @@ package org.lamsfoundation.lams.tool.qa.web; import java.io.IOException; -import java.util.List; -import java.util.Map; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -108,7 +106,7 @@ QaMonitoringAction qaMonitoringAction= new QaMonitoringAction(); logger.debug("refreshing summary data..."); - qaMonitoringAction.refreshSummaryData(request, qaContent, qaService); + qaMonitoringAction.refreshSummaryData(request, qaContent, qaService, true); logger.debug("refreshing stats data..."); qaMonitoringAction.refreshStatsData(request); Index: lams_tool_laqa/web/monitoring/LearnerRep.jsp =================================================================== diff -u -r6bfa03ad456ce58485d7f46bf300ddaf54f64a89 -r03a83c5c77b771974fb90318e94672f6a443511a --- lams_tool_laqa/web/monitoring/LearnerRep.jsp (.../LearnerRep.jsp) (revision 6bfa03ad456ce58485d7f46bf300ddaf54f64a89) +++ lams_tool_laqa/web/monitoring/LearnerRep.jsp (.../LearnerRep.jsp) (revision 03a83c5c77b771974fb90318e94672f6a443511a) @@ -89,9 +89,9 @@
|
- |
- |
- |
+ |
+ |
+ |