Index: lams_tool_laqa/.classpath =================================================================== diff -u -rcb356577eaf17e3d797b1bae07f50014a849e86f -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/.classpath (.../.classpath) (revision cb356577eaf17e3d797b1bae07f50014a849e86f) +++ lams_tool_laqa/.classpath (.../.classpath) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -5,6 +5,6 @@ - - + + Index: lams_tool_laqa/JUnit/junit.jar =================================================================== diff -u Binary files differ Index: lams_tool_laqa/build.properties =================================================================== diff -u -rcb356577eaf17e3d797b1bae07f50014a849e86f -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/build.properties (.../build.properties) (revision cb356577eaf17e3d797b1bae07f50014a849e86f) +++ lams_tool_laqa/build.properties (.../build.properties) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -1,8 +1,8 @@ # Abt properties for building the Lams Submit Files Tool #name of this project -name=lams_tool_questionAnswer -product=lams-tool-questionAnswer +name=lams_tool_laqa11 +product=lams-tool-laqa11 # Directory where third party jars reside. sharedlib=../lams_build/lib @@ -20,8 +20,8 @@ #web application properties sessiontimeout=120 -#signature=laqa11 -signature=questionAnswer +signature=laqa11 +#signature=questionAnswer # the URL used to access LAMS toolContext=/lams/tool/laqa11 @@ -55,11 +55,12 @@ conf.xdoclet.dir=${conf.dir}/xdoclet conf.struts.dir=${conf.webinf.dir}/struts conf.resources.dir=${conf.web.dir}/resources +webinf=${conf.webinf.dir} # Build directory build=${basedir}/build build.classes.java=${build}/classes/java -build.classes.test=${build}/classes/test/java +build.classes.test=${build}/classes/test build.lib=${build}/lib build.report=${build}/report build.web=${build}/web @@ -71,7 +72,11 @@ src.dir=${basedir}/src src.dir.java=${src.dir}/java src.dir.test=${basedir}/test/java +src.test.java=${basedir}/test/java +testweb=${basedir}/test/web +testwebinf=${testweb}/WEB-INF + jboss.home=D:/AppServer/jboss-3.2.6/ jboss.deploy=${jboss.home}/server/default/deploy/lams.ear contentrepository.location = D:/repository Index: lams_tool_laqa/build.xml =================================================================== diff -u -rcb356577eaf17e3d797b1bae07f50014a849e86f -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/build.xml (.../build.xml) (revision cb356577eaf17e3d797b1bae07f50014a849e86f) +++ lams_tool_laqa/build.xml (.../build.xml) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -20,7 +20,7 @@ http://www.gnu.org/licenses/gpl.txt --> - + @@ -183,7 +183,8 @@ - + @@ -252,12 +254,15 @@ + + @@ -288,7 +293,6 @@ - @@ -327,9 +331,8 @@ - - + @@ -393,4 +396,33 @@ + + + + + + + + + + + + + + + + + + + + + + + + + + + + \ No newline at end of file Index: lams_tool_laqa/ext-lib/log4j-1.2.9.jar =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 Binary files differ Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaAppConstants.java =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaAppConstants.java (.../QaAppConstants.java) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaAppConstants.java (.../QaAppConstants.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -201,6 +201,7 @@ public static final String INITIAL_MONITORING_TOOL_CONTENT_ID ="initialMonitoringToolContentId"; public static final String IS_MONITORING_DEFINE_LATER ="isMonitoringDefineLater"; public static final String NO_TOOL_SESSIONS_AVAILABLE ="noToolSessionAvailable"; + public static final String ORIGINAL_TOOL_SESSIONS ="originalToolSessions"; public static final String MONITORED_OFFLINE_INSTRUCTIONS ="monitoredOfflineInstructions"; public static final String MONITORED_ONLINE_INSTRUCTIONS ="monitoredOnlineInstructions"; @@ -211,12 +212,15 @@ */ public static final String FULLNAME ="fullName"; public static final String ANSWER ="answer"; - public static final String ATIME ="aTime"; + public static final String ATIME ="aTime"; + public static final String FORMATTED_ATIME ="formattedAtime"; public static final String RESPONSE_ID ="responseId"; public static final String RESPONSE_HIDDEN ="responseHidden"; public static final String CURRENTLEARNER_FULLNAME ="currentLearnerFullname"; public static final String ATTR_USERDATA ="qa_user"; public static final String TIMEZONE ="timeZone"; + public static final String TIMEZONE_ID ="timeZoneId"; + /** * following tell whether author prefers to have the questions listed all in one page or listed sequentially. The default is all in one page. */ Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaSession.java =================================================================== diff -u -r6cbbf1f63984276d9ce5ec79ceba2212f6fc14d5 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaSession.java (.../QaSession.java) (revision 6cbbf1f63984276d9ce5ec79ceba2212f6fc14d5) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaSession.java (.../QaSession.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -32,7 +32,6 @@ import org.apache.commons.lang.builder.HashCodeBuilder; import org.apache.commons.lang.builder.ToStringBuilder; import org.apache.log4j.Logger; -import org.lamsfoundation.lams.tool.ToolSession; /** @@ -42,7 +41,7 @@ * * Holds tool sessions */ -public class QaSession extends ToolSession implements Serializable,Comparable, Nullable +public class QaSession implements Serializable,Comparable, Nullable { static Logger logger = Logger.getLogger(QaSession.class.getName()); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java (.../QaUtils.java) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/QaUtils.java (.../QaUtils.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -7,6 +7,8 @@ package org.lamsfoundation.lams.tool.qa; import java.security.Principal; +import java.text.DateFormat; +import java.util.Date; import java.util.Random; import javax.servlet.http.HttpServletRequest; @@ -322,12 +324,21 @@ IQaService qaService =QaUtils.getToolService(request); QaSession qaSession=qaService.retrieveQaSessionOrNullById(toolSessionId); - logger.debug(logger + " " + " QaUtils " + "retrieving qaSession: " + qaSession); - if (qaSession == null) return false; return true; } + + public static String getFormattedDateString(Date date) + { + logger.debug(logger + " " + " QaUtils getFormattedDateString: " + + DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date)); + return (DateFormat.getDateTimeInstance(DateFormat.LONG, DateFormat.LONG).format(date)); + } + + + + } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaQueContentDAO.java =================================================================== diff -u -r866e5012ca9e3e0591eef3d026f6406d5acc97b6 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaQueContentDAO.java (.../IQaQueContentDAO.java) (revision 866e5012ca9e3e0591eef3d026f6406d5acc97b6) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaQueContentDAO.java (.../IQaQueContentDAO.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -20,6 +20,9 @@ */ package org.lamsfoundation.lams.tool.qa.dao; +import java.util.List; + +import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaQueContent; @@ -34,6 +37,8 @@ public QaQueContent getToolDefaultQuestionContent(final long qaContentId); + public List getQuestionIndsForContent(QaContent qa); + public void createQueContent(QaQueContent queContent); public void removeQueContent(long qaQueContentId); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaSessionDAO.java =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaSessionDAO.java (.../IQaSessionDAO.java) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/IQaSessionDAO.java (.../IQaSessionDAO.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -20,6 +20,8 @@ */ package org.lamsfoundation.lams.tool.qa.dao; +import java.util.List; + import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaSession; @@ -34,6 +36,8 @@ public QaSession getQaSessionById(long qaSessionId); + public List getToolSessionsForContent(QaContent qa); + public QaSession getQaSessionOrNullById(long qaSessionId); public int studentActivityOccurred(QaContent qa); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaQueContentDAO.java =================================================================== diff -u -r866e5012ca9e3e0591eef3d026f6406d5acc97b6 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaQueContentDAO.java (.../QaQueContentDAO.java) (revision 866e5012ca9e3e0591eef3d026f6406d5acc97b6) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaQueContentDAO.java (.../QaQueContentDAO.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -6,10 +6,13 @@ */ package org.lamsfoundation.lams.tool.qa.dao.hibernate; +import java.util.List; + import net.sf.hibernate.HibernateException; import net.sf.hibernate.Session; import org.apache.log4j.Logger; +import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaQueContent; import org.lamsfoundation.lams.tool.qa.dao.IQaQueContentDAO; import org.springframework.orm.hibernate.HibernateCallback; @@ -28,6 +31,8 @@ public class QaQueContentDAO extends HibernateDaoSupport implements IQaQueContentDAO { static Logger logger = Logger.getLogger(QaQueContentDAO.class.getName()); private static final String LOAD_QUESTION_CONTENT_BY_CONTENT_ID = "from qaQueContent in class QaQueContent where qaQueContent.qaContentId=:qaContentId"; + private static final String GET_QUESTION_IDS_FOR_CONTENT = "select qaQueContent.qaQueContentId from QaQueContent qaQueContent where qaQueContent.qaContentId = :qa"; + public QaQueContent getToolDefaultQuestionContent(final long qaContentId) { @@ -42,7 +47,17 @@ }); } + public List getQuestionIndsForContent(QaContent qa) + { + + List listDefaultQuestionIds=(getHibernateTemplate().findByNamedParam(GET_QUESTION_IDS_FOR_CONTENT, + "qa", + qa)); + + return listDefaultQuestionIds; + } + public QaQueContent getQaQueById(long qaQueContentId) { return (QaQueContent) this.getHibernateTemplate().load(QaQueContent.class, new Long(qaQueContentId)); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaSessionDAO.java =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaSessionDAO.java (.../QaSessionDAO.java) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dao/hibernate/QaSessionDAO.java (.../QaSessionDAO.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -20,6 +20,8 @@ */ package org.lamsfoundation.lams.tool.qa.dao.hibernate; +import java.util.List; + import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaSession; import org.lamsfoundation.lams.tool.qa.dao.IQaSessionDAO; @@ -34,8 +36,9 @@ public class QaSessionDAO extends HibernateDaoSupport implements IQaSessionDAO { - private static final String COUNT_SESSION_INCOMPLITE = "select qaSession.session_status from QaSession qaSession where qaSession.session_status='INCOMPLETE' and qaSession.qaContentId = :qa"; - private static final String COUNT_SESSION_ACTIVITY = "select qaSession.session_status from QaSession qaSession where qaSession.qaContentId = :qa"; + private static final String COUNT_SESSION_INCOMPLITE = "select qaSession.session_status from QaSession qaSession where qaSession.session_status='INCOMPLETE' and qaSession.qaContentId = :qa"; + private static final String COUNT_SESSION_ACTIVITY = "select qaSession.session_status from QaSession qaSession where qaSession.qaContentId = :qa"; + private static final String GET_SESSION_IDS_FOR_CONTENT = "select qaSession.qaSessionId from QaSession qaSession where qaSession.qaContentId = :qa"; public int countIncompleteSession(QaContent qa) @@ -52,6 +55,15 @@ qa)).size(); } + + public List getToolSessionsForContent(QaContent qa) + { + + List lisToolSessionIds=(getHibernateTemplate().findByNamedParam(GET_SESSION_IDS_FOR_CONTENT, + "qa", + qa)); + return lisToolSessionIds; + } /** * @see org.lamsfoundation.lams.tool.survey.dao.interfaces.ISurveySessionDAO#getSurveySessionById(long) Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java =================================================================== diff -u -r866e5012ca9e3e0591eef3d026f6406d5acc97b6 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision 866e5012ca9e3e0591eef3d026f6406d5acc97b6) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/IQaService.java (.../IQaService.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -20,6 +20,8 @@ */ package org.lamsfoundation.lams.tool.qa.service; +import java.util.List; + import org.lamsfoundation.lams.tool.BasicToolVO; import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaQueContent; @@ -183,9 +185,11 @@ public long getToolDefaultContentIdBySignature(String toolSignature); - public QaQueContent getToolDefaultQuestionContent(long contentId); - public int countSessionUser(QaSession qaSession); + + public List getToolSessionsForContent(QaContent qa); + + public QaQueContent getToolDefaultQuestionContent(long contentId); } Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java =================================================================== diff -u -r866e5012ca9e3e0591eef3d026f6406d5acc97b6 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision 866e5012ca9e3e0591eef3d026f6406d5acc97b6) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -1093,6 +1093,14 @@ return qaQueContent; } + + public List getToolSessionsForContent(QaContent qa) + { + logger.debug(logger + " " + this.getClass().getName() + "attempt retrieving listToolSessionIds for : " + qa); + List listToolSessionIds=qaSessionDAO.getToolSessionsForContent(qa); + return listToolSessionIds; + } + /** * @return Returns the qaDAO. */ Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java (.../LearningUtil.java) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/LearningUtil.java (.../LearningUtil.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -14,7 +14,6 @@ import java.util.TreeSet; import javax.servlet.http.HttpServletRequest; -import org.lamsfoundation.lams.usermanagement.User; import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.qa.QaAppConstants; @@ -27,6 +26,7 @@ import org.lamsfoundation.lams.tool.qa.QaUsrResp; import org.lamsfoundation.lams.tool.qa.QaUtils; import org.lamsfoundation.lams.tool.qa.service.IQaService; +import org.lamsfoundation.lams.usermanagement.User; /** * @@ -543,6 +543,8 @@ request.getSession().setAttribute(ANSWER + questionIndex +""+ responseIndex, qaUsrResp.getAnswer()); request.getSession().setAttribute(ATIME + questionIndex +""+ responseIndex, qaUsrResp.getAttemptTime()); + request.getSession().setAttribute(FORMATTED_ATIME + questionIndex +""+ responseIndex, QaUtils.getFormattedDateString(qaUsrResp.getAttemptTime())); + logger.debug(logger + " " + this.getClass().getName() + "setting formattedDatetime"); request.getSession().setAttribute(TIMEZONE + questionIndex +""+ responseIndex, qaUsrResp.getTimezone()); if (qaQueUsr.getUsername().equalsIgnoreCase(toolUser.getLogin())) Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java (.../QaLearningStarterAction.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -210,9 +210,12 @@ } TimeZone timeZone=TimeZone.getDefault(); - logger.debug(logger + " " + this.getClass().getName() + "current qaSession: " + timeZone.getDisplayName()); + logger.debug(logger + " " + this.getClass().getName() + "current timezone: " + timeZone.getDisplayName()); request.getSession().setAttribute(TIMEZONE, timeZone.getDisplayName()); - + logger.debug(logger + " " + this.getClass().getName() + "current timezone id: " + timeZone.getID()); + request.getSession().setAttribute(TIMEZONE_ID, timeZone.getID()); + + /** * By now, the passed tool session id MUST exist in the db through the calling of: * public void createToolSession(Long toolSessionId, Long toolContentId) by the container. Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java (.../QaMonitoringAction.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -123,6 +123,7 @@ QaMonitoringForm qaMonitoringForm = (QaMonitoringForm) form; Boolean noToolSessionsAvailable=(Boolean)request.getSession().getAttribute(NO_TOOL_SESSIONS_AVAILABLE); + logger.debug(logger + " " + this.getClass().getName() + "generateSummaryScreen has noToolSessionsAvailable: " + noToolSessionsAvailable); if ((noToolSessionsAvailable !=null) && (noToolSessionsAvailable.booleanValue())) { qaMonitoringForm.resetUserAction(); @@ -311,18 +312,20 @@ request.getSession().setAttribute(NO_AVAILABLE_SESSIONS,new Boolean(false)); logger.debug(logger + " " + this.getClass().getName() + "NO_AVAILABLE_SESSIONS: " + false); + logger.debug(logger + " " + this.getClass().getName() + "retrieving ORIGINAL_TOOL_SESSIONS"); + Map originalSessionList=(Map)request.getSession().getAttribute(ORIGINAL_TOOL_SESSIONS); + logger.debug(logger + " " + this.getClass().getName() + "retrieved ORIGINAL_TOOL_SESSIONS : " + originalSessionList); /** * monitoredToolSessionsCounter holds the total number of valid toolSessionIds passed to the monitoring url */ - logger.debug(logger + " " + this.getClass().getName() + "READABLE_TOOL_SESSION_COUNT: " + READABLE_TOOL_SESSION_COUNT); int monitoredToolSessionsCounter=0; for (int toolSessionIdCounter=1; toolSessionIdCounter < READABLE_TOOL_SESSION_COUNT.intValue(); toolSessionIdCounter++) { logger.debug(logger + " " + this.getClass().getName() + "toolSessionIdCounter: " + toolSessionIdCounter); - String strToolSessionId=request.getParameter(TOOL_SESSION_ID + toolSessionIdCounter); - logger.debug(logger + " " + this.getClass().getName() + "TOOL_SESSION_ID: " + strToolSessionId); - + String strToolSessionId=(String) originalSessionList.get(""+toolSessionIdCounter); + logger.debug(logger + " " + this.getClass().getName() + "original strToolSessionId: " + strToolSessionId); + String strRetrievableToolSessionId=""; /** * catering for un-formatted monitoring url Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java (.../QaMonitoringStarterAction.java) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringStarterAction.java (.../QaMonitoringStarterAction.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -19,6 +19,10 @@ package org.lamsfoundation.lams.tool.qa.web; import java.io.IOException; +import java.util.Iterator; +import java.util.List; +import java.util.Map; +import java.util.TreeMap; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; @@ -36,6 +40,7 @@ import org.lamsfoundation.lams.tool.qa.QaApplicationException; import org.lamsfoundation.lams.tool.qa.QaContent; import org.lamsfoundation.lams.tool.qa.QaSession; +import org.lamsfoundation.lams.tool.qa.QaStringComparator; import org.lamsfoundation.lams.tool.qa.QaUtils; import org.lamsfoundation.lams.tool.qa.service.IQaService; import org.lamsfoundation.lams.tool.qa.service.QaServiceProxy; @@ -72,6 +77,7 @@ /** * obtain and setup the current user's data */ + String userId=""; User toolUser=(User)request.getSession().getAttribute(TOOL_USER); if (toolUser != null) @@ -102,16 +108,16 @@ return (mapping.findForward(MONITORING_REPORT)); } logger.debug(logger + " " + this.getClass().getName() + "TOOL_USER is:" + request.getSession().getAttribute(TOOL_USER)); - - String toolContentId=request.getParameter(TOOL_CONTENT_ID); + + String toolContentId=request.getParameter(TOOL_CONTENT_ID); logger.debug(logger + " " + this.getClass().getName() + "TOOL_CONTENT_ID: " + toolContentId); Long initialMonitoringContentId=(Long) request.getSession().getAttribute(INITIAL_MONITORING_TOOL_CONTENT_ID); logger.debug(logger + " " + this.getClass().getName() + "INITIAL_MONITORING_TOOL_CONTENT_ID: " + initialMonitoringContentId); if ((toolContentId == null) || (toolContentId.length() == 0)) { - logger.debug(logger + "Warning!: passing TOOL_CONTENT_ID is optional. Since it is null, we will derive it from tool session(s)."); + logger.debug(logger + "Warning!: toolContentId is not available!"); } else if (initialMonitoringContentId != null) { @@ -153,18 +159,26 @@ logger.debug(logger + " " + this.getClass().getName() + "qaContent: " + qaContent); request.getSession().setAttribute(MONITORED_OFFLINE_INSTRUCTIONS, qaContent.getOfflineInstructions()); request.getSession().setAttribute(MONITORED_ONLINE_INSTRUCTIONS, qaContent.getOnlineInstructions()); - logger.debug(logger + " " + this.getClass().getName() + "session updated with on/off instructions"); + logger.debug(logger + " " + this.getClass().getName() + "session updated with online/offline instructions"); } /** - * find out if only content id but no tool sessions has been passed + * find out if only content id but no tool sessions has been passed + * since with the updated tool contract only userId+toolContentId is passed + * this will always return true */ + boolean isOnlyContentIdAvailable = isOnlyContentIdAvailable(request); logger.debug(logger + "final isOnlyContentIdAvailable: " + isOnlyContentIdAvailable); request.getSession().setAttribute(NO_TOOL_SESSIONS_AVAILABLE, new Boolean(false)); if (isOnlyContentIdAvailable == false) { + /** + * this block of code will normally never run! + */ + logger.debug(logger + "Warning! We are not supposed to reach here."); + /* logger.debug(logger + "found sessions: isOnlyContentIdAvailable: " + isOnlyContentIdAvailable); if ((toolContentId != null) && (toolContentId.length() > 0)) { @@ -206,20 +220,46 @@ return (mapping.findForward(MONITORING_REPORT)); } qaMonitoringForm.setSummary("summary"); + */ } else { - logger.debug(logger + "found sessions: isOnlyContentIdAvailable: " + isOnlyContentIdAvailable); - logger.debug(logger + "no tool sessions passed"); + logger.debug(logger + "isOnlyContentIdAvailable: " + isOnlyContentIdAvailable); + logger.debug(logger + "no tool sessions passed and they will be populated from toolContentId."); qaMonitoringForm.resetUserAction(); - logger.debug(logger + "no tool sessions passed"); + /* persistError(request,"error.content.onlyContentAndNoSessions"); request.setAttribute(USER_EXCEPTION_ONLYCONTENT_ANDNOSESSIONS, new Boolean(true)); request.getSession().setAttribute(NO_TOOL_SESSIONS_AVAILABLE, new Boolean(true)); logger.debug(logger + " " + this.getClass().getName() + "forwarding to: " + MONITORING_REPORT); request.getSession().setAttribute(INITIAL_MONITORING_TOOL_CONTENT_ID, new Long(toolContentId)); logger.debug(logger + "INITIAL_MONITORING_TOOL_CONTENT_ID: " + request.getSession().getAttribute(INITIAL_MONITORING_TOOL_CONTENT_ID)); return (mapping.findForward(MONITORING_REPORT)); + */ + logger.debug(logger + "getting qaContent for toolContentId: " + toolContentId); + QaContent qaContent=qaService.loadQa(new Long(toolContentId).longValue()); + logger.debug(logger + "retrieved qaContent: " + qaContent); + List listToolSessionIds=qaService.getToolSessionsForContent(qaContent); + logger.debug(logger + "retrieved listToolSessionIds: " + listToolSessionIds); + + Map originalSessionList= new TreeMap(new QaStringComparator()); + Iterator sessionIdsIterator=listToolSessionIds.iterator(); + int sessionIdCounter=1; + while (sessionIdsIterator.hasNext()) + { + Long derivedToolSessionId=(Long) sessionIdsIterator.next(); + logger.debug("derivedToolSessionId: " + derivedToolSessionId); + originalSessionList.put(new Integer(sessionIdCounter).toString(), derivedToolSessionId.toString()); + sessionIdCounter++; + } + logger.debug(logger + "constructed originalSessionList: " + originalSessionList); + + if (originalSessionList.size() == 0) + request.getSession().setAttribute(NO_TOOL_SESSIONS_AVAILABLE, new Boolean(true)); + else + request.getSession().setAttribute(ORIGINAL_TOOL_SESSIONS,originalSessionList); + + qaMonitoringForm.setSummary("summary"); } String strFromToolContentId=""; Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaStarterAction.java (.../QaStarterAction.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -104,7 +104,7 @@ */ try { - logger.debug(logger + " " + this.getClass().getName() + "retrieve the default question content id based on default content id: " + contentId); + logger.debug(logger + " " + this.getClass().getName() + "retrieve the default question content based on default contentId: " + contentId); QaQueContent qaQueContent=qaService.getToolDefaultQuestionContent(contentId); logger.debug(logger + " " + this.getClass().getName() + "using QaQueContent: " + qaQueContent); if (qaQueContent == null) @@ -117,7 +117,7 @@ /** * display a single sample question */ - System.out.println(this.getClass().getName() + " set default qa que content to: " + qaQueContent.getQuestion() ); + System.out.println(this.getClass().getName() + "set default qa que content to: " + qaQueContent.getQuestion() ); request.getSession().setAttribute(DEFAULT_QUESTION_CONTENT, qaQueContent.getQuestion()); } catch(Exception e) Index: lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaContent.java =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaContent.java (.../TestQaContent.java) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/test/java/org/lamsfoundation/lams/tool/qa/TestQaContent.java (.../TestQaContent.java) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -9,6 +9,8 @@ package org.lamsfoundation.lams.tool.qa; +import java.text.DateFormat; +import java.util.Date; import java.util.TimeZone; import org.lamsfoundation.lams.tool.service.ILamsToolService; @@ -173,4 +175,11 @@ System.out.println("timeZone: " + timeZone.getDisplayName()); } + public void testDateTime() + { + Date now = new Date(); + System.out.println("10. " + DateFormat.getDateTimeInstance( + DateFormat.LONG, DateFormat.LONG).format(now)); + } + } \ No newline at end of file Index: lams_tool_laqa/web/MonitoringInstructionsScreen.jsp =================================================================== diff -u -r16e844de3f7c34b44baee1b28e67e708f42d00bf -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/web/MonitoringInstructionsScreen.jsp (.../MonitoringInstructionsScreen.jsp) (revision 16e844de3f7c34b44baee1b28e67e708f42d00bf) +++ lams_tool_laqa/web/MonitoringInstructionsScreen.jsp (.../MonitoringInstructionsScreen.jsp) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -31,24 +31,16 @@ - + - + - -    - - - - - - \ No newline at end of file Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/AdvancedContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/BasicContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/CombinedAnswersContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/InstructionsContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/MonitoringInstructionsScreen.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/MonitoringStatsScreen.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/MonitoringSummaryScreen.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/includes/SequentialAnswersContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Index: lams_tool_laqa/web/learnerReport.jsp =================================================================== diff -u -rb7c4250adc416462793208c4393c5befc2dc69c7 -rdbc459a54a0eb6961b4c331f3174cc1fa4661f02 --- lams_tool_laqa/web/learnerReport.jsp (.../learnerReport.jsp) (revision b7c4250adc416462793208c4393c5befc2dc69c7) +++ lams_tool_laqa/web/learnerReport.jsp (.../learnerReport.jsp) (revision dbc459a54a0eb6961b4c331f3174cc1fa4661f02) @@ -37,19 +37,22 @@ - <%String fullName="fullName" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); - String aTime="aTime" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); - String timeZone="timeZone" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); - String answer="answer" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); + <%String fullName ="fullName" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); + String aTime ="aTime" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); + String formattedAtime="formattedAtime" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); + String timeZone ="timeZone" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); + String answer ="answer" + request.getAttribute("queIndex") + request.getAttribute("ansIndex"); String currentLearnerFullname=(String) request.getSession().getAttribute("currentLearnerFullname"); - fullName= (String) request.getSession().getAttribute(fullName); + fullName = (String) request.getSession().getAttribute(fullName); java.util.Date attemptTime= (java.util.Date) request.getSession().getAttribute(aTime); - timeZone= (String) request.getSession().getAttribute(timeZone); - answer= (String) request.getSession().getAttribute(answer); + formattedAtime =(String) request.getSession().getAttribute(formattedAtime); + timeZone = (String) request.getSession().getAttribute(timeZone); + answer = (String) request.getSession().getAttribute(answer); request.setAttribute("fullName", fullName); request.setAttribute("attemptTime", attemptTime); + request.setAttribute("formattedAtime", formattedAtime); request.setAttribute("timeZone", timeZone); request.setAttribute("answer", answer); request.setAttribute("currentLearnerFullname", currentLearnerFullname); @@ -96,11 +99,15 @@ <%}%> - <% if (attemptTime != null) + + + <% if (formattedAtime != null) { %> -     +     + + <%}%> Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/template/baseContent.jsp'. Fisheye: No comparison available. Pass `N' to diff? Fisheye: Tag dbc459a54a0eb6961b4c331f3174cc1fa4661f02 refers to a dead (removed) revision in file `lams_tool_laqa/web/template/template.jsp'. Fisheye: No comparison available. Pass `N' to diff?