Index: lams_tool_lamc/conf/language/ApplicationResources.properties =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/conf/language/Attic/ApplicationResources.properties,v diff -u -r1.27 -r1.28 --- lams_tool_lamc/conf/language/ApplicationResources.properties 1 Sep 2006 05:04:28 -0000 1.27 +++ lams_tool_lamc/conf/language/ApplicationResources.properties 5 Sep 2006 21:50:24 -0000 1.28 @@ -167,7 +167,7 @@ label.user =User label.attemptTime =Attempt Date/Time label.response =Response -label.learning.forceOfflineMessage =This is setup to be carried out offline. Plase see your instructor for details. +label.learning.forceOfflineMessage =This is setup to be carried out offline. Please see your instructor for details. error.defineLater =Please wait for the teacher to complete the contents of this activity. error.noStudentActivity =Sorry, the report can not be generated.
No student has attempted the activity yet. group.label =Group @@ -208,6 +208,10 @@ label.report.endLearningMessage.col =End of Activity Message: label.continue =Continue label.reflect =Reflect on MCQ +label.notebook.entries = Notebook Entries +label.reflection = Reflection +label.learner =Learner + #======= End labels: Exported 202 labels for en AU ===== Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java,v diff -u -r1.89 -r1.90 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java 31 Aug 2006 10:37:51 -0000 1.89 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McAppConstants.java 5 Sep 2006 21:50:22 -0000 1.90 @@ -231,6 +231,8 @@ public static final String USER_FEEDBACK ="userFeedback"; public static final String REPORT_TITLE_LEARNER ="reportTitleLearner"; public static final String TOTAL_COUNT_REACHED ="totalCountReached"; + public static final String NOTEBOOK ="notebook"; + public static final String ENTRY_TEXT ="entryText"; public static final String MC_LEARNER_STARTER_DTO ="mcLearnerStarterDTO"; public static final String IS_TOOL_ACTIVITY_OFFLINE ="isToolActivityOffline"; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java,v diff -u -r1.6 -r1.7 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java 30 Jul 2006 22:27:24 -0000 1.6 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/McGeneralLearnerFlowDTO.java 5 Sep 2006 21:50:22 -0000 1.7 @@ -66,6 +66,14 @@ protected String topMark; + protected String reflection; + + protected String reflectionSubject; + + protected String notebookEntry; + + protected String notebookEntriesVisible; + protected String lowestMark; protected String averageMark; @@ -478,4 +486,52 @@ public void setReportViewOnly(String reportViewOnly) { this.reportViewOnly = reportViewOnly; } + /** + * @return Returns the reflection. + */ + public String getReflection() { + return reflection; + } + /** + * @param reflection The reflection to set. + */ + public void setReflection(String reflection) { + this.reflection = reflection; + } + /** + * @return Returns the reflectionSubject. + */ + public String getReflectionSubject() { + return reflectionSubject; + } + /** + * @param reflectionSubject The reflectionSubject to set. + */ + public void setReflectionSubject(String reflectionSubject) { + this.reflectionSubject = reflectionSubject; + } + /** + * @return Returns the notebookEntry. + */ + public String getNotebookEntry() { + return notebookEntry; + } + /** + * @param notebookEntry The notebookEntry to set. + */ + public void setNotebookEntry(String notebookEntry) { + this.notebookEntry = notebookEntry; + } + /** + * @return Returns the notebookEntriesVisible. + */ + public String getNotebookEntriesVisible() { + return notebookEntriesVisible; + } + /** + * @param notebookEntriesVisible The notebookEntriesVisible to set. + */ + public void setNotebookEntriesVisible(String notebookEntriesVisible) { + this.notebookEntriesVisible = notebookEntriesVisible; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml,v diff -u -r1.13 -r1.14 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml 29 Aug 2006 04:36:40 -0000 1.13 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml 5 Sep 2006 21:50:22 -0000 1.14 @@ -83,10 +83,11 @@ - + + Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java,v diff -u -r1.10 -r1.11 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java 31 Aug 2006 10:32:09 -0000 1.10 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/pojos/McContent.java 5 Sep 2006 21:50:24 -0000 1.11 @@ -134,6 +134,8 @@ Integer passMark, boolean showReport, boolean showFeedback, boolean retries, boolean reflect, String reflectionSubject, Set mcQueContents, Set mcSessions, Set mcAttachments) { + + logger.debug("copying properties"); this.mcContentId = mcContentId; this.content=content; this.title = title; Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java,v diff -u -r1.54 -r1.55 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 22 Aug 2006 21:23:07 -0000 1.54 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/IMcService.java 5 Sep 2006 21:50:22 -0000 1.55 @@ -29,6 +29,7 @@ import org.lamsfoundation.lams.contentrepository.NodeKey; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.ToolSessionExportOutputData; import org.lamsfoundation.lams.tool.exception.DataMissingException; @@ -290,5 +291,14 @@ public List findMcOptionCorrectByQueId(Long mcQueContentId) throws McApplicationException; public List findMcOptionNamesByQueId(Long mcQueContentId) throws McApplicationException; + + public Long createNotebookEntry(Long id, Integer idType, String signature, + Integer userID, String entry); + + + public NotebookEntry getEntry(Long id, Integer idType, String signature, + Integer userID); + + } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java,v diff -u -r1.74 -r1.75 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 31 Aug 2006 10:32:08 -0000 1.74 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java 5 Sep 2006 21:50:22 -0000 1.75 @@ -51,6 +51,8 @@ import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService; import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException; import org.lamsfoundation.lams.lesson.Lesson; +import org.lamsfoundation.lams.notebook.model.NotebookEntry; +import org.lamsfoundation.lams.notebook.service.ICoreNotebookService; import org.lamsfoundation.lams.tool.IToolVO; import org.lamsfoundation.lams.tool.ToolContentImport102Manager; import org.lamsfoundation.lams.tool.ToolContentManager; @@ -118,6 +120,8 @@ private ILamsToolService toolService; private IToolContentHandler mcToolContentHandler = null; private IExportToolContentService exportContentService; + + private ICoreNotebookService coreNotebookService; public McServicePOJO(){} @@ -2740,5 +2744,37 @@ // qaContent.setReflectInstructions(description); } - //========================================================================================= + public Long createNotebookEntry(Long id, Integer idType, String signature, + Integer userID, String entry) { + logger.debug("coreNotebookService: " + coreNotebookService); + return coreNotebookService.createNotebookEntry(id, idType, signature, userID, "", entry); + } + + + + + public NotebookEntry getEntry(Long id, Integer idType, String signature, + Integer userID) { + + List list = coreNotebookService.getEntry(id, idType, signature, userID); + if (list == null || list.isEmpty()) { + return null; + } else { + return list.get(0); + } + } + + + /** + * @return Returns the coreNotebookService. + */ + public ICoreNotebookService getCoreNotebookService() { + return coreNotebookService; + } + /** + * @param coreNotebookService The coreNotebookService to set. + */ + public void setCoreNotebookService(ICoreNotebookService coreNotebookService) { + this.coreNotebookService = coreNotebookService; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java,v diff -u -r1.47 -r1.48 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java 31 Aug 2006 10:32:08 -0000 1.47 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/AuthoringUtil.java 5 Sep 2006 21:50:23 -0000 1.48 @@ -144,6 +144,16 @@ mcAuthoringForm.setSln(OFF); logger.debug("setting sln to false"); } + + + if (mcContent.isReflect()) + { + mcAuthoringForm.setReflect(ON); + } + else + { + mcAuthoringForm.setReflect(OFF); + } } @@ -1404,6 +1414,7 @@ boolean isRetries=false; boolean isShowFeedback=false; boolean isSln=false; + boolean isReflect=false; logger.debug("isQuestionsSequenced: " + mcAuthoringForm.getQuestionsSequenced()); if (mcAuthoringForm.getQuestionsSequenced().equalsIgnoreCase(ON)) @@ -1425,14 +1436,22 @@ if (mcAuthoringForm.getSln().equalsIgnoreCase(ON)) isSln=true; + logger.debug("isReflect" + mcAuthoringForm.getReflect()); + if (mcAuthoringForm.getReflect().equalsIgnoreCase(ON)) + isReflect=true; + + logger.debug("passmark: " + mcAuthoringForm.getPassmark()); if ((mcAuthoringForm.getPassmark() != null) && (mcAuthoringForm.getPassmark().length() > 0)) passmark= new Integer(mcAuthoringForm.getPassmark()).intValue(); logger.debug("isShowFeedback: " + mcAuthoringForm.getShowFeedback()); if (mcAuthoringForm.getShowFeedback().equalsIgnoreCase(ON)) isShowFeedback=true; - + + String reflectionSubject=request.getParameter(REFLECTION_SUBJECT); + logger.debug("reflectionSubject: " + reflectionSubject); + /* String richTextTitle=""; @@ -1511,6 +1530,8 @@ mc.setRetries(isRetries); mc.setPassMark(new Integer(passmark)); mc.setShowReport(isSln); + mc.setReflect(isReflect); + mc.setReflectionSubject(reflectionSubject); mc.setShowFeedback(isShowFeedback); mc.setMcQueContents(new TreeSet()); mc.setMcSessions(new TreeSet()); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java,v diff -u -r1.117 -r1.118 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 31 Aug 2006 10:32:09 -0000 1.117 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McAction.java 5 Sep 2006 21:50:23 -0000 1.118 @@ -2013,6 +2013,7 @@ boolean isRetries=false; boolean isShowFeedback=false; boolean isSln=false; + boolean isReflect=false; String monitoringReportTitle=""; String reportTitle=""; @@ -2056,6 +2057,18 @@ isSln=true; } + logger.debug("isReflect" + mcAuthoringForm.getReflect()); + if (mcAuthoringForm.getReflect() != null) + { + if (mcAuthoringForm.getReflect().equalsIgnoreCase(ON)) + isReflect=true; + } + + + String reflectionSubject=request.getParameter(REFLECTION_SUBJECT); + logger.debug("reflectionSubject: " + reflectionSubject); + + logger.debug("passmark: " + mcAuthoringForm.getPassmark()); if (mcAuthoringForm.getPassmark() != null) @@ -2237,8 +2250,13 @@ if (mcAuthoringForm.getSln() != null) mcContent.setShowReport(isSln); + + if (mcAuthoringForm.getReflect() != null) + mcContent.setReflect(isReflect); + mcContent.setPassMark(new Integer(passmark)); + mcContent.setReflectionSubject(reflectionSubject); if (activeModule.equals(AUTHORING)) { mcContent.setOfflineInstructions(richTextOfflineInstructions); Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java,v diff -u -r1.40 -r1.41 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java 26 Aug 2006 16:42:18 -0000 1.40 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningAction.java 5 Sep 2006 21:50:23 -0000 1.41 @@ -44,6 +44,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.exception.DataMissingException; import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.mc.McAppConstants; @@ -303,100 +305,179 @@ setContentInUse(request, toolContentId, mcService); return viewSummary(mapping, form, request, response); } + else if (mcLearningForm.getSubmitReflection() != null) + { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); + setContentInUse(request, toolContentId, mcService); + return submitReflection(mapping, form, request, response); + } + else if (mcLearningForm.getForwardtoReflection() != null) + { + LearningUtil.saveFormRequestData(request, mcLearningForm, false); + setContentInUse(request, toolContentId, mcService); + return forwardtoReflection(mapping, form, request, response); + } else if (mcLearningForm.getLearnerFinished() != null) { LearningUtil.saveFormRequestData(request, mcLearningForm, false); - logger.debug("requested learner finished, the learner should be directed to next activity."); - - logger.debug("toolSessionID: " + toolSessionID); - - String userID = ""; - HttpSession ss = SessionManager.getSession(); - logger.debug("ss: " + ss); - - if (ss != null) - { - UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); - if ((user != null) && (user.getUserID() != null)) - { - userID = user.getUserID().toString(); - logger.debug("retrieved userId: " + userID); - } - } - - logger.debug("attempting to leave/complete session with toolSessionId:" + toolSessionID + " and userID:"+userID); - - McUtils.cleanUpSessionAbsolute(request); - - String nextUrl=null; - try - { - nextUrl=mcService.leaveToolSession(new Long(toolSessionID), new Long(userID)); - logger.debug("nextUrl: "+ nextUrl); - } - catch (DataMissingException e) - { - logger.debug("failure getting nextUrl: "+ e); - return (mapping.findForward(LEARNING_STARTER)); - } - catch (ToolException e) - { - logger.debug("failure getting nextUrl: "+ e); - return (mapping.findForward(LEARNING_STARTER)); - } - catch (Exception e) - { - logger.debug("unknown exception getting nextUrl: "+ e); - return (mapping.findForward(LEARNING_STARTER)); - } - - logger.debug("success getting nextUrl: "+ nextUrl); - - McQueUsr mcQueUsr=mcService.getMcUserBySession(new Long(userID), mcSession.getUid()); - logger.debug("mcQueUsr:" + mcQueUsr); - - mcQueUsr.setResponseFinalised(true); - mcService.updateMcQueUsr(mcQueUsr); - logger.debug("response finalised for user:" + mcQueUsr); - - mcQueUsr.setViewSummaryRequested(true); - mcService.updateMcQueUsr(mcQueUsr); - logger.debug("view summary requested by mcQueUsr: " + mcQueUsr); - - - McUsrAttempt mcUsrAttempt = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid()); - logger.debug("mcUsrAttempt with highest attempt order: " + mcUsrAttempt); - String highestAttemptOrder=""; - - if (mcUsrAttempt != null) - { - highestAttemptOrder=mcUsrAttempt.getAttemptOrder().toString(); - logger.debug("highestAttemptOrder: " + highestAttemptOrder); - List userAttempts=mcService.getAttemptsForUserOnHighestAttemptOrderInSession(mcQueUsr.getUid(), mcSession.getUid(), new Integer(highestAttemptOrder)); - logger.debug("userAttempts:" + userAttempts); - - Iterator itAttempts=userAttempts.iterator(); - while (itAttempts.hasNext()) - { - mcUsrAttempt=(McUsrAttempt)itAttempts.next(); - logger.debug("mcUsrAttempt: " + mcUsrAttempt); - mcUsrAttempt.setFinished(true); - mcService.updateMcUsrAttempt(mcUsrAttempt); - } - logger.debug("updated user records to finished"); - } - - - logger.debug("redirecting to the nextUrl: "+ nextUrl); - response.sendRedirect(nextUrl); - - return null; + setContentInUse(request, toolContentId, mcService); + return endLearning(mapping, form, request, response); } return (mapping.findForward(LOAD_LEARNER)); } + + public ActionForward endLearning(ActionMapping mapping, + ActionForm form, + HttpServletRequest request, + HttpServletResponse response) throws IOException, + ServletException + { + logger.debug("dispatching endLearning "); + McLearningForm mcLearningForm = (McLearningForm) form; + IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + logger.debug("toolSessionID: " + toolSessionID); + mcLearningForm.setToolSessionID(toolSessionID); + + McSession mcSession=mcService.retrieveMcSession(new Long(toolSessionID)); + logger.debug("retrieving mcSession: " + mcSession); + + String toolContentId=mcSession.getMcContent().getMcContentId().toString(); + logger.debug("toolContentId: " + toolContentId); + mcLearningForm.setToolContentID(toolContentId); + + logger.debug("mcLearningForm nextQuestionSelected : " + mcLearningForm.getNextQuestionSelected()); + + LearningUtil.saveFormRequestData(request, mcLearningForm, false); + logger.debug("requested learner finished, the learner should be directed to next activity."); + + logger.debug("toolSessionID: " + toolSessionID); + + String userID = ""; + HttpSession ss = SessionManager.getSession(); + logger.debug("ss: " + ss); + + if (ss != null) + { + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + if ((user != null) && (user.getUserID() != null)) + { + userID = user.getUserID().toString(); + logger.debug("retrieved userId: " + userID); + } + } + + logger.debug("attempting to leave/complete session with toolSessionId:" + toolSessionID + " and userID:"+userID); + + McUtils.cleanUpSessionAbsolute(request); + + String nextUrl=null; + try + { + nextUrl=mcService.leaveToolSession(new Long(toolSessionID), new Long(userID)); + logger.debug("nextUrl: "+ nextUrl); + } + catch (DataMissingException e) + { + logger.debug("failure getting nextUrl: "+ e); + return (mapping.findForward(LEARNING_STARTER)); + } + catch (ToolException e) + { + logger.debug("failure getting nextUrl: "+ e); + return (mapping.findForward(LEARNING_STARTER)); + } + catch (Exception e) + { + logger.debug("unknown exception getting nextUrl: "+ e); + return (mapping.findForward(LEARNING_STARTER)); + } + + logger.debug("success getting nextUrl: "+ nextUrl); + + McQueUsr mcQueUsr=mcService.getMcUserBySession(new Long(userID), mcSession.getUid()); + logger.debug("mcQueUsr:" + mcQueUsr); + + + + /* it is possible that mcQueUsr can be null if the content is set as runoffline and reflection is on*/ + if (mcQueUsr == null) + { + logger.debug("attempt creating user record since it must exist for the runOffline + reflection screens"); + + 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("userId: " + userId); + logger.debug("retrieving toolUser fullname: " + fullName); + + mcQueUsr= new McQueUsr(userId, + userName, + fullName, + mcSession, + new TreeSet()); + mcService.createMcQueUsr(mcQueUsr); + logger.debug("createMcQueUsr - mcQueUsr: " + mcQueUsr); + + logger.debug("session uid: " + mcSession.getUid()); + logger.debug("mcQueUsr: " + mcQueUsr); + mcService.createMcQueUsr(mcQueUsr); + logger.debug("created mcQueUsr in the db: " + mcQueUsr); + } + + + + mcQueUsr.setResponseFinalised(true); + mcService.updateMcQueUsr(mcQueUsr); + logger.debug("response finalised for user:" + mcQueUsr); + + mcQueUsr.setViewSummaryRequested(true); + mcService.updateMcQueUsr(mcQueUsr); + logger.debug("view summary requested by mcQueUsr: " + mcQueUsr); + + + McUsrAttempt mcUsrAttempt = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid()); + logger.debug("mcUsrAttempt with highest attempt order: " + mcUsrAttempt); + String highestAttemptOrder=""; + + if (mcUsrAttempt != null) + { + highestAttemptOrder=mcUsrAttempt.getAttemptOrder().toString(); + logger.debug("highestAttemptOrder: " + highestAttemptOrder); + List userAttempts=mcService.getAttemptsForUserOnHighestAttemptOrderInSession(mcQueUsr.getUid(), mcSession.getUid(), new Integer(highestAttemptOrder)); + logger.debug("userAttempts:" + userAttempts); + + Iterator itAttempts=userAttempts.iterator(); + while (itAttempts.hasNext()) + { + mcUsrAttempt=(McUsrAttempt)itAttempts.next(); + logger.debug("mcUsrAttempt: " + mcUsrAttempt); + mcUsrAttempt.setFinished(true); + mcService.updateMcUsrAttempt(mcUsrAttempt); + } + logger.debug("updated user records to finished"); + } + + + logger.debug("redirecting to the nextUrl: "+ nextUrl); + response.sendRedirect(nextUrl); + + return null; + } + + + protected Set parseLearnerInput(List learnerInput, McContent mcContent, IMcService mcService) { logger.debug("learnerInput: " + learnerInput); @@ -814,6 +895,12 @@ logger.debug("user over passmark:" + mcGeneralLearnerFlowDTO.getUserOverPassMark()); logger.debug("is passmark applicable:" + mcGeneralLearnerFlowDTO.getPassMarkApplicable()); + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); @@ -927,6 +1014,11 @@ logger.debug("totalQuestionCount has been reached :" + totalQuestionCount); mcGeneralLearnerFlowDTO.setTotalCountReached(new Boolean(true).toString()); } + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); mcGeneralLearnerFlowDTO.setQuestionIndex(new Integer(questionIndex).toString()); request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); @@ -1010,7 +1102,14 @@ int learnerBestMark=LearningUtil.getHighestMark(request, queUsrId, mcService); logger.debug("learnerBestMark: " + learnerBestMark); mcGeneralLearnerFlowDTO.setLearnerBestMark(new Integer(learnerBestMark).toString()); + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); @@ -1227,7 +1326,39 @@ mcGeneralLearnerFlowDTO.setMapQueAttempts(mapQueAttempts); mcGeneralLearnerFlowDTO.setMapQueCorrectAttempts(mapQueCorrectAttempts); mcGeneralLearnerFlowDTO.setMapQueIncorrectAttempts(mapQueIncorrectAttempts); + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + + + String userID = ""; + HttpSession ss = SessionManager.getSession(); + logger.debug("ss: " + ss); + + if (ss != null) + { + UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); + if ((user != null) && (user.getUserID() != null)) + { + userID = user.getUserID().toString(); + logger.debug("retrieved userId: " + userID); + } + } + logger.debug("attempt getting notebookEntry: "); + NotebookEntry notebookEntry = mcService.getEntry(new Long(toolSessionID), + CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, new Integer(userID)); + + logger.debug("notebookEntry: " + notebookEntry); + + if (notebookEntry != null) { + mcGeneralLearnerFlowDTO.setNotebookEntry(notebookEntry.getEntry()); + } + + String reportViewOnly=mcLearningForm.getReportViewOnly(); logger.debug("reportViewOnly: " + reportViewOnly); @@ -1305,6 +1436,7 @@ mcQueUsr.setViewSummaryRequested(true); mcService.updateMcQueUsr(mcQueUsr); logger.debug("view summary requested by mcQueUsr: " + mcQueUsr); + String toolContentId=mcSession.getMcContent().getMcContentId().toString(); logger.debug("toolContentId: " + toolContentId); @@ -1314,6 +1446,10 @@ McGeneralLearnerFlowDTO mcGeneralLearnerFlowDTO=LearningUtil.buildMcGeneralLearnerFlowDTO(mcContent); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + mcGeneralLearnerFlowDTO.setNotebookEntriesVisible(new Boolean(false).toString()); + + int countSessionComplete=0; Iterator sessionsIterator=mcContent.getMcSessions().iterator(); while (sessionsIterator.hasNext()) @@ -1345,7 +1481,12 @@ mcGeneralLearnerFlowDTO.setTopMark(new Integer(topMark).toString()); mcGeneralLearnerFlowDTO.setLowestMark(new Integer(lowestMark).toString()); mcGeneralLearnerFlowDTO.setAverageMark(new Integer(averageMark).toString()); - + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); @@ -1410,6 +1551,12 @@ McGeneralLearnerFlowDTO mcGeneralLearnerFlowDTO=LearningUtil.buildMcGeneralLearnerFlowDTO(mcContent); mcGeneralLearnerFlowDTO.setQuestionIndex(new Integer(1).toString()); + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); @@ -1429,6 +1576,108 @@ 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..."); + McLearningForm mcLearningForm = (McLearningForm) form; + + IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + logger.debug("mcService: " + mcService); + + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + logger.debug("toolSessionID: " + toolSessionID); + mcLearningForm.setToolSessionID(toolSessionID); + + String userID=request.getParameter("userID"); + logger.debug("userID: " + userID); + mcLearningForm.setUserID(userID); + + String reflectionEntry=request.getParameter(ENTRY_TEXT); + logger.debug("reflectionEntry: " + reflectionEntry); + + McSession mcSession=mcService.retrieveMcSession(new Long(toolSessionID)); + logger.debug("retrieving mcSession: " + mcSession); + + McQueUsr mcQueUsr=mcService.getMcUserBySession(new Long(userID), mcSession.getUid()); + logger.debug("McQueUsr:" + mcQueUsr); + + /* it is possible that mcQueUsr can be null if the content is set as runoffline and reflection is on*/ + if (mcQueUsr == 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("userId: " + userId); + logger.debug("retrieving toolUser fullname: " + fullName); + + mcQueUsr= new McQueUsr(userId, + userName, + fullName, + mcSession, + new TreeSet()); + mcService.createMcQueUsr(mcQueUsr); + logger.debug("createMcQueUsr - mcQueUsr: " + mcQueUsr); + + logger.debug("session uid: " + mcSession.getUid()); + logger.debug("mcQueUsr: " + mcQueUsr); + mcService.createMcQueUsr(mcQueUsr); + logger.debug("created mcQueUsr in the db: " + mcQueUsr); + } + + logger.debug("McQueUsr:" + mcQueUsr); + 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); + + mcService.createNotebookEntry(new Long(toolSessionID), CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, new Integer(userID), reflectionEntry); + + return endLearning(mapping, form, request, response); + } + + public ActionForward forwardtoReflection(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) + throws IOException, ServletException, ToolException + { + logger.debug("dispatching forwardtoReflection..."); + McLearningForm mcLearningForm = (McLearningForm) form; + IMcService mcService = McServiceProxy.getMcService(getServlet().getServletContext()); + logger.debug("mcService: " + mcService); + + String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID); + logger.debug("toolSessionID: " + toolSessionID); + + McSession mcSession=mcService.retrieveMcSession(new Long(toolSessionID)); + logger.debug("retrieving mcSession: " + mcSession); + + McContent mcContent=mcSession.getMcContent(); + logger.debug("using mcContent: " + mcContent); + + + McGeneralLearnerFlowDTO mcGeneralLearnerFlowDTO= new McGeneralLearnerFlowDTO(); + mcGeneralLearnerFlowDTO.setActivityTitle(mcContent.getTitle()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); + logger.debug("final mcGeneralLearnerFlowDTO: " + mcGeneralLearnerFlowDTO); + + logger.debug("fwd'ing to: " + NOTEBOOK); + return (mapping.findForward(NOTEBOOK)); + } + } \ No newline at end of file Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java,v diff -u -r1.24 -r1.25 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java 23 Aug 2006 12:23:45 -0000 1.24 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningForm.java 5 Sep 2006 21:50:22 -0000 1.25 @@ -45,8 +45,9 @@ protected String redoQuestionsOk; protected String donePreview; protected String doneLearnerProgress; + protected String submitReflection; + protected String forwardtoReflection; - protected String[] checkedCa; protected String[] sequentialCheckedCa; @@ -66,6 +67,8 @@ protected String reportViewOnly; protected String questionListingMode; + + protected String entryText; protected String questionIndex; protected String nextQuestionSelected; @@ -449,4 +452,42 @@ public void setUserID(String userID) { this.userID = userID; } + + /** + * @return Returns the submitReflection. + */ + public String getSubmitReflection() { + return submitReflection; + } + /** + * @param submitReflection The submitReflection to set. + */ + public void setSubmitReflection(String submitReflection) { + this.submitReflection = submitReflection; + } + + /** + * @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 entryText. + */ + public String getEntryText() { + return entryText; + } + /** + * @param entryText The entryText to set. + */ + public void setEntryText(String entryText) { + this.entryText = entryText; + } } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java,v diff -u -r1.65 -r1.66 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 31 Aug 2006 10:32:09 -0000 1.65 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McLearningStarterAction.java 5 Sep 2006 21:50:23 -0000 1.66 @@ -41,6 +41,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.mc.McAppConstants; import org.lamsfoundation.lams.tool.mc.McApplicationException; import org.lamsfoundation.lams.tool.mc.McComparator; @@ -189,6 +191,7 @@ mcLearningForm.setMcService(mcService); mcLearningForm.setPassMarkApplicable(new Boolean(false).toString()); mcLearningForm.setUserOverPassMark(new Boolean(false).toString()); + ActionForward validateParameters=validateParameters(request, mcLearningForm, mapping); logger.debug("validateParameters: " + validateParameters); @@ -269,7 +272,7 @@ request.setAttribute(MC_LEARNER_STARTER_DTO, mcLearnerStarterDTO); mcLearningForm.setToolContentID(mcContent.getMcContentId().toString()); - commonContentSetup(request, mcContent, mcService); + commonContentSetup(request, mcContent, mcService,mcLearningForm, toolSessionID); /* Is the request for a preview by the author? @@ -485,7 +488,8 @@ * @param request * @param mcContent */ - protected void commonContentSetup(HttpServletRequest request, McContent mcContent, IMcService mcService) + protected void commonContentSetup(HttpServletRequest request, McContent mcContent, IMcService mcService, + McLearningForm mcLearningForm, String toolSessionID) { Map mapQuestionsContent= new TreeMap(new McComparator()); @@ -497,7 +501,29 @@ McGeneralLearnerFlowDTO mcGeneralLearnerFlowDTO=LearningUtil.buildMcGeneralLearnerFlowDTO(mcContent); mcGeneralLearnerFlowDTO.setTotalCountReached(new Boolean(false).toString()); mcGeneralLearnerFlowDTO.setQuestionIndex(new Integer(1).toString()); + + logger.debug("is tool reflective: " + mcContent.isReflect()); + mcGeneralLearnerFlowDTO.setReflection(new Boolean(mcContent.isReflect()).toString()); + logger.debug("reflection subject: " + mcContent.getReflectionSubject()); + mcGeneralLearnerFlowDTO.setReflectionSubject(mcContent.getReflectionSubject()); + + + String userID=mcLearningForm.getUserID(); + logger.debug("userID: " + userID); + + + logger.debug("attempt getting notebookEntry: "); + NotebookEntry notebookEntry = mcService.getEntry(new Long(toolSessionID), + CoreNotebookConstants.NOTEBOOK_TOOL, + MY_SIGNATURE, new Integer(userID)); + + logger.debug("notebookEntry: " + notebookEntry); + + if (notebookEntry != null) { + mcGeneralLearnerFlowDTO.setNotebookEntry(notebookEntry.getEntry()); + } + request.setAttribute(MC_GENERAL_LEARNER_FLOW_DTO, mcGeneralLearnerFlowDTO); logger.debug("MC_GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(MC_GENERAL_LEARNER_FLOW_DTO)); } Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java,v diff -u -r1.80 -r1.81 --- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java 31 Aug 2006 10:32:08 -0000 1.80 +++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McStarterAction.java 5 Sep 2006 21:50:23 -0000 1.81 @@ -537,6 +537,8 @@ request.getSession().setAttribute(RICHTEXT_TITLE,mcContent.getTitle()); request.getSession().setAttribute(RICHTEXT_INSTRUCTIONS,mcContent.getInstructions()); + mcAuthoringForm.setReflectionSubject(mcContent.getReflectionSubject()); + logger.debug("passMark:" +mcContent.getPassMark()); if (mcContent.getPassMark() == null) mcContent.setPassMark(new Integer(0)); @@ -669,8 +671,9 @@ { request.getSession().setAttribute(RICHTEXT_INSTRUCTIONS,mcContent.getInstructions()); } + + mcAuthoringForm.setReflectionSubject(mcContent.getReflectionSubject()); - request.getSession().setAttribute(DEFINE_LATER, new Boolean(mcContent.isDefineLater())); request.getSession().setAttribute(RICHTEXT_OFFLINEINSTRUCTIONS,mcContent.getOfflineInstructions()); request.getSession().setAttribute(RICHTEXT_ONLINEINSTRUCTIONS,mcContent.getOnlineInstructions()); @@ -700,6 +703,7 @@ mcAuthoringForm.setRetries(OFF); mcAuthoringForm.setShowFeedback(OFF); mcAuthoringForm.setSln(OFF); + mcAuthoringForm.setReflect(OFF); /* collect options for the default question content into a Map*/ McQueContent mcQueContent=mcService.getToolDefaultQuestionContent(mcContent.getUid().longValue()); Index: lams_tool_lamc/web/WEB-INF/struts-config.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/WEB-INF/struts-config.xml,v diff -u -r1.54 -r1.55 --- lams_tool_lamc/web/WEB-INF/struts-config.xml 30 Jul 2006 22:27:24 -0000 1.54 +++ lams_tool_lamc/web/WEB-INF/struts-config.xml 5 Sep 2006 21:50:23 -0000 1.55 @@ -198,6 +198,13 @@ path="/McErrorBox.jsp" redirect="false" /> + + + @@ -264,6 +271,13 @@ path="/learning/Preview.jsp" redirect="false" /> + + + Index: lams_tool_lamc/web/authoring/AdvancedContent.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/authoring/AdvancedContent.jsp,v diff -u -r1.13 -r1.14 --- lams_tool_lamc/web/authoring/AdvancedContent.jsp 31 Aug 2006 10:32:08 -0000 1.13 +++ lams_tool_lamc/web/authoring/AdvancedContent.jsp 5 Sep 2006 21:50:22 -0000 1.14 @@ -99,7 +99,7 @@   - + @@ -110,12 +110,6 @@ - - - - - - Index: lams_tool_lamc/web/learning/IndividualLearnerResults.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/learning/Attic/IndividualLearnerResults.jsp,v diff -u -r1.21 -r1.22 --- lams_tool_lamc/web/learning/IndividualLearnerResults.jsp 23 Aug 2006 12:23:45 -0000 1.21 +++ lams_tool_lamc/web/learning/IndividualLearnerResults.jsp 5 Sep 2006 21:50:23 -0000 1.22 @@ -167,14 +167,30 @@ - - - + + + + + + + + + + + - - - + + + + + + + + + + + @@ -191,9 +207,17 @@
- - - + + + + + + + + + + +
Index: lams_tool_lamc/web/learning/Notebook.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/learning/Notebook.jsp,v diff -u --- /dev/null 1 Jan 1970 00:00:00 -0000 +++ lams_tool_lamc/web/learning/Notebook.jsp 5 Sep 2006 21:50:23 -0000 1.1 @@ -0,0 +1,98 @@ +<%-- +Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org) +License Information: http://lamsfoundation.org/licensing/lams/2.0/ + + This program is free software; you can redistribute it and/or modify + it under the terms of the GNU General Public License version 2 as + published by the Free Software Foundation. + + This program is distributed in the hope that it will be useful, + but WITHOUT ANY WARRANTY; without even the implied warranty of + MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the + GNU General Public License for more details. + + You should have received a copy of the GNU General Public License + along with this program; if not, write to the Free Software + Foundation, Inc., 59 Temple Place, Suite 330, Boston, MA 02111-1307 + USA + + http://www.gnu.org/licenses/gpl.txt +--%> + + + +<%@ include file="/common/taglibs.jsp"%> + + + + + + + + + + + + + <bean:message key="activity.title" /> + + + +
+ +

+ +

+ + +
+ + + + + + + +
+ + + + + + + + + + + + + +
+ +
+ +
+ + + +
+ + +
+
+ + + + +
+ +
+ + + + + + + + Index: lams_tool_lamc/web/learning/ResultsSummary.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/learning/Attic/ResultsSummary.jsp,v diff -u -r1.17 -r1.18 --- lams_tool_lamc/web/learning/ResultsSummary.jsp 23 Aug 2006 12:23:45 -0000 1.17 +++ lams_tool_lamc/web/learning/ResultsSummary.jsp 5 Sep 2006 21:50:23 -0000 1.18 @@ -134,9 +134,17 @@
- + + - + + + + + + + +
Index: lams_tool_lamc/web/learning/RunOffline.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/learning/Attic/RunOffline.jsp,v diff -u -r1.2 -r1.3 --- lams_tool_lamc/web/learning/RunOffline.jsp 31 Aug 2006 10:32:09 -0000 1.2 +++ lams_tool_lamc/web/learning/RunOffline.jsp 5 Sep 2006 21:50:23 -0000 1.3 @@ -45,10 +45,40 @@
-
-       -
+ + + + + + +
+       + + + + + +
+
+ + + + + + + + + + + + + +
+
+
+
+ Index: lams_tool_lamc/web/learning/ViewAnswers.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_lamc/web/learning/ViewAnswers.jsp,v diff -u -r1.27 -r1.28 --- lams_tool_lamc/web/learning/ViewAnswers.jsp 23 Aug 2006 12:23:45 -0000 1.27 +++ lams_tool_lamc/web/learning/ViewAnswers.jsp 5 Sep 2006 21:50:23 -0000 1.28 @@ -194,17 +194,47 @@
- - - + + + + + + + + + + + +
- + + + + + + + + + + + + +
+ +
+ +
+ + + + +