Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java =================================================================== diff -u -rcc57114dde638ab1b37c0ac5556c1a2822e79bf3 -r737c08da4756eb0d49aa07e331468eb94f7113c1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java (.../LearningUtil.java) (revision cc57114dde638ab1b37c0ac5556c1a2822e79bf3) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java (.../LearningUtil.java) (revision 737c08da4756eb0d49aa07e331468eb94f7113c1) @@ -24,6 +24,7 @@ import java.util.Date; import java.util.Iterator; +import java.util.List; import java.util.Map; import java.util.TreeSet; @@ -114,7 +115,6 @@ if ((qaQueUsr != null) && (qaQueUsrLocal == null)) { - //qaService.createQaQueUsr(qaQueUsr); qaQueUsr=createUser(request); logger.debug("created qaQueUsr: " + qaQueUsr); } @@ -124,11 +124,15 @@ qaQueUsr=qaQueUsrLocal; } + logger.debug("qaQueUsr uid:" + qaQueUsr.getUid()); + while (contentIterator.hasNext()) { QaQueContent qaQueContent=(QaQueContent)contentIterator.next(); if (qaQueContent != null) { + logger.debug("qaQueContent uid:" + qaQueContent.getUid()); + String question=qaQueContent.getQuestion(); String displayOrder=new Long(qaQueContent.getDisplayOrder()).toString(); String answer=(String)mapAnswers.get(displayOrder); @@ -139,20 +143,29 @@ String timezoneId=(String)request.getSession().getAttribute(TIMEZONE_ID); if (timezoneId == null) timezoneId=""; + List attempts=qaService.getAttemptsForUserAndQuestionContent(qaQueUsr.getUid(), qaQueContent.getUid()); + logger.debug("attempts:" + attempts); - QaUsrResp qaUsrResp= new QaUsrResp(answer,false, - new Date(System.currentTimeMillis()), - timezoneId, - qaQueContent, - qaQueUsr); + if ((attempts != null) && (attempts.size() > 0)) + { + logger.debug("this user already responsed to q/a in this session:"); + } + else + { + logger.debug("creating response."); + QaUsrResp qaUsrResp= new QaUsrResp(answer,false, + new Date(System.currentTimeMillis()), + timezoneId, + qaQueContent, + qaQueUsr); - logger.debug("iterationg qaUsrResp: " + qaUsrResp); - if (qaUsrResp != null) - { - qaService.createQaUsrResp(qaUsrResp); - logger.debug("created qaUsrResp in the db"); - } - + logger.debug("iterationg qaUsrResp: " + qaUsrResp); + if (qaUsrResp != null) + { + qaService.createQaUsrResp(qaUsrResp); + logger.debug("created qaUsrResp in the db"); + } + } } } logger.debug("both the users and their responses created in the db"); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java =================================================================== diff -u -rcc57114dde638ab1b37c0ac5556c1a2822e79bf3 -r737c08da4756eb0d49aa07e331468eb94f7113c1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision cc57114dde638ab1b37c0ac5556c1a2822e79bf3) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java (.../MonitoringUtil.java) (revision 737c08da4756eb0d49aa07e331468eb94f7113c1) @@ -380,7 +380,7 @@ qaMonitoredUserDTO.setAttemptTime(qaUsrResp.getAttemptTime().toString()); qaMonitoredUserDTO.setTimeZone(qaUsrResp.getTimezone()); qaMonitoredUserDTO.setUid(qaUsrResp.getResponseId().toString()); - qaMonitoredUserDTO.setUserName(qaQueUsr.getUsername()); + qaMonitoredUserDTO.setUserName(qaQueUsr.getFullname()); qaMonitoredUserDTO.setQueUsrId(qaQueUsr.getUid().toString()); qaMonitoredUserDTO.setSessionId(sessionId.toString()); qaMonitoredUserDTO.setResponse(qaUsrResp.getAnswer()); @@ -423,7 +423,7 @@ qaMonitoredUserDTO.setAttemptTime(qaUsrResp.getAttemptTime().toString()); qaMonitoredUserDTO.setTimeZone(qaUsrResp.getTimezone()); qaMonitoredUserDTO.setUid(qaUsrResp.getResponseId().toString()); - qaMonitoredUserDTO.setUserName(qaQueUsr.getUsername()); + qaMonitoredUserDTO.setUserName(qaQueUsr.getFullname()); qaMonitoredUserDTO.setQueUsrId(qaQueUsr.getUid().toString()); qaMonitoredUserDTO.setSessionId(sessionId.toString()); qaMonitoredUserDTO.setResponse(qaUsrResp.getAnswer()); @@ -470,12 +470,12 @@ if (userID.equals(qaQueUsr.getQueUsrId().toString())) { logger.debug("this is current user, put his name normally."); - qaMonitoredUserDTO.setUserName(qaQueUsr.getUsername()); + qaMonitoredUserDTO.setUserName(qaQueUsr.getFullname()); } else { logger.debug("this is not current user, put his name as blank."); - qaMonitoredUserDTO.setUserName("[ ]"); + qaMonitoredUserDTO.setUserName(" "); } qaMonitoredUserDTO.setQueUsrId(qaQueUsr.getUid().toString()); @@ -519,7 +519,7 @@ qaMonitoredUserDTO.setAttemptTime(qaUsrResp.getAttemptTime().toString()); qaMonitoredUserDTO.setTimeZone(qaUsrResp.getTimezone()); qaMonitoredUserDTO.setUid(qaUsrResp.getResponseId().toString()); - qaMonitoredUserDTO.setUserName(qaQueUsr.getUsername()); + qaMonitoredUserDTO.setUserName(qaQueUsr.getFullname()); qaMonitoredUserDTO.setQueUsrId(qaQueUsr.getUid().toString()); qaMonitoredUserDTO.setSessionId(sessionId.toString()); qaMonitoredUserDTO.setResponse(qaUsrResp.getAnswer()); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java =================================================================== diff -u -rcc57114dde638ab1b37c0ac5556c1a2822e79bf3 -r737c08da4756eb0d49aa07e331468eb94f7113c1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision cc57114dde638ab1b37c0ac5556c1a2822e79bf3) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java (.../QaLearningAction.java) (revision 737c08da4756eb0d49aa07e331468eb94f7113c1) @@ -283,17 +283,28 @@ logger.debug("existing qaContent:" + qaContent); Long toolSessionId=(Long)request.getSession().getAttribute(AttributeNames.PARAM_TOOL_SESSION_ID); + QaSession qaSession=qaService.retrieveQaSessionOrNullById(toolSessionId.longValue()); + logger.debug("retrieving qaSession: " + qaSession); + Boolean isUserNamesVisibleBoolean=(Boolean)request.getSession().getAttribute(IS_USERNAME_VISIBLE); boolean isUserNamesVisible=isUserNamesVisibleBoolean.booleanValue(); logger.debug("isUserNamesVisible: " + isUserNamesVisible); QaMonitoringAction qaMonitoringAction= new QaMonitoringAction(); qaMonitoringAction.refreshSummaryData(request, qaContent, qaService, isUserNamesVisible, true, toolSessionId.toString(), null); + + String userID= (String)request.getSession().getAttribute(USER_ID); + logger.debug("userID: " + userID); + QaQueUsr qaQueUsr=qaService.getQaUserBySession(new Long(userID), qaSession.getUid()); + logger.debug("current user is: " + qaQueUsr); + qaQueUsr.setResponseFinalized(true); + logger.debug("finalized user input"); + qaService.updateQaQueUsr(qaQueUsr); request.getSession().setAttribute(REQUEST_LEARNING_REPORT, new Boolean(true).toString()); request.getSession().setAttribute(REQUEST_LEARNING_REPORT_PROGRESS, new Boolean(false).toString()); - logger.debug("fwd'ing to for learner progress" + LEARNER_REPORT); + logger.debug("fwd'ing to: " + LEARNER_REPORT); return (mapping.findForward(LEARNER_REPORT)); } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java =================================================================== diff -u -r65166da92a6f0f4ff73acb92b95672e237b25742 -r737c08da4756eb0d49aa07e331468eb94f7113c1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision 65166da92a6f0f4ff73acb92b95672e237b25742) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision 737c08da4756eb0d49aa07e331468eb94f7113c1) @@ -453,16 +453,22 @@ * * if the user's tool session id AND user id exists in the tool tables go to learner's report. */ + /* if the 'All Responses' has been clicked no more user entry is accepted, and isResponseFinalized() returns true*/ + logger.debug("userId:" + userId); + Long currentToolSessionId=(Long)request.getSession().getAttribute(TOOL_SESSION_ID); + logger.debug("currentToolSessionId: " + currentToolSessionId); + logger.debug("current session uid: " + qaSession.getUid()); + if (userId != null) { - QaQueUsr qaQueUsr=qaService.loadQaQueUsr(new Long(userId)); + QaQueUsr qaQueUsr=qaService.getQaUserBySession(new Long(userId), qaSession.getUid()); logger.debug("QaQueUsr:" + qaQueUsr); - if (qaQueUsr != null) + + if ((qaQueUsr != null) && (qaQueUsr.isResponseFinalized())) { + logger.debug("is current user's response finalized: " + qaQueUsr.isResponseFinalized()); QaSession checkSession=qaQueUsr.getQaSession(); logger.debug("checkSession:" + checkSession); - Long currentToolSessionId=(Long)request.getSession().getAttribute(TOOL_SESSION_ID); - logger.debug("currentToolSessionId: " + currentToolSessionId); if (checkSession != null) { @@ -511,7 +517,7 @@ /* * present user with the questions. */ - logger.debug("forwarding to: " + LOAD_LEARNER); + logger.debug("forwarding to: " + LOAD_LEARNER); return (mapping.findForward(LOAD_LEARNER)); } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java =================================================================== diff -u -r1453bf6403ce02c29d691fe34e65a049d3285c26 -r737c08da4756eb0d49aa07e331468eb94f7113c1 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision 1453bf6403ce02c29d691fe34e65a049d3285c26) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision 737c08da4756eb0d49aa07e331468eb94f7113c1) @@ -341,7 +341,7 @@ /*fetch default content*/ String defaultContentIdStr=(String) request.getSession().getAttribute(DEFAULT_CONTENT_ID_STR); logger.debug("defaultContentIdStr:" + defaultContentIdStr); - retrieveContent(request, mapping, qaAuthoringForm, mapQuestionContent, new Long(defaultContentIdStr).longValue()); + retrieveContent(request, mapping, qaAuthoringForm, mapQuestionContent, new Long(defaultContentIdStr).longValue(), true); } else { @@ -358,7 +358,7 @@ logger.debug("add error.content.inUse to ActionMessages."); return (mapping.findForward(ERROR_LIST)); } - retrieveContent(request, mapping, qaAuthoringForm, mapQuestionContent, new Long(strToolContentId).longValue()); + retrieveContent(request, mapping, qaAuthoringForm, mapQuestionContent, new Long(strToolContentId).longValue(),false); } logger.debug("will return to jsp with: " + sourceMcStarter); @@ -380,9 +380,11 @@ * @param toolContentId * @return ActionForward */ - protected void retrieveContent(HttpServletRequest request, ActionMapping mapping, QaAuthoringForm qaAuthoringForm, Map mapQuestionContent, long toolContentId) + protected void retrieveContent(HttpServletRequest request, ActionMapping mapping, QaAuthoringForm qaAuthoringForm, + Map mapQuestionContent, long toolContentId, boolean isDefaultContent) { - logger.debug("starting retrieveExistingContent for toolContentId: " + toolContentId); + logger.debug("contentType: " + toolContentId); + logger.debug("isDefaultContent: " + isDefaultContent); IQaService qaService = (IQaService)request.getSession().getAttribute(TOOL_SERVICE); logger.debug("qaService: " + qaService); @@ -409,8 +411,8 @@ if (qaContent.getTitle() == null) { - request.getSession().setAttribute(ACTIVITY_TITLE, "Questions and Answers"); - request.getSession().setAttribute(ACTIVITY_INSTRUCTIONS, "Please answer the questions."); + request.getSession().setAttribute(ACTIVITY_TITLE, "Q&A Title"); + request.getSession().setAttribute(ACTIVITY_INSTRUCTIONS, "Q&A Instructions"); } else { @@ -463,6 +465,13 @@ } logger.debug("Map initialized with existing contentid to: " + mapQuestionContent); + + if (isDefaultContent) + { + logger.debug("overwriting default question."); + request.getSession().setAttribute(DEFAULT_QUESTION_CONTENT, "Sample Question 1?"); + } + logger.debug("callling presentInitialUserInterface for the existing content."); request.getSession().setAttribute(MAP_QUESTION_CONTENT, mapQuestionContent);