Index: lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml,v diff -u -r1.10.6.1.4.4 -r1.10.6.1.4.5 --- lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml 22 Mar 2011 16:38:45 -0000 1.10.6.1.4.4 +++ lams_tool_laqa/conf/hibernate/mappings/org/lamsfoundation/lams/tool/qa/QaContent.hbm.xml 13 Apr 2011 16:57:51 -0000 1.10.6.1.4.5 @@ -87,13 +87,23 @@ /> + + + + qaQueContents; @@ -436,8 +438,23 @@ public void setUpdateDate(Date updateDate) { this.updateDate = updateDate; } + + /** + * @return Returns the submissionDeadline. + */ + public Date getSubmissionDeadline() { + return submissionDeadline; + } /** + * @param submissionDeadline + * The submissionDeadline to set. + */ + public void setSubmissionDeadline(Date submissionDeadline) { + this.submissionDeadline = submissionDeadline; + } + + /** * @return Returns the usernameVisible. */ public boolean isUsernameVisible() { Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20110217_updateTo236.sql =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20110217_updateTo236.sql,v diff -u -r1.1.2.2 -r1.1.2.3 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20110217_updateTo236.sql 16 Mar 2011 19:54:00 -0000 1.1.2.2 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/dbupdates/patch20110217_updateTo236.sql 13 Apr 2011 16:57:51 -0000 1.1.2.3 @@ -25,6 +25,9 @@ -- LDEV-2653 autosave feature ALTER TABLE tl_laqa11_usr_resp DROP COLUMN hidden; +-- LDEV-2657 Date and time restriction +ALTER TABLE tl_laqa11_content ADD COLUMN submission_deadline DATETIME DEFAULT null; + UPDATE lams_tool SET tool_version = "20110217" WHERE tool_signature = "laqa11"; ----------------------Put all sql statements above here------------------------- Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/Attic/MonitoringUtil.java,v diff -u -r1.42.8.5 -r1.42.8.6 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java 22 Mar 2011 16:38:46 -0000 1.42.8.5 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/MonitoringUtil.java 13 Apr 2011 16:57:50 -0000 1.42.8.6 @@ -24,13 +24,16 @@ package org.lamsfoundation.lams.tool.qa.web; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; +import java.util.TimeZone; import java.util.TreeMap; import javax.servlet.http.HttpServletRequest; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.lamsfoundation.lams.notebook.model.NotebookEntry; @@ -49,6 +52,10 @@ import org.lamsfoundation.lams.tool.qa.service.IQaService; import org.lamsfoundation.lams.tool.qa.util.QaStringComparator; import org.lamsfoundation.lams.tool.qa.util.QaUtils; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.DateUtil; +import org.lamsfoundation.lams.web.session.SessionManager; +import org.lamsfoundation.lams.web.util.AttributeNames; /** * @@ -370,6 +377,16 @@ //generateGroupsSessionData List listAllGroupsDTO = buildGroupBasedSessionData(request, qaContent, qaService); request.setAttribute(LIST_ALL_GROUPS_DTO, listAllGroupsDTO); + + //set SubmissionDeadline, if any + if (qaContent.getSubmissionDeadline() != null) { + Date submissionDeadline = qaContent.getSubmissionDeadline(); + HttpSession ss = SessionManager.getSession(); + UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone teacherTimeZone = teacher.getTimeZone(); + Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(teacherTimeZone, submissionDeadline); + request.setAttribute(QaAppConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime()); + } } public static List buildGroupBasedSessionData(HttpServletRequest request, QaContent qaContent, IQaService qaService) { 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.70.4.1.4.4 -r1.70.4.1.4.5 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 22 Mar 2011 16:38:46 -0000 1.70.4.1.4.4 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaLearningStarterAction.java 13 Apr 2011 16:57:50 -0000 1.70.4.1.4.5 @@ -25,9 +25,11 @@ package org.lamsfoundation.lams.tool.qa.web; import java.io.IOException; +import java.util.Date; import java.util.HashMap; import java.util.Iterator; import java.util.Map; +import java.util.TimeZone; import java.util.TreeMap; import javax.servlet.ServletException; @@ -60,6 +62,7 @@ import org.lamsfoundation.lams.tool.qa.util.QaUtils; import org.lamsfoundation.lams.tool.qa.web.form.QaLearningForm; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; @@ -302,6 +305,24 @@ QaUtils.cleanUpSessionAbsolute(request); return (mapping.findForward(RUN_OFFLINE)); } + + //check if there is submission deadline + Date submissionDeadline = qaContent.getSubmissionDeadline(); + if (submissionDeadline != null) { + //store submission deadline to sessionMap + sessionMap.put(QaAppConstants.ATTR_SUBMISSION_DEADLINE, submissionDeadline); + + HttpSession ss = SessionManager.getSession(); + UserDTO learnerDto = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone learnerTimeZone = learnerDto.getTimeZone(); + Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline); + Date currentLearnerDate = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, new Date()); + + //calculate whether submission deadline has passed, and if so forward to "runOffline" + if (currentLearnerDate.after(tzSubmissionDeadline)) { + return mapping.findForward("runOffline"); + } + } /* * Verify that userId does not already exist in the db. Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java,v diff -u -r1.61.8.7 -r1.61.8.8 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java 22 Mar 2011 16:38:46 -0000 1.61.8.7 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QaMonitoringAction.java 13 Apr 2011 16:57:50 -0000 1.61.8.8 @@ -96,15 +96,18 @@ import java.io.IOException; import java.util.ArrayList; +import java.util.Date; import java.util.Iterator; import java.util.LinkedList; import java.util.List; import java.util.Map; import java.util.Set; +import java.util.TimeZone; import javax.servlet.ServletException; import javax.servlet.http.HttpServletRequest; import javax.servlet.http.HttpServletResponse; +import javax.servlet.http.HttpSession; import org.apache.log4j.Logger; import org.apache.struts.Globals; @@ -134,8 +137,11 @@ import org.lamsfoundation.lams.tool.qa.util.QaUtils; import org.lamsfoundation.lams.tool.qa.web.form.QaAuthoringForm; import org.lamsfoundation.lams.tool.qa.web.form.QaMonitoringForm; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; +import org.lamsfoundation.lams.util.DateUtil; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.action.LamsDispatchAction; +import org.lamsfoundation.lams.web.session.SessionManager; import org.lamsfoundation.lams.web.util.AttributeNames; import org.lamsfoundation.lams.web.util.SessionMap; @@ -3343,7 +3349,38 @@ return mapping.findForward(QaAppConstants.LOAD_MONITORING); } + + /** + * Set Submission Deadline + * + * @param mapping + * @param form + * @param request + * @param response + * @return + */ + public ActionForward setSubmissionDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request, + HttpServletResponse response) { + IQaService qaService = getQAService(); + + Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID); + QaContent content = qaService.getQa(contentID); + + Long dateParameter = WebUtil.readLongParam(request, QaAppConstants.ATTR_SUBMISSION_DEADLINE, true); + Date tzSubmissionDeadline = null; + if (dateParameter != null) { + Date submissionDeadline = new Date(dateParameter); + HttpSession ss = SessionManager.getSession(); + UserDTO teacher = (UserDTO) ss.getAttribute(AttributeNames.USER); + TimeZone teacherTimeZone = teacher.getTimeZone(); + tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline); + } + content.setSubmissionDeadline(tzSubmissionDeadline); + qaService.saveOrUpdateQa(content); + return null; + } + public void prepareReflectionData(HttpServletRequest request, QaContent qaContent, IQaService qaService, String userID, boolean exportMode, String currentSessionId) { @@ -3533,5 +3570,9 @@ return reflectionsContainerDTO; } + + private IQaService getQAService() { + return QaServiceProxy.getQaService(getServlet().getServletContext()); + } } \ No newline at end of file Index: lams_tool_laqa/web/common/tabbedheader.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/common/tabbedheader.jsp,v diff -u -r1.2 -r1.2.10.1 --- lams_tool_laqa/web/common/tabbedheader.jsp 8 Jun 2007 01:38:44 -0000 1.2 +++ lams_tool_laqa/web/common/tabbedheader.jsp 13 Apr 2011 16:57:51 -0000 1.2.10.1 @@ -19,7 +19,6 @@ - <%@ include file="/common/fckeditorheader.jsp"%> Index: lams_tool_laqa/web/learning/AnswersContent.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/AnswersContent.jsp,v diff -u -r1.28.10.3 -r1.28.10.4 --- lams_tool_laqa/web/learning/AnswersContent.jsp 16 Mar 2011 20:01:47 -0000 1.28.10.3 +++ lams_tool_laqa/web/learning/AnswersContent.jsp 13 Apr 2011 16:57:51 -0000 1.28.10.4 @@ -30,6 +30,7 @@ + @@ -98,12 +99,18 @@

- +

+ + +
+ + + +
+
- + Index: lams_tool_laqa/web/learning/IndividualLearnerResults.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/IndividualLearnerResults.jsp,v diff -u -r1.33.8.3 -r1.33.8.4 --- lams_tool_laqa/web/learning/IndividualLearnerResults.jsp 1 Nov 2010 10:24:25 -0000 1.33.8.3 +++ lams_tool_laqa/web/learning/IndividualLearnerResults.jsp 13 Apr 2011 16:57:51 -0000 1.33.8.4 @@ -29,6 +29,7 @@ + @@ -55,35 +56,35 @@ - - -

+ + +
+ + + +
+
- -
- -
+ +
+ +
+
-
- - - + + - -

- + - - -


-

- -
- :
-
-
+
-
- -
@@ -161,8 +150,6 @@ - -
Index: lams_tool_laqa/web/learning/LearnerRep.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/LearnerRep.jsp,v diff -u -r1.37.8.4 -r1.37.8.5 --- lams_tool_laqa/web/learning/LearnerRep.jsp 3 Mar 2011 20:34:50 -0000 1.37.8.4 +++ lams_tool_laqa/web/learning/LearnerRep.jsp 13 Apr 2011 16:57:51 -0000 1.37.8.5 @@ -29,6 +29,7 @@ + @@ -84,16 +85,20 @@

- +

+ + +
+ + + +
+
- + - - + @@ -108,36 +113,32 @@ - - + +

:

- + - - -

- - - -

-

- -

- -
+ +

+ - + +

+

+ +

+ +
@@ -149,22 +150,17 @@

- - - + + -
-

- : - -

- +
+

+ : + +

- + @@ -203,8 +199,7 @@ - + +

- + - - + +

:

- + @@ -303,21 +293,17 @@ - - - + + -
-

- : - -

+
+

+ : + +

- + @@ -357,19 +343,16 @@ - + - + - + Index: lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp,v diff -u -r1.16.8.5 -r1.16.8.6 --- lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp 16 Mar 2011 20:01:47 -0000 1.16.8.5 +++ lams_tool_laqa/web/learning/RevisitedLearnerRep.jsp 13 Apr 2011 16:57:51 -0000 1.16.8.6 @@ -29,6 +29,7 @@ + @@ -85,9 +86,16 @@

- +

+ + +
+ + + +
+
Index: lams_tool_laqa/web/learning/RunOffline.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/learning/Attic/RunOffline.jsp,v diff -u -r1.16.8.1 -r1.16.8.2 --- lams_tool_laqa/web/learning/RunOffline.jsp 16 Sep 2009 01:58:46 -0000 1.16.8.1 +++ lams_tool_laqa/web/learning/RunOffline.jsp 13 Apr 2011 16:57:51 -0000 1.16.8.2 @@ -22,6 +22,7 @@ "http://www.w3.org/TR/html4/strict.dtd"> <%@ include file="/common/taglibs.jsp"%> + @@ -69,9 +70,21 @@

-

- -

+ + + +

+ +

+
+ +
+ + + +
+
+
Index: lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp,v diff -u -r1.28.10.2 -r1.28.10.3 --- lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp 3 Mar 2011 20:34:50 -0000 1.28.10.2 +++ lams_tool_laqa/web/monitoring/MonitoringMaincontent.jsp 13 Apr 2011 16:57:50 -0000 1.28.10.3 @@ -41,6 +41,8 @@ <fmt:message key="activity.title" /> <%@ include file="/common/tabbedheader.jsp"%> + +