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.10 -r1.11
--- lams_tool_lamc/conf/language/ApplicationResources.properties 21 Jun 2006 03:08:50 -0000 1.10
+++ lams_tool_lamc/conf/language/ApplicationResources.properties 23 Jun 2006 16:16:50 -0000 1.11
@@ -244,6 +244,7 @@
label.groupName =Group Name:
label.yourAnswers =Your answers:
label.learner= Learner
+label.yourMark =Your Mark:
error.system.mc =A system exception has occured. Please contact Lams International technical support at 95806666. The error to report is\:
{0}
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/ExportServlet.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/ExportServlet.java,v
diff -u -r1.6 -r1.7
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/ExportServlet.java 21 Jun 2006 03:08:50 -0000 1.6
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/ExportServlet.java 23 Jun 2006 16:16:50 -0000 1.7
@@ -24,7 +24,10 @@
package org.lamsfoundation.lams.tool.mc.web;
+import java.util.Iterator;
import java.util.List;
+import java.util.Map;
+import java.util.TreeMap;
import javax.servlet.http.Cookie;
import javax.servlet.http.HttpServletRequest;
@@ -35,9 +38,12 @@
import org.lamsfoundation.lams.tool.ToolAccessMode;
import org.lamsfoundation.lams.tool.mc.McAppConstants;
import org.lamsfoundation.lams.tool.mc.McApplicationException;
+import org.lamsfoundation.lams.tool.mc.McComparator;
import org.lamsfoundation.lams.tool.mc.pojos.McContent;
+import org.lamsfoundation.lams.tool.mc.pojos.McQueContent;
import org.lamsfoundation.lams.tool.mc.pojos.McQueUsr;
import org.lamsfoundation.lams.tool.mc.pojos.McSession;
+import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt;
import org.lamsfoundation.lams.tool.mc.service.IMcService;
import org.lamsfoundation.lams.tool.mc.service.McServiceProxy;
import org.lamsfoundation.lams.web.servlet.AbstractExportPortfolioServlet;
@@ -76,6 +82,7 @@
request.getSession().setAttribute(PORTFOLIO_EXPORT_MODE, "learner");
IMcService mcService = McServiceProxy.getMcService(getServletContext());
+ logger.debug("mcService:" + mcService);
logger.debug("userID:" + userID);
logger.debug("toolSessionID:" + toolSessionID);
@@ -109,26 +116,192 @@
logger.error(error);
throw new McApplicationException(error);
}
-
-
- logger.debug("calling learning mode toolSessionID:" + toolSessionID + " userID: " + userID );
- McMonitoringAction mcMonitoringAction= new McMonitoringAction();
- List listMonitoredAnswersContainerDTO=MonitoringUtil.buildSessionQuestionData(request, content, toolSessionID, userID);
+
+ McMonitoringAction mcMonitoringAction= new McMonitoringAction();
+ List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionDataForExportLearner(request, content, mcService, mcSession, learner );
request.getSession().setAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO, listMonitoredAnswersContainerDTO);
logger.debug("LIST_MONITORED_ANSWERS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO));
+
+ String intTotalMark=viewAnswers(request, content, learner, mcSession, mcService);
+ logger.debug("intTotalMark: " + intTotalMark);
-
- List listMonitoredMarksContainerDTO=MonitoringUtil.buildGroupsMarkDataForExportLearner(request, content, mcService, mcSession, learner.getUid() );
- request.getSession().setAttribute(LIST_MONITORED_MARKS_CONTAINER_DTO, listMonitoredMarksContainerDTO);
- logger.debug("LIST_MONITORED_MARKS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_MARKS_CONTAINER_DTO));
-
+ request.getSession().setAttribute(LEARNER_MARK,intTotalMark);
request.getSession().setAttribute(LEARNER_NAME,learner.getFullname() );
-
+ request.getSession().setAttribute(PASSMARK,content.getPassMark().toString());
logger.debug("ending learner mode: ");
}
+
-
+
+ public String viewAnswers(HttpServletRequest request, McContent content, McQueUsr mcQueUsr, McSession mcSession, IMcService mcService)
+ {
+ logger.debug("starting viewAnswers...");
+ int intTotalMark=0;
+
+ McUsrAttempt mcUsrAttempt = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid());
+ logger.debug("mcUsrAttempt with highest attempt order: " + mcUsrAttempt);
+
+ int totalQuestionCount=content.getMcQueContents().size();
+ logger.debug("totalQuestionCount: " + totalQuestionCount);
+
+ Long toolContentUID=content.getUid();
+ logger.debug("toolContentUID: " + toolContentUID);
+ logger.debug("mcQueUsr: " + mcQueUsr);
+
+ Long queUsrId=mcQueUsr.getUid();
+ logger.debug("queUsrId: " + queUsrId);
+
+ Map mapQueAttempts= new TreeMap(new McComparator());
+
+ for (int i=1; i<= new Integer(totalQuestionCount).intValue(); i++)
+ {
+ logger.debug("doing question with display order: " + i);
+ McQueContent mcQueContent=mcService.getQuestionContentByDisplayOrder(new Long(i), toolContentUID);
+ logger.debug("mcQueContent uid: " + mcQueContent.getUid());
+
+ int intCurrentMark=0;
+
+
+ /**calculating learner's mark*/
+ if (mcUsrAttempt != null)
+ {
+ String highestAttemptOrder=mcUsrAttempt.getAttemptOrder().toString();
+ logger.debug("highestAttemptOrder: " + highestAttemptOrder);
+
+ List listUserAttempts=mcService.getAttemptsOnHighestAttemptOrder(mcQueUsr.getUid(), mcQueContent.getUid(), mcSession.getUid(), new Integer(highestAttemptOrder));
+ logger.debug("listUserAttempts: " + listUserAttempts);
+
+ Iterator itAttempts=listUserAttempts.iterator();
+
+ if (!mcSession.getMcContent().isRetries())
+ {
+ logger.debug("retries is OFF.");
+ boolean isAttemptCorrect=false;
+ McUsrAttempt mcUsrAttemptUser=null;
+
+ while (itAttempts.hasNext())
+ {
+ mcUsrAttempt=(McUsrAttempt)itAttempts.next();
+ logger.debug("mcUsrAttempt: " + mcUsrAttempt);
+ mcUsrAttemptUser=mcUsrAttempt;
+
+ if (mcUsrAttempt != null)
+ {
+ if (mcUsrAttempt.isAttemptCorrect())
+ {
+ isAttemptCorrect=true;
+ }
+ }
+ }
+ logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
+ logger.debug("mcUsrAttemptUser: " + mcUsrAttemptUser);
+
+ String currentMark="";
+ if (isAttemptCorrect)
+ {
+ currentMark= mcUsrAttemptUser.getMcQueContent().getWeight().toString();
+ }
+ else
+ {
+ currentMark= "0";
+ }
+ intCurrentMark=new Integer(currentMark).intValue();
+ logger.debug("intCurrentMark: " + intCurrentMark);
+
+ }
+ else
+ {
+ logger.debug("retries is ON. User had to PASS. Print the final attempt's data");
+ boolean isAttemptCorrect=false;
+ McUsrAttempt mcUsrAttemptGeneral=null;
+ while (itAttempts.hasNext())
+ {
+ mcUsrAttempt=(McUsrAttempt)itAttempts.next();
+ logger.debug("mcUsrAttempt: " + mcUsrAttempt);
+ mcUsrAttemptGeneral=mcUsrAttempt;
+
+ if (mcUsrAttempt != null)
+ {
+ if (mcUsrAttempt.isFinished() && mcUsrAttempt.isPassed())
+ {
+ logger.debug("this is a individual question attempt that is finished and passed: " + mcUsrAttempt);
+ isAttemptCorrect=mcService.getUserAttemptCorrectForQuestionContentAndSessionUid(mcQueUsr.getUid(),
+ mcQueContent.getUid(), mcSession.getUid(), new Integer(highestAttemptOrder));
+ logger.debug("isAttemptCorrect: " + isAttemptCorrect);
+ break;
+ }
+ }
+ }
+
+ logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
+
+ String currentMark="";
+ if (isAttemptCorrect)
+ {
+ currentMark= mcUsrAttempt.getMcQueContent().getWeight().toString();
+ }
+ else
+ {
+ currentMark= "0";
+ }
+
+ intCurrentMark=new Integer(currentMark).intValue();
+ logger.debug("intCurrentMark: " + intCurrentMark);
+ }
+ }
+ else
+ {
+ intCurrentMark=0;
+ }
+
+ intTotalMark=intTotalMark + intCurrentMark;
+ logger.debug("intTotalMark: " + intTotalMark);
+
+
+ Map mapAttemptOrderAttempts= new TreeMap(new McComparator());
+ for (int j=1; j <= MAX_ATTEMPT_HISTORY ; j++ )
+ {
+ logger.debug("getting list for queUsrId: " + queUsrId);
+ List attemptsByAttemptOrder=mcService.getAttemptByAttemptOrder(queUsrId, mcQueContent.getUid(), new Integer(j));
+ logger.debug("attemptsByAttemptOrder: " + j + " is: " + attemptsByAttemptOrder);
+
+ Map mapAttempts= new TreeMap(new McComparator());
+ Iterator attemptIterator=attemptsByAttemptOrder.iterator();
+ Long mapIndex=new Long(1);
+ while (attemptIterator.hasNext())
+ {
+ McUsrAttempt localMcUsrAttempt=(McUsrAttempt)attemptIterator.next();
+ logger.debug("localMcUsrAttempt: " + localMcUsrAttempt);
+
+ mapAttempts.put(mapIndex.toString(), localMcUsrAttempt.getMcOptionsContent().getMcQueOptionText());
+ logger.debug("added attempt with order: " + localMcUsrAttempt.getAttemptOrder() + " , option text is: " + localMcUsrAttempt.getMcOptionsContent().getMcQueOptionText());
+ mapIndex=new Long(mapIndex.longValue()+1);
+ }
+
+ logger.debug("final mapAttempts is: " + mapAttempts);
+ if (mapAttempts.size() > 0)
+ {
+ mapAttemptOrderAttempts.put(new Integer(j).toString(), mapAttempts);
+ }
+ }
+
+ logger.debug("final mapAttemptOrderAttempts is: " + mapAttemptOrderAttempts);
+ if (mapAttemptOrderAttempts.size() > 0)
+ {
+ mapQueAttempts.put(new Integer(i).toString(), mapAttemptOrderAttempts);
+ }
+ }
+ request.getSession().setAttribute(MAP_QUE_ATTEMPTS, mapQueAttempts);
+ logger.debug("final mapQueAttempts is: " + mapQueAttempts);
+
+
+
+ logger.debug("final intTotalMark is: " + intTotalMark);
+ return new Integer(intTotalMark).toString();
+ }
+
+
public void teacher(HttpServletRequest request, HttpServletResponse response, String directoryName, Cookie[] cookies)
{
logger.debug("starting teacher mode...");
@@ -155,7 +328,8 @@
logger.debug("starting teacher mode: ");
McMonitoringAction mcMonitoringAction= new McMonitoringAction();
- List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, content);
+
+ List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, content, mcService);
request.getSession().setAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO, listMonitoredAnswersContainerDTO);
logger.debug("LIST_MONITORED_ANSWERS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO));
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java,v
diff -u -r1.28 -r1.29
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java 21 Jun 2006 00:55:09 -0000 1.28
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/McMonitoringStarterAction.java 23 Jun 2006 16:16:50 -0000 1.29
@@ -344,7 +344,7 @@
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, mcContent);
+ List listMonitoredAnswersContainerDTO=MonitoringUtil.buildGroupsQuestionData(request, mcContent, mcService);
request.getSession().setAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO, listMonitoredAnswersContainerDTO);
logger.debug("LIST_MONITORED_ANSWERS_CONTAINER_DTO: " + request.getSession().getAttribute(LIST_MONITORED_ANSWERS_CONTAINER_DTO));
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java,v
diff -u -r1.20 -r1.21
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java 22 Jun 2006 01:43:22 -0000 1.20
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/web/MonitoringUtil.java 23 Jun 2006 16:16:50 -0000 1.21
@@ -100,10 +100,11 @@
* @param mcContent
* @return List
*/
- public static List buildGroupsQuestionData(HttpServletRequest request, McContent mcContent)
+ public static List buildGroupsQuestionData(HttpServletRequest request, McContent mcContent, IMcService mcService)
{
logger.debug("will be building groups question data for content:..." + mcContent);
- IMcService mcService =McUtils.getToolService(request);
+ logger.debug("mcService: " + mcService);
+
List listQuestions=mcService.getAllQuestionEntries(mcContent.getUid());
logger.debug("listQuestions:..." + listQuestions);
@@ -130,7 +131,7 @@
logger.debug("listCandidateAnswersDTO:..." + listCandidateAnswersDTO);
mcMonitoredAnswersDTO.setCandidateAnswersCorrect(listCandidateAnswersDTO);
- Map questionAttemptData= buildGroupsAttemptData(request, mcContent, mcQueContent, mcQueContent.getUid().toString(), mcService);
+ Map questionAttemptData= buildGroupsAttemptData(request, mcContent, mcQueContent, mcQueContent.getUid().toString(), mcService, null);
logger.debug("questionAttemptData:..." + questionAttemptData);
mcMonitoredAnswersDTO.setQuestionAttempts(questionAttemptData);
listMonitoredAnswersContainerDTO.add(mcMonitoredAnswersDTO);
@@ -142,6 +143,53 @@
}
+ public static List buildGroupsQuestionDataForExportLearner(HttpServletRequest request, McContent mcContent,
+ IMcService mcService, McSession mcSession, McQueUsr mcQueUsr)
+ {
+ logger.debug("will be building groups question data for content:..." + mcContent);
+ logger.debug("using mcSession:..." + mcSession);
+ logger.debug("using mcQueUsr:..." + mcQueUsr);
+ logger.debug("mcService: " + mcService);
+
+ List listQuestions=mcService.getAllQuestionEntries(mcContent.getUid());
+ logger.debug("listQuestions:..." + listQuestions);
+
+ List listMonitoredAnswersContainerDTO= new LinkedList();
+
+ Iterator itListQuestions = listQuestions.iterator();
+ while (itListQuestions.hasNext())
+ {
+ McQueContent mcQueContent =(McQueContent)itListQuestions.next();
+ logger.debug("mcQueContent:..." + mcQueContent);
+
+ if (mcQueContent != null)
+ {
+ McMonitoredAnswersDTO mcMonitoredAnswersDTO= new McMonitoredAnswersDTO();
+ mcMonitoredAnswersDTO.setQuestionUid(mcQueContent.getUid().toString());
+ mcMonitoredAnswersDTO.setQuestion(mcQueContent.getQuestion());
+ mcMonitoredAnswersDTO.setWeight(mcQueContent.getWeight().toString());
+
+ List listCandidateAnswers=mcService.findMcOptionNamesByQueId(mcQueContent.getUid());
+ logger.debug("listCandidateAnswers:..." + listCandidateAnswers);
+ mcMonitoredAnswersDTO.setCandidateAnswers(listCandidateAnswers);
+
+ List listCandidateAnswersDTO=mcService.populateCandidateAnswersDTO(mcQueContent.getUid());
+ logger.debug("listCandidateAnswersDTO:..." + listCandidateAnswersDTO);
+ mcMonitoredAnswersDTO.setCandidateAnswersCorrect(listCandidateAnswersDTO);
+
+ Map questionAttemptData= buildGroupsAttemptData(request, mcContent, mcQueContent, mcQueContent.getUid().toString(), mcService, mcQueUsr);
+ logger.debug("questionAttemptData:..." + questionAttemptData);
+ mcMonitoredAnswersDTO.setQuestionAttempts(questionAttemptData);
+ listMonitoredAnswersContainerDTO.add(mcMonitoredAnswersDTO);
+
+ }
+ }
+ logger.debug("final listMonitoredAnswersContainerDTO:..." + listMonitoredAnswersContainerDTO);
+ return listMonitoredAnswersContainerDTO;
+ }
+
+
+
public static List buildGroupsMarkDataForExportLearner(HttpServletRequest request, McContent mcContent, IMcService mcService, McSession mcSession, Long learnerUid)
{
logger.debug("will be building export learner groups mark data for content:..." + mcContent);
@@ -436,7 +484,8 @@
* @param mcQueContent
* @return Map
*/
- public static Map buildGroupsAttemptData(HttpServletRequest request, McContent mcContent, McQueContent mcQueContent, String questionUid, IMcService mcService)
+ public static Map buildGroupsAttemptData(HttpServletRequest request, McContent mcContent, McQueContent mcQueContent,
+ String questionUid, IMcService mcService, McQueUsr mcQueUsr)
{
logger.debug("will be building groups attempt data for mcQueContent:..." + mcQueContent + " questionUid:" + questionUid);
Map mapMonitoredAttemptsContainerDTO= new TreeMap(new McStringComparator());
@@ -445,26 +494,83 @@
Map summaryToolSessions=populateToolSessionsId(request, mcContent, mcService);
logger.debug("summaryToolSessions: " + summaryToolSessions);
- Iterator itMap = summaryToolSessions.entrySet().iterator();
- while (itMap.hasNext())
+ if (mcQueUsr == null)
{
- Map.Entry pairs = (Map.Entry)itMap.next();
- logger.debug("using the summary tool sessions pair: " + pairs.getKey() + " = " + pairs.getValue());
+ Iterator itMap = summaryToolSessions.entrySet().iterator();
+ while (itMap.hasNext())
+ {
+ Map.Entry pairs = (Map.Entry)itMap.next();
+ logger.debug("using the summary tool sessions pair: " + pairs.getKey() + " = " + pairs.getValue());
+
+ if (!(pairs.getValue().toString().equals("None")) && !(pairs.getValue().toString().equals("All")))
+ {
+ logger.debug("using the numerical summary tool sessions pair: " + " = " + pairs.getValue());
+ McSession mcSession= mcService.findMcSessionById(new Long(pairs.getValue().toString()));
+ logger.debug("mcSession: " + " = " + mcSession);
+ if (mcSession != null)
+ {
+ List listMcUsers=mcService.getMcUserBySessionOnly(mcSession);
+ logger.debug("listMcUsers for session id:" + mcSession.getMcSessionId() + " = " + listMcUsers);
+ Map sessionUsersAttempts=populateSessionUsersAttempts(request,mcSession.getMcSessionId(), listMcUsers, questionUid, null, mcService);
+
+ listMonitoredAttemptsContainerDTO.add(sessionUsersAttempts);
+ }
+ }
+ }
+ }
+ else
+ {
+ Iterator itMap = summaryToolSessions.entrySet().iterator();
+ while (itMap.hasNext())
+ {
+ Map.Entry pairs = (Map.Entry)itMap.next();
+ logger.debug("using the summary tool sessions pair: " + pairs.getKey() + " = " + pairs.getValue());
+
+ if (!(pairs.getValue().toString().equals("None")) && !(pairs.getValue().toString().equals("All")))
+ {
+ logger.debug("using the numerical summary tool sessions pair: " + " = " + pairs.getValue());
+ McSession mcSession= mcService.findMcSessionById(new Long(pairs.getValue().toString()));
+ logger.debug("mcSession: " + " = " + mcSession);
+ if (mcSession != null)
+ {
+ List listMcUsers=mcService.getMcUserBySessionOnly(mcSession);
+ logger.debug("listMcUsers for session id:" + mcSession.getMcSessionId() + " = " + listMcUsers);
+ Map sessionUsersAttempts=populateSessionUsersAttempts(request,mcSession.getMcSessionId(), listMcUsers, questionUid, mcQueUsr.getQueUsrId(), mcService);
+
+ listMonitoredAttemptsContainerDTO.add(sessionUsersAttempts);
+ }
+ }
+ }
+
+ }
+
+
+
+ logger.debug("final listMonitoredAttemptsContainerDTO:..." + listMonitoredAttemptsContainerDTO);
+ mapMonitoredAttemptsContainerDTO=convertToMap(listMonitoredAttemptsContainerDTO);
+ logger.debug("final mapMonitoredAttemptsContainerDTO:..." + mapMonitoredAttemptsContainerDTO);
+ return mapMonitoredAttemptsContainerDTO;
+ }
+
+
+ public static Map buildGroupsAttemptDataForExportLearner(HttpServletRequest request, McContent mcContent, McQueContent mcQueContent, String questionUid,
+ IMcService mcService, McSession mcSession, McQueUsr mcQueUsr )
+ {
+ logger.debug("will be building groups attempt data for mcQueContent:..." + mcQueContent + " questionUid:" + questionUid);
+ logger.debug("using mcSession: " +mcSession);
+ logger.debug("using mcQueUsr: " +mcQueUsr);
+
+ Map mapMonitoredAttemptsContainerDTO= new TreeMap(new McStringComparator());
+ List listMonitoredAttemptsContainerDTO= new LinkedList();
- if (!(pairs.getValue().toString().equals("None")) && !(pairs.getValue().toString().equals("All")))
- {
- logger.debug("using the numerical summary tool sessions pair: " + " = " + pairs.getValue());
- McSession mcSession= mcService.findMcSessionById(new Long(pairs.getValue().toString()));
- logger.debug("mcSession: " + " = " + mcSession);
- if (mcSession != null)
- {
- List listMcUsers=mcService.getMcUserBySessionOnly(mcSession);
- logger.debug("listMcUsers for session id:" + mcSession.getMcSessionId() + " = " + listMcUsers);
- Map sessionUsersAttempts=populateSessionUsersAttempts(request,mcSession.getMcSessionId(), listMcUsers, questionUid, null, mcService);
-
- listMonitoredAttemptsContainerDTO.add(sessionUsersAttempts);
- }
- }
+ logger.debug("mcSession: " + " = " + mcSession);
+ if (mcSession != null)
+ {
+ List listMcUsers=mcService.getMcUserBySessionOnly(mcSession);
+ logger.debug("listMcUsers for session id:" + mcSession.getMcSessionId() + " = " + listMcUsers);
+ Map sessionUsersAttempts=populateSessionUsersAttempts(request,mcSession.getMcSessionId(), listMcUsers, questionUid, mcQueUsr.getQueUsrId(), mcService);
+
+ listMonitoredAttemptsContainerDTO.add(sessionUsersAttempts);
}
logger.debug("final listMonitoredAttemptsContainerDTO:..." + listMonitoredAttemptsContainerDTO);
@@ -474,6 +580,8 @@
}
+
+
public static Map buildSessionAttemptData(HttpServletRequest request, McContent mcContent, McQueContent mcQueContent, String questionUid, Long sessionId, Long userID)
{
logger.debug("doing buildSessionAttemptData with sessionId: " + sessionId);
@@ -525,7 +633,8 @@
* @param listMcUsers
* @return List
*/
- public static Map populateSessionUsersAttempts(HttpServletRequest request,Long sessionId, List listMcUsers, String questionUid, Long userID, IMcService mcService)
+ public static Map populateSessionUsersAttempts(HttpServletRequest request,Long sessionId, List listMcUsers, String questionUid,
+ Long userID, IMcService mcService)
{
logger.debug("starting populateSessionUsersAttempts");
logger.debug("will be populating users marks for session id: " + sessionId);
@@ -537,187 +646,175 @@
Map mapMonitoredUserContainerDTO= new TreeMap(new McStringComparator());
List listMonitoredUserContainerDTO= new LinkedList();
- if (userID == null)
+ logger.debug("generating standard summary page");
+ Iterator itUsers=listMcUsers.iterator();
+ while (itUsers.hasNext())
{
- logger.debug("generating standard summary page");
- Iterator itUsers=listMcUsers.iterator();
- while (itUsers.hasNext())
- {
- McQueUsr mcQueUsr=(McQueUsr)itUsers.next();
- logger.debug("mcQueUsr: " + mcQueUsr);
-
- if (mcQueUsr != null)
- {
- logger.debug("getting listUserAttempts for user id: " + mcQueUsr.getUid() + " and que content id: " + questionUid);
-
- McUsrAttempt mcUsrAttempt = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid());
- logger.debug("mcUsrAttempt with highest attempt order: " + mcUsrAttempt);
- String highestAttemptOrder="";
-
- List listUserAttempts=null;
- boolean attempExists=true;
- if (mcUsrAttempt != null)
- {
- highestAttemptOrder=mcUsrAttempt.getAttemptOrder().toString();
- logger.debug("highestAttemptOrder: " + highestAttemptOrder);
+ McQueUsr mcQueUsr=(McQueUsr)itUsers.next();
+ logger.debug("current User is: " + mcQueUsr);
+
+ if (mcQueUsr != null)
+ {
+ if (userID != null)
+ {
+ logger.debug("request is export portfolio " + userID);
+ logger.debug("mcQueUsr: " + mcQueUsr);
+ logger.debug("local mcQueUsr userID: " + mcQueUsr.getQueUsrId());
+ logger.debug("mcQueUsr.getQueUsrId().toString versus userID.toString(): " + mcQueUsr.getQueUsrId().toString() + " versus " + userID.toString());
- listUserAttempts=mcService.getAttemptsOnHighestAttemptOrder(mcQueUsr.getUid(), new Long(questionUid), mcSession.getUid(), new Integer(highestAttemptOrder));
- logger.debug("listUserAttempts: " + listUserAttempts);
- }
- else
- {
- attempExists=false;
- McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
- mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
- mcMonitoredUserDTO.setSessionId(sessionId.toString());
- mcMonitoredUserDTO.setQuestionUid(questionUid);
- mcMonitoredUserDTO.setMark("0");
- logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
- listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
- }
- logger.debug("attempExists: " + attempExists);
-
- if (attempExists)
- {
- Iterator itAttempts=listUserAttempts.iterator();
-
- if (!mcSession.getMcContent().isRetries())
- {
- logger.debug("retries is OFF.");
- boolean isAttemptCorrect=false;
- McUsrAttempt mcUsrAttemptUser=null;
-
- while (itAttempts.hasNext())
- {
- mcUsrAttempt=(McUsrAttempt)itAttempts.next();
- logger.debug("mcUsrAttempt: " + mcUsrAttempt);
- mcUsrAttemptUser=mcUsrAttempt;
-
- if (mcUsrAttempt != null)
- {
- if (mcUsrAttempt.isAttemptCorrect())
- {
- isAttemptCorrect=true;
- }
- }
- }
- logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
- logger.debug("mcUsrAttemptUser: " + mcUsrAttemptUser);
-
- McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
- mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
- mcMonitoredUserDTO.setSessionId(sessionId.toString());
- mcMonitoredUserDTO.setQuestionUid(questionUid);
-
- if (isAttemptCorrect)
- {
- mcMonitoredUserDTO.setMark(mcUsrAttemptUser.getMcQueContent().getWeight().toString());
- }
- else
- {
- mcMonitoredUserDTO.setMark("0");
- }
-
- logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
- listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
- }
- else
- {
- logger.debug("retries is ON. User had to PASS. Print the final attempt's data");
- McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
- boolean isAttemptCorrect=false;
- McUsrAttempt mcUsrAttemptGeneral=null;
- while (itAttempts.hasNext())
- {
- mcUsrAttempt=(McUsrAttempt)itAttempts.next();
- logger.debug("mcUsrAttempt: " + mcUsrAttempt);
- mcUsrAttemptGeneral=mcUsrAttempt;
-
- if (mcUsrAttempt != null)
- {
- if (mcUsrAttempt.isFinished() && mcUsrAttempt.isPassed())
- {
- logger.debug("this is a individual question attempt that is finished and passed: " + mcUsrAttempt);
- isAttemptCorrect=mcService.getUserAttemptCorrectForQuestionContentAndSessionUid(mcQueUsr.getUid(), new Long(questionUid), mcSession.getUid(), new Integer(highestAttemptOrder));
- logger.debug("isAttemptCorrect: " + isAttemptCorrect);
- break;
- }
- }
- }
-
- logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
- if (isAttemptCorrect)
- {
- mcMonitoredUserDTO.setMark(mcUsrAttemptGeneral.getMcQueContent().getWeight().toString());
- }
- else
- {
- mcMonitoredUserDTO.setMark("0");
- }
-
- mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
- mcMonitoredUserDTO.setSessionId(sessionId.toString());
- mcMonitoredUserDTO.setQuestionUid(questionUid);
-
- logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
- listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
-
- }
- }
- }
- }
- logger.debug("final listMonitoredUserContainerDTO: " + listMonitoredUserContainerDTO);
- mapMonitoredUserContainerDTO=convertToMcMonitoredUserDTOMap(listMonitoredUserContainerDTO);
- logger.debug("final mapMonitoredUserContainerDTO:..." + mapMonitoredUserContainerDTO);
- return mapMonitoredUserContainerDTO;
+ if (mcQueUsr.getQueUsrId().toString().equals(userID.toString()))
+ {
+ logger.debug("returning attempt entries for : " + mcQueUsr);
+ mapMonitoredUserContainerDTO=getAttemptEntries(request, mcService, mcQueUsr, mcSession, questionUid, listMonitoredUserContainerDTO, mapMonitoredUserContainerDTO);
+ }
+ }
+ else
+ {
+ logger.debug("request is standard summary page.");
+ mapMonitoredUserContainerDTO=getAttemptEntries(request, mcService, mcQueUsr, mcSession, questionUid, listMonitoredUserContainerDTO, mapMonitoredUserContainerDTO);
+ }
+ }
}
- else
+ logger.debug("returning: " + mapMonitoredUserContainerDTO);
+ return mapMonitoredUserContainerDTO;
+ }
+
+
+
+ public static Map getAttemptEntries(HttpServletRequest request, IMcService mcService, McQueUsr mcQueUsr, McSession mcSession,
+ String questionUid, List listMonitoredUserContainerDTO, Map mapMonitoredUserContainerDTO)
+ {
+ logger.debug("starting getAttemptEntries.");
+ logger.debug("mcQueUsr: " + mcQueUsr);
+ logger.debug("mcSession: " + mcSession);
+
+ if (mcQueUsr != null)
{
- logger.debug("request is for learner export portfolio: " + userID);
- Iterator itUsers=listMcUsers.iterator();
- while (itUsers.hasNext())
- {
- McQueUsr mcQueUsr=(McQueUsr)itUsers.next();
- logger.debug("mcQueUsr: " + mcQueUsr);
- logger.debug("local mcQueUsr userID: " + mcQueUsr.getQueUsrId());
- logger.debug("mcQueUsr.getQueUsrId().toString versus userID.toString(): " + mcQueUsr.getQueUsrId().toString() + " versus " + userID.toString());
- if ((mcQueUsr != null) && (mcQueUsr.getQueUsrId().toString().equals(userID.toString())))
- {
- logger.debug("the user in question is found: " + mcQueUsr.getQueUsrId());
- logger.debug("getting listUserAttempts for user id: " + mcQueUsr.getUid() + " and que content id: " + questionUid);
- //List listUserAttempts=mcService.getAttemptsForUserAndQuestionContent(mcQueUsr.getUid(), new Long(questionUid));
- List listUserAttempts=mcService.getUserAttemptsForQuestionContentAndSessionUid(mcQueUsr.getUid(), new Long(questionUid), mcSession.getUid());
- logger.debug("listUserAttempts: " + listUserAttempts);
+ logger.debug("getting listUserAttempts for user id: " + mcQueUsr.getUid() + " and que content id: " + questionUid);
+
+ McUsrAttempt mcUsrAttempt = mcService.getAttemptWithLastAttemptOrderForUserInSession(mcQueUsr.getUid(), mcSession.getUid());
+ logger.debug("mcUsrAttempt with highest attempt order: " + mcUsrAttempt);
+ String highestAttemptOrder="";
+
+ List listUserAttempts=null;
+ boolean attempExists=true;
+ if (mcUsrAttempt != null)
+ {
+ highestAttemptOrder=mcUsrAttempt.getAttemptOrder().toString();
+ logger.debug("highestAttemptOrder: " + highestAttemptOrder);
- Iterator itAttempts=listUserAttempts.iterator();
+ listUserAttempts=mcService.getAttemptsOnHighestAttemptOrder(mcQueUsr.getUid(), new Long(questionUid), mcSession.getUid(), new Integer(highestAttemptOrder));
+ logger.debug("listUserAttempts: " + listUserAttempts);
+ }
+ else
+ {
+ attempExists=false;
+ McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
+ mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
+ //mcMonitoredUserDTO.setSessionId(sessionId.toString());
+ mcMonitoredUserDTO.setSessionId(mcSession.getMcSessionId().toString());
+ mcMonitoredUserDTO.setQuestionUid(questionUid);
+ mcMonitoredUserDTO.setMark("0");
+ logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
+ listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
+ }
+ logger.debug("attempExists: " + attempExists);
+
+ if (attempExists)
+ {
+ Iterator itAttempts=listUserAttempts.iterator();
+
+ if (!mcSession.getMcContent().isRetries())
+ {
+ logger.debug("retries is OFF.");
+ boolean isAttemptCorrect=false;
+ McUsrAttempt mcUsrAttemptUser=null;
+
while (itAttempts.hasNext())
{
- McUsrAttempt mcUsrAttempt=(McUsrAttempt)itAttempts.next();
+ mcUsrAttempt=(McUsrAttempt)itAttempts.next();
logger.debug("mcUsrAttempt: " + mcUsrAttempt);
-
+ mcUsrAttemptUser=mcUsrAttempt;
+
if (mcUsrAttempt != null)
{
- McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
- mcMonitoredUserDTO.setAttemptTime(mcUsrAttempt.getAttemptTime().toString());
- mcMonitoredUserDTO.setIsCorrect(new Boolean(mcUsrAttempt.isAttemptCorrect()).toString());
- mcMonitoredUserDTO.setResponse(mcUsrAttempt.getMcOptionsContent().getMcQueOptionText().toString());
- mcMonitoredUserDTO.setTimeZone(mcUsrAttempt.getTimeZone());
- mcMonitoredUserDTO.setUid(mcUsrAttempt.getUid().toString());
- mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
- mcMonitoredUserDTO.setQueUsrId(mcQueUsr.getUid().toString());
- mcMonitoredUserDTO.setSessionId(sessionId.toString());
- mcMonitoredUserDTO.setQuestionUid(questionUid);
- listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
+ if (mcUsrAttempt.isAttemptCorrect())
+ {
+ isAttemptCorrect=true;
+ }
}
}
- }
- }
- logger.debug("final listMonitoredUserContainerDTO: " + listMonitoredUserContainerDTO);
- mapMonitoredUserContainerDTO=convertToMcMonitoredUserDTOMap(listMonitoredUserContainerDTO);
- logger.debug("final mapMonitoredUserContainerDTO:..." + mapMonitoredUserContainerDTO);
- return mapMonitoredUserContainerDTO;
-
+ logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
+ logger.debug("mcUsrAttemptUser: " + mcUsrAttemptUser);
+
+ McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
+ mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
+ //mcMonitoredUserDTO.setSessionId(sessionId.toString());
+ mcMonitoredUserDTO.setSessionId(mcSession.getMcSessionId().toString());
+ mcMonitoredUserDTO.setQuestionUid(questionUid);
+
+ if (isAttemptCorrect)
+ {
+ mcMonitoredUserDTO.setMark(mcUsrAttemptUser.getMcQueContent().getWeight().toString());
+ }
+ else
+ {
+ mcMonitoredUserDTO.setMark("0");
+ }
+
+ logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
+ listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
+ }
+ else
+ {
+ logger.debug("retries is ON. User had to PASS. Print the final attempt's data");
+ McMonitoredUserDTO mcMonitoredUserDTO = new McMonitoredUserDTO();
+ boolean isAttemptCorrect=false;
+ McUsrAttempt mcUsrAttemptGeneral=null;
+ while (itAttempts.hasNext())
+ {
+ mcUsrAttempt=(McUsrAttempt)itAttempts.next();
+ logger.debug("mcUsrAttempt: " + mcUsrAttempt);
+ mcUsrAttemptGeneral=mcUsrAttempt;
+
+ if (mcUsrAttempt != null)
+ {
+ if (mcUsrAttempt.isFinished() && mcUsrAttempt.isPassed())
+ {
+ logger.debug("this is a individual question attempt that is finished and passed: " + mcUsrAttempt);
+ isAttemptCorrect=mcService.getUserAttemptCorrectForQuestionContentAndSessionUid(mcQueUsr.getUid(), new Long(questionUid), mcSession.getUid(), new Integer(highestAttemptOrder));
+ logger.debug("isAttemptCorrect: " + isAttemptCorrect);
+ break;
+ }
+ }
+ }
+
+ logger.debug("final isAttemptCorrect: " + isAttemptCorrect);
+ if (isAttemptCorrect)
+ {
+ mcMonitoredUserDTO.setMark(mcUsrAttemptGeneral.getMcQueContent().getWeight().toString());
+ }
+ else
+ {
+ mcMonitoredUserDTO.setMark("0");
+ }
+
+ mcMonitoredUserDTO.setUserName(mcQueUsr.getFullname());
+ //mcMonitoredUserDTO.setSessionId(sessionId.toString());
+ mcMonitoredUserDTO.setSessionId(mcSession.getMcSessionId().toString());
+ mcMonitoredUserDTO.setQuestionUid(questionUid);
+
+ logger.debug("final constructed mcMonitoredUserDTO: " + mcMonitoredUserDTO);
+ listMonitoredUserContainerDTO.add(mcMonitoredUserDTO);
+ }
+ }
}
+ logger.debug("returning : " + listMonitoredUserContainerDTO);
+ //return listMonitoredUserContainerDTO;
+ logger.debug("final listMonitoredUserContainerDTO: " + listMonitoredUserContainerDTO);
+ mapMonitoredUserContainerDTO=convertToMcMonitoredUserDTOMap(listMonitoredUserContainerDTO);
+ logger.debug("final mapMonitoredUserContainerDTO:..." + mapMonitoredUserContainerDTO);
+ return mapMonitoredUserContainerDTO;
}
Index: lams_tool_lamc/web/export/ExportContent.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_lamc/web/export/Attic/ExportContent.jsp,v
diff -u -r1.5 -r1.6
--- lams_tool_lamc/web/export/ExportContent.jsp 21 Jun 2006 03:09:11 -0000 1.5
+++ lams_tool_lamc/web/export/ExportContent.jsp 23 Jun 2006 16:16:50 -0000 1.6
@@ -182,21 +182,18 @@
-
-
-
- :
-
-
+
+
+
-
+
    |
- :
+ | :
  (
)
@@ -210,23 +207,79 @@
|
       
+
+
+   ()
+
|
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
+
+
+
+
+
+
+
+
+        
+
+
+ |
+
+
+
+ |
+
+
+
+
+
+
+
+
+ |
+
+
+
+
+
|
-
-
+
+
+
+
+
+ |
+
+
+