Action class that controls the logic of tool behavior.
@@ -269,10 +275,13 @@ voteSession.getUid().toString(), voteGeneralLearnerFlowDTO, voteGeneralMonitoringDTO); logger.debug("end of prepareChartData:" + voteContent.getVoteContentId() + " " + voteSession.getUid()); - voteLearningForm.resetCommands(); + + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + + voteLearningForm.resetCommands(); - - logger.debug("view-only voteGeneralLearnerFlowDTO: " + voteGeneralLearnerFlowDTO); + logger.debug("view-only voteGeneralLearnerFlowDTO: " + voteGeneralLearnerFlowDTO); request.setAttribute(VOTE_GENERAL_LEARNER_FLOW_DTO,voteGeneralLearnerFlowDTO); @@ -426,6 +435,9 @@ setContentInUse(request, voteService, toolContentID); logger.debug("requested redoQuestionsOk, user is sure to redo the questions."); + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + voteLearningForm.resetCommands(); logger.debug("final voteGeneralLearnerFlowDTO: " + voteGeneralLearnerFlowDTO); @@ -472,6 +484,36 @@ VoteQueUsr voteQueUsr=voteService.getVoteUserBySession(new Long(userID), voteSession.getUid()); logger.debug("voteQueUsr:" + voteQueUsr); + + /* it is possible that voteQueUsr can be null if the content is set as runoffline and reflection is on*/ + if (voteQueUsr == null) + { + logger.debug("attempt creating user record since it must exist for the runOffline + reflection screens"); + HttpSession ss = SessionManager.getSession(); + + UserDTO toolUser = (UserDTO) ss.getAttribute(AttributeNames.USER); + logger.debug("retrieving toolUser: " + toolUser); + logger.debug("retrieving toolUser userId: " + toolUser.getUserID()); + logger.debug("retrieving toolUser username: " + toolUser.getLogin()); + + String userName=toolUser.getLogin(); + String fullName= toolUser.getFirstName() + " " + toolUser.getLastName(); + logger.debug("retrieving toolUser fullname: " + fullName); + + Long userId=new Long(toolUser.getUserID().longValue()); + logger.debug("retrieving toolUser fullname: " + fullName); + + voteQueUsr= new VoteQueUsr(new Long(userID), + userName, + fullName, + voteSession, + new TreeSet()); + voteService.createVoteQueUsr(voteQueUsr); + logger.debug("createVoteQueUsr - voteQueUsr: " + voteQueUsr); + logger.debug("session uid: " + voteSession.getUid()); + } + + voteQueUsr.setResponseFinalised(true); voteService.updateVoteUser(voteQueUsr); logger.debug("user's response is finalised:" + voteQueUsr); @@ -488,7 +530,10 @@ voteGeneralLearnerFlowDTO.setActivityInstructions(voteContent.getInstructions()); logger.debug("attempting to leave/complete session with toolSessionID:" + toolSessionID + " and userID:"+userID); - + + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + logger.debug("final voteGeneralLearnerFlowDTO: " + voteGeneralLearnerFlowDTO); request.setAttribute(VOTE_GENERAL_LEARNER_FLOW_DTO,voteGeneralLearnerFlowDTO); @@ -726,6 +771,9 @@ MonitoringUtil.prepareChartData(request, voteService, null, toolContentID.toString(), toolSessionUid.toString(), voteGeneralLearnerFlowDTO, voteGeneralMonitoringDTO); + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + logger.debug("fwding to INDIVIDUAL_REPORT: " + INDIVIDUAL_REPORT); voteLearningForm.resetCommands(); @@ -796,6 +844,9 @@ voteLearningForm.setUserEntry(""); + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + logger.debug("fwd'ing to LOAD_LEARNER : " + LOAD_LEARNER); voteLearningForm.resetCommands(); @@ -818,8 +869,8 @@ voteService.saveVoteContent(voteContent); } + - /** * persists error messages to request scope * @param request @@ -832,8 +883,109 @@ logger.debug("add " + message +" to ActionMessages:"); saveErrors(request,errors); } + + public ActionForward submitReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException, ToolException + { + logger.debug("dispatching submitReflection..."); + VoteLearningForm voteLearningForm = (VoteLearningForm) form; + + repopulateRequestParameters(request,voteLearningForm); + + IVoteService voteService = VoteServiceProxy.getVoteService(getServlet().getServletContext()); + logger.debug("voteService: " + voteService); + + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + logger.debug("toolSessionID: " + toolSessionID); + voteLearningForm.setToolSessionID(toolSessionID); + + String userID=request.getParameter("userID"); + logger.debug("userID: " + userID); + voteLearningForm.setUserID(userID); + + String reflectionEntry=request.getParameter(ENTRY_TEXT); + logger.debug("reflectionEntry: " + reflectionEntry); + + VoteSession voteSession=voteService.retrieveVoteSession(new Long(toolSessionID)); + logger.debug("retrieving voteSession: " + voteSession); + + VoteQueUsr voteQueUsr=voteService.getVoteUserBySession(new Long(userID), voteSession.getUid()); + logger.debug("voteQueUsr:" + voteQueUsr); + + /* it is possible that voteQueUsr can be null if the content is set as runoffline and reflection is on*/ + if (voteQueUsr == null) + { + logger.debug("attempt creating user record since it must exist for the runOffline + reflection screens"); + HttpSession ss = SessionManager.getSession(); + + UserDTO toolUser = (UserDTO) ss.getAttribute(AttributeNames.USER); + logger.debug("retrieving toolUser: " + toolUser); + logger.debug("retrieving toolUser userId: " + toolUser.getUserID()); + logger.debug("retrieving toolUser username: " + toolUser.getLogin()); + + String userName=toolUser.getLogin(); + String fullName= toolUser.getFirstName() + " " + toolUser.getLastName(); + logger.debug("retrieving toolUser fullname: " + fullName); + + Long userId=new Long(toolUser.getUserID().longValue()); + logger.debug("retrieving toolUser fullname: " + fullName); + + voteQueUsr= new VoteQueUsr(new Long(userID), + userName, + fullName, + voteSession, + new TreeSet()); + voteService.createVoteQueUsr(voteQueUsr); + logger.debug("createVoteQueUsr - voteQueUsr: " + voteQueUsr); + logger.debug("session uid: " + voteSession.getUid()); + } + + logger.debug("voteQueUsr:" + voteQueUsr); + logger.debug("toolSessionID:" + toolSessionID); + logger.debug("CoreNotebookConstants.NOTEBOOK_TOOL:" + CoreNotebookConstants.NOTEBOOK_TOOL); + logger.debug("MY_SIGNATURE:" + MY_SIGNATURE); + logger.debug("userID:" + userID); + logger.debug("reflectionEntry:" + reflectionEntry); + + voteService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, new Integer(userID), reflectionEntry); + + voteLearningForm.resetUserActions(); /*resets all except submitAnswersContent */ + return learnerFinished(mapping, form, request, response); + } + + + public ActionForward forwardtoReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException, ToolException + { + logger.debug("dispatching forwardtoReflection..."); + VoteLearningForm voteLearningForm = (VoteLearningForm) form; + IVoteService voteService = VoteServiceProxy.getVoteService(getServlet().getServletContext()); + logger.debug("voteService: " + voteService); + + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + logger.debug("toolSessionID: " + toolSessionID); + + VoteSession voteSession=voteService.retrieveVoteSession(new Long(toolSessionID)); + logger.debug("retrieving voteSession: " + voteSession); + + VoteContent voteContent=voteSession.getVoteContent(); + logger.debug("using voteContent: " + voteContent); + + VoteGeneralLearnerFlowDTO voteGeneralLearnerFlowDTO= new VoteGeneralLearnerFlowDTO(); + voteGeneralLearnerFlowDTO.setActivityTitle(voteContent.getTitle()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + + request.setAttribute(VOTE_GENERAL_LEARNER_FLOW_DTO, voteGeneralLearnerFlowDTO); + logger.debug("final voteGeneralLearnerFlowDTO: " + voteGeneralLearnerFlowDTO); + voteLearningForm.resetCommands(); + + logger.debug("fwd'ing to: " + NOTEBOOK); + return (mapping.findForward(NOTEBOOK)); + } + protected void repopulateRequestParameters(HttpServletRequest request, VoteLearningForm voteLearningForm) { logger.debug("starting repopulateRequestParameters"); Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningForm.java =================================================================== diff -u -ra8e5c42d584e4b8b9b67224179acbc53850d279f -rfadef2b7b1f00478057ecade707ca37aa24ebe15 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningForm.java (.../VoteLearningForm.java) (revision a8e5c42d584e4b8b9b67224179acbc53850d279f) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningForm.java (.../VoteLearningForm.java) (revision fadef2b7b1f00478057ecade707ca37aa24ebe15) @@ -82,14 +82,19 @@ protected String getPreviousQuestion; protected String endLearning; protected String refreshVotes; + protected String submitReflection; + protected String forwardtoReflection; + protected String reflection; + protected String nominationsSubmited; protected String revisitingUser; protected String maxNominationCountReached; protected int castVoteCount; protected Map mapGeneralCheckedOptionsContent; + protected String entryText; protected String userID; protected String toolSessionID; protected String learningMode; @@ -225,6 +230,8 @@ this.setDonePreview(null); this.setDoneLearnerProgress(null); this.setRefreshVotes(null); + this.setSubmitReflection(null); + this.setForwardtoReflection(null); } public void resetParameters() @@ -756,6 +763,32 @@ this.previewOnly = previewOnly; } + /** + * @return Returns the forwardtoReflection. + */ + public String getForwardtoReflection() { + return forwardtoReflection; + } + /** + * @param forwardtoReflection The forwardtoReflection to set. + */ + public void setForwardtoReflection(String forwardtoReflection) { + this.forwardtoReflection = forwardtoReflection; + } + /** + * @return Returns the submitReflection. + */ + public String getSubmitReflection() { + return submitReflection; + } + /** + * @param submitReflection The submitReflection to set. + */ + public void setSubmitReflection(String submitReflection) { + this.submitReflection = submitReflection; + } + + public String toString() { return new ToStringBuilder(this) .append("activityInstructions: ", activityInstructions) @@ -776,4 +809,28 @@ .toString(); } + /** + * @return Returns the entryText. + */ + public String getEntryText() { + return entryText; + } + /** + * @param entryText The entryText to set. + */ + public void setEntryText(String entryText) { + this.entryText = entryText; + } + /** + * @return Returns the reflection. + */ + public String getReflection() { + return reflection; + } + /** + * @param reflection The reflection to set. + */ + public void setReflection(String reflection) { + this.reflection = reflection; + } } Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningStarterAction.java =================================================================== diff -u -r2a908e1de2e7fea80b982480879f7a3ec972386a -rfadef2b7b1f00478057ecade707ca37aa24ebe15 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningStarterAction.java (.../VoteLearningStarterAction.java) (revision 2a908e1de2e7fea80b982480879f7a3ec972386a) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteLearningStarterAction.java (.../VoteLearningStarterAction.java) (revision fadef2b7b1f00478057ecade707ca37aa24ebe15) @@ -166,6 +166,8 @@ import org.apache.struts.action.ActionMapping; import org.apache.struts.action.ActionMessage; import org.apache.struts.action.ActionMessages; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.CoreNotebookConstants; import org.lamsfoundation.lams.tool.vote.VoteAppConstants; import org.lamsfoundation.lams.tool.vote.VoteApplicationException; import org.lamsfoundation.lams.tool.vote.VoteComparator; @@ -282,6 +284,29 @@ voteGeneralLearnerFlowDTO.setToolContentUID(voteContent.getUid().toString()); + String userID=voteLearningForm.getUserID(); + logger.debug("userID: " + userID); + + logger.debug("is tool reflective: " + voteContent.isReflect()); + voteGeneralLearnerFlowDTO.setReflection(new Boolean(voteContent.isReflect()).toString()); + logger.debug("reflection subject: " + voteContent.getReflectionSubject()); + voteGeneralLearnerFlowDTO.setReflectionSubject(voteContent.getReflectionSubject()); + + logger.debug("attempt getting notebookEntry: "); + NotebookEntry notebookEntry = voteService.getEntry(new Long(toolSessionID), + CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, new Integer(userID)); + + logger.debug("notebookEntry: " + notebookEntry); + + if (notebookEntry != null) { + String notebookEntryPresentable=VoteUtils.replaceNewLines(notebookEntry.getEntry()); + voteGeneralLearnerFlowDTO.setNotebookEntry(notebookEntryPresentable); + } + + + + /* Is the request for a preview by the author? Preview The tool must be able to show the specified content as if it was running in a lesson. It will be the learner url with tool access mode set to ToolAccessMode.AUTHOR @@ -386,7 +411,7 @@ * his answers must be displayed read-only * */ - String userID=voteLearningForm.getUserID(); + logger.debug("userID:" + userID); logger.debug("voteSession uid :" + voteSession.getUid()); Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteStarterAction.java =================================================================== diff -u -r2da37d46f5f9f140f21e1c7d93924f7a4ed6188a -rfadef2b7b1f00478057ecade707ca37aa24ebe15 --- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteStarterAction.java (.../VoteStarterAction.java) (revision 2da37d46f5f9f140f21e1c7d93924f7a4ed6188a) +++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/web/VoteStarterAction.java (.../VoteStarterAction.java) (revision fadef2b7b1f00478057ecade707ca37aa24ebe15) @@ -498,6 +498,10 @@ voteGeneralAuthoringDTO.setActivityInstructions(voteContent.getInstructions()); } + + voteAuthoringForm.setReflectionSubject(voteContent.getReflectionSubject()); + + /* * get the nominations */ Index: lams_tool_vote/web/WEB-INF/struts-config.xml =================================================================== diff -u -r5399ff761841ef5f7a767b9df7828fdb4f783aa6 -rfadef2b7b1f00478057ecade707ca37aa24ebe15 --- lams_tool_vote/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision 5399ff761841ef5f7a767b9df7828fdb4f783aa6) +++ lams_tool_vote/web/WEB-INF/struts-config.xml (.../struts-config.xml) (revision fadef2b7b1f00478057ecade707ca37aa24ebe15) @@ -216,6 +216,12 @@ path="/learning/defineLater.jsp" redirect="false" /> + +
+ |
+
+ |
+
+ |
+
+ |
+
+ |
+
+ | + +