Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java,v
diff -u -r1.15 -r1.16
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java 5 Aug 2006 14:08:02 -0000 1.15
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningAction.java 20 Aug 2006 20:55:06 -0000 1.16
@@ -87,6 +87,8 @@
import java.io.IOException;
import java.util.Date;
+import java.util.HashMap;
+import java.util.Iterator;
import java.util.Map;
import java.util.TreeMap;
@@ -104,6 +106,7 @@
import org.lamsfoundation.lams.tool.qa.QaAppConstants;
import org.lamsfoundation.lams.tool.qa.QaComparator;
import org.lamsfoundation.lams.tool.qa.QaContent;
+import org.lamsfoundation.lams.tool.qa.QaQueContent;
import org.lamsfoundation.lams.tool.qa.QaSession;
import org.lamsfoundation.lams.tool.qa.service.IQaService;
import org.lamsfoundation.lams.tool.qa.service.QaServiceProxy;
@@ -224,7 +227,147 @@
return (mapping.findForward(INDIVIDUAL_LEARNER_RESULTS));
}
-
+
+ public ActionForward redoQuestions(ActionMapping mapping,
+ ActionForm form,
+ HttpServletRequest request,
+ HttpServletResponse response) throws IOException,
+ ServletException
+ {
+ logger.debug("dispatching redoQuestions...");
+ QaLearningForm qaLearningForm = (QaLearningForm) form;
+ IQaService qaService = QaServiceProxy.getQaService(getServlet().getServletContext());
+ logger.debug("qaService: " + qaService);
+
+ String toolSessionID=request.getParameter(AttributeNames.PARAM_TOOL_SESSION_ID);
+ logger.debug("toolSessionID: " + toolSessionID);
+ qaLearningForm.setToolSessionID(toolSessionID);
+
+ QaSession qaSession=qaService.retrieveQaSessionOrNullById(new Long(toolSessionID).longValue());
+ logger.debug("retrieving qaSession: " + qaSession);
+
+ String toolContentID=qaSession.getQaContent().getQaContentId().toString();
+ logger.debug("toolContentID: " + toolContentID);
+
+ QaContent qaContent=qaSession.getQaContent();
+ logger.debug("using qaContent: " + qaContent);
+
+ GeneralLearnerFlowDTO generalLearnerFlowDTO= LearningUtil.buildGeneralLearnerFlowDTO(qaContent);
+ logger.debug("generalLearnerFlowDTO: " + generalLearnerFlowDTO);
+
+ LearningUtil.saveFormRequestData(request, qaLearningForm);
+
+ Map mapQuestions= new TreeMap(new QaComparator());
+ Map mapAnswers= new TreeMap(new QaComparator());
+
+ generalLearnerFlowDTO.setCurrentQuestionIndex(new Integer(1));
+ qaLearningForm.setCurrentQuestionIndex(new Integer(1).toString());
+
+ //SessionMap sessionMap = new SessionMap();
+
+ String httpSessionID=qaLearningForm.getHttpSessionID();
+ logger.debug("httpSessionID: " + httpSessionID);
+
+ SessionMap sessionMap = (SessionMap) request.getSession().getAttribute(httpSessionID);
+ logger.debug("sessionMap: " + sessionMap);
+
+ Map mapSequentialAnswers= new HashMap();
+ sessionMap.put(MAP_SEQUENTIAL_ANSWERS_KEY, mapSequentialAnswers);
+ request.getSession().setAttribute(sessionMap.getSessionID(), sessionMap);
+ qaLearningForm.setHttpSessionID(sessionMap.getSessionID());
+ generalLearnerFlowDTO.setHttpSessionID(sessionMap.getSessionID());
+
+ generalLearnerFlowDTO.setActivityTitle(qaContent.getTitle());
+ generalLearnerFlowDTO.setActivityInstructions(qaContent.getInstructions());
+
+
+ logger.debug("using TOOL_CONTENT_ID: " + qaContent.getQaContentId());
+ generalLearnerFlowDTO.setToolContentID(qaContent.getQaContentId().toString());
+
+
+ /*
+ * The content we retrieved above must have been created before in Authoring time.
+ * And the passed tool session id refers to it.
+ */
+
+
+ logger.debug("REPORT_TITLE_LEARNER: " + qaContent.getReportTitle());
+ generalLearnerFlowDTO.setReportTitleLearner(qaContent.getReportTitle());
+
+ generalLearnerFlowDTO.setEndLearningMessage(qaContent.getEndLearningMessage());
+ logger.debug("END_LEARNING_MESSAGE: " + qaContent.getEndLearningMessage());
+ /*
+ * Is the tool activity been checked as Run Offline in the property inspector?
+ */
+ logger.debug("IS_TOOL_ACTIVITY_OFFLINE: " + qaContent.isRunOffline());
+ generalLearnerFlowDTO.setActivityOffline(new Boolean(qaContent.isRunOffline()).toString());
+
+ logger.debug("IS_USERNAME_VISIBLE: " + qaContent.isUsernameVisible());
+ generalLearnerFlowDTO.setUserNameVisible(new Boolean(qaContent.isUsernameVisible()).toString());
+
+
+ /*
+ * Learning mode requires this setting for jsp to generate the user's report
+ */
+ logger.debug("IS_QUESTIONS_SEQUENCED: " + qaContent.isQuestionsSequenced());
+ String feedBackType="";
+ if (qaContent.isQuestionsSequenced())
+ {
+ generalLearnerFlowDTO.setQuestionListingMode(QUESTION_LISTING_MODE_SEQUENTIAL);
+ feedBackType=FEEDBACK_TYPE_SEQUENTIAL;
+ }
+ else
+ {
+ generalLearnerFlowDTO.setQuestionListingMode(QUESTION_LISTING_MODE_COMBINED);
+ feedBackType=FEEDBACK_TYPE_COMBINED;
+ }
+ logger.debug("QUESTION_LISTING_MODE: " + generalLearnerFlowDTO.getQuestionListingMode());
+
+
+ /*
+ * fetch question content from content
+ */
+ Iterator contentIterator=qaContent.getQaQueContents().iterator();
+ while (contentIterator.hasNext())
+ {
+ QaQueContent qaQueContent=(QaQueContent)contentIterator.next();
+ if (qaQueContent != null)
+ {
+ int displayOrder=qaQueContent.getDisplayOrder();
+ if (displayOrder != 0)
+ {
+ /*
+ * add the question to the questions Map in the displayOrder
+ */
+ mapQuestions.put(new Integer(displayOrder).toString(),qaQueContent.getQuestion());
+ }
+ }
+ }
+
+
+ mapAnswers=(Map)sessionMap.get(MAP_ALL_RESULTS_KEY);
+ logger.debug("mapAnswers: " + mapAnswers);
+
+ qaLearningForm.setHttpSessionID(sessionMap.getSessionID());
+ generalLearnerFlowDTO.setHttpSessionID(sessionMap.getSessionID());
+
+ logger.debug("mapQuestions: " + mapQuestions);
+ generalLearnerFlowDTO.setMapAnswers(mapAnswers);
+ generalLearnerFlowDTO.setMapQuestionContentLearner(mapQuestions);
+ generalLearnerFlowDTO.setMapQuestions(mapQuestions);
+ logger.debug("mapQuestions has : " + mapQuestions.size() + " entries.");
+
+ generalLearnerFlowDTO.setTotalQuestionCount(new Integer(mapQuestions.size()));
+ qaLearningForm.setTotalQuestionCount(new Integer(mapQuestions.size()).toString());
+
+ request.setAttribute(GENERAL_LEARNER_FLOW_DTO, generalLearnerFlowDTO);
+ logger.debug("GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(GENERAL_LEARNER_FLOW_DTO));
+ logger.debug("forwarding to: " + LOAD_LEARNER);
+ return (mapping.findForward(LOAD_LEARNER));
+ }
+
+
+
/**
* returns Learner Report for a session
* ActionForward viewAllResults(ActionMapping mapping,
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningForm.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/Attic/QaLearningForm.java,v
diff -u -r1.15 -r1.16
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningForm.java 28 Jul 2006 20:18:48 -0000 1.15
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningForm.java 20 Aug 2006 20:55:06 -0000 1.16
@@ -47,6 +47,7 @@
protected String questionIndex;
protected String userID;
protected String viewAllResults;
+ protected String redoQuestions;
protected String responseId;
protected String requestLearningReport;
@@ -294,4 +295,16 @@
this.requestLearningReportViewOnly = requestLearningReportViewOnly;
}
+ /**
+ * @return Returns the redoQuestions.
+ */
+ public String getRedoQuestions() {
+ return redoQuestions;
+ }
+ /**
+ * @param redoQuestions The redoQuestions to set.
+ */
+ public void setRedoQuestions(String redoQuestions) {
+ this.redoQuestions = redoQuestions;
+ }
}
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java,v
diff -u -r1.48 -r1.49
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 8 Aug 2006 21:57:02 -0000 1.48
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 20 Aug 2006 20:55:05 -0000 1.49
@@ -248,25 +248,6 @@
return (mapping.findForward(ERROR_LIST_LEARNER));
}
-
- /*
- if (qaContent.getTitle() == null)
- {
- generalLearnerFlowDTO.setActivityTitle("Q&A Title");
- generalLearnerFlowDTO.setActivityInstructions("Q&A Instructions");
- }
- else if (qaContent.getTitle().equals(""))
- {
- generalLearnerFlowDTO.setActivityTitle("Q&A Title");
- generalLearnerFlowDTO.setActivityInstructions("Q&A Instructions");
- }
- else
- {
- generalLearnerFlowDTO.setActivityTitle(qaContent.getTitle());
- generalLearnerFlowDTO.setActivityInstructions(qaContent.getInstructions());
- }
- */
-
generalLearnerFlowDTO.setActivityTitle(qaContent.getTitle());
generalLearnerFlowDTO.setActivityInstructions(qaContent.getInstructions());
@@ -342,6 +323,17 @@
}
}
+ mapAnswers=mapQuestions;
+ Iterator itMap = mapAnswers.entrySet().iterator();
+
+ while (itMap.hasNext())
+ {
+ Map.Entry pairs = (Map.Entry)itMap.next();
+ pairs.setValue("");
+ }
+ logger.debug("mapAnswers : " + mapAnswers);
+
+
generalLearnerFlowDTO.setMapAnswers(mapAnswers);
generalLearnerFlowDTO.setMapQuestionContentLearner(mapQuestions);
generalLearnerFlowDTO.setMapQuestions(mapQuestions);
@@ -455,13 +447,31 @@
* the report should have only the current session's entries*/
generalLearnerFlowDTO.setRequestLearningReport(new Boolean(true).toString());
- generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(true).toString());
+
logger.debug("using generalLearnerFlowDTO: " + generalLearnerFlowDTO);
qaMonitoringAction.refreshSummaryData(request, qaContent, qaService, isUserNamesVisible, true,
currentToolSessionID.toString(), null, generalLearnerFlowDTO, false);
logger.debug("final generalLearnerFlowDTO: " + generalLearnerFlowDTO);
+
+ boolean isSessionCompleted=isSessionCompleted(currentToolSessionID.toString(), qaService);
+ logger.debug("isSessionCompleted: " + isSessionCompleted);
+
+ if (isSessionCompleted)
+ {
+ logger.debug("since the session is completed present a screen which can not be edited");
+ generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(true).toString());
+ }
+ else
+ {
+ generalLearnerFlowDTO.setRequestLearningReportViewOnly(new Boolean(false).toString());
+ }
+
+ request.setAttribute(GENERAL_LEARNER_FLOW_DTO, generalLearnerFlowDTO);
+ logger.debug("before fwd, GENERAL_LEARNER_FLOW_DTO: " + request.getAttribute(GENERAL_LEARNER_FLOW_DTO));
+
+
logger.debug("fwd'ing to." + INDIVIDUAL_LEARNER_REPORT);
return (mapping.findForward(INDIVIDUAL_LEARNER_REPORT));
}
@@ -562,6 +572,21 @@
}
+ boolean isSessionCompleted(String userSessionId, IQaService qaService)
+ {
+ logger.debug("userSessionId:" + userSessionId);
+ QaSession qaSession=qaService.retrieveQaSessionOrNullById(new Long(userSessionId).longValue());
+ logger.debug("retrieving qaSession: " + qaSession);
+ logger.debug("voteSession status : " + qaSession.getSession_status());
+ if ((qaSession.getSession_status() != null) && (qaSession.getSession_status().equals(COMPLETED)))
+ {
+ logger.debug("this session is COMPLETED voteSession status : " + userSessionId);
+ return true;
+ }
+ return false;
+ }
+
+
/**
* persists error messages to request scope
* @param request
Index: lams_tool_laqa/web/learning/CombinedAnswersContent.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/CombinedAnswersContent.jsp,v
diff -u -r1.14 -r1.15
--- lams_tool_laqa/web/learning/CombinedAnswersContent.jsp 10 Aug 2006 00:53:31 -0000 1.14
+++ lams_tool_laqa/web/learning/CombinedAnswersContent.jsp 20 Aug 2006 20:55:05 -0000 1.15
@@ -34,30 +34,35 @@
-
- :
- |
-
-
-
-
-
- |
-
-
-
-
- |
-
-
-
-
- " rows=5 cols=60>
- |
-
-
-   |
-
+
+
+
+ :
+ |
+
+
+
+
+
+ |
+
+
+
+
+ |
+
+
+
+
+ " rows=5 cols=60>
+
+
+ |
+
+
+   |
+
+
Index: lams_tool_laqa/web/learning/IndividualLearnerResults.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/IndividualLearnerResults.jsp,v
diff -u -r1.8 -r1.9
--- lams_tool_laqa/web/learning/IndividualLearnerResults.jsp 9 Aug 2006 10:38:35 -0000 1.8
+++ lams_tool_laqa/web/learning/IndividualLearnerResults.jsp 20 Aug 2006 20:55:05 -0000 1.9
@@ -69,13 +69,13 @@
|