conditions) {
this.conditions = conditions;
}
+
+ /**
+ * @hibernate.property column="submission_deadline"
+ * @return date submissionDeadline
+ */
+ public Date getSubmissionDeadline() {
+ return submissionDeadline;
+ }
+
+ public void setSubmissionDeadline(Date submissionDeadline) {
+ this.submissionDeadline = submissionDeadline;
+ }
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java,v
diff -u -r1.56 -r1.57
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 4 Mar 2011 13:50:04 -0000 1.56
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/util/ForumConstants.java 13 May 2011 07:27:15 -0000 1.57
@@ -101,6 +101,12 @@
public static final String ATTR_USER_FINISHED = "userFinished";
+ // for submission deadline LDEV-2657
+
+ public static final String ATTR_SUBMISSION_DEADLINE = "submissionDeadline";
+
+ public static final String ATTR_IS_SUBMISSION_DEADLINE_PASSED = "isSubmissionDeadlinePassed";
+
// used in monitoring
public static final String TITLE = "title";
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java,v
diff -u -r1.71 -r1.72
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 24 Mar 2011 17:56:26 -0000 1.71
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/LearningAction.java 13 May 2011 07:27:15 -0000 1.72
@@ -33,6 +33,7 @@
import java.util.Iterator;
import java.util.List;
import java.util.Set;
+import java.util.TimeZone;
import javax.servlet.ServletException;
import javax.servlet.http.HttpServletRequest;
@@ -73,6 +74,7 @@
import org.lamsfoundation.lams.tool.forum.web.forms.ReflectionForm;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.WebUtil;
+import org.lamsfoundation.lams.util.DateUtil;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.web.util.SessionMap;
@@ -192,6 +194,9 @@
throw new Exception("Failed on getting session by given sessionID:" + sessionId);
}
+ // get session from shared session.
+ HttpSession ss = SessionManager.getSession();
+
Forum forum = session.getForum();
// lock on finish
ForumUser forumUser = getCurrentUser(request, sessionId);
@@ -285,6 +290,21 @@
forumUser.getUserId().longValue(), IEventNotificationService.DELIVERY_METHOD_MAIL,
IEventNotificationService.PERIODICITY_SINGLE);
}
+
+ // check if there is submission deadline
+ Date submissionDeadline = forum.getSubmissionDeadline();
+ if (submissionDeadline != null) {
+ sessionMap.put(ForumConstants.ATTR_SUBMISSION_DEADLINE, forum.getSubmissionDeadline());
+ 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");
+ }
+ }
return mapping.findForward("success");
}
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java,v
diff -u -r1.43 -r1.44
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 24 Mar 2011 17:56:26 -0000 1.43
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/web/actions/MonitoringAction.java 13 May 2011 07:27:15 -0000 1.44
@@ -32,6 +32,7 @@
import java.util.ArrayList;
import java.util.Comparator;
import java.util.Date;
+import java.util.TimeZone;
import java.util.HashMap;
import java.util.Iterator;
import java.util.List;
@@ -40,6 +41,7 @@
import java.util.TreeMap;
import java.util.TreeSet;
+import javax.servlet.http.HttpSession;
import javax.servlet.http.HttpServletRequest;
import javax.servlet.http.HttpServletResponse;
@@ -71,11 +73,13 @@
import org.lamsfoundation.lams.tool.forum.util.ForumWebUtils;
import org.lamsfoundation.lams.tool.forum.web.forms.ForumForm;
import org.lamsfoundation.lams.tool.forum.web.forms.MarkForm;
+import org.lamsfoundation.lams.util.DateUtil;
import org.lamsfoundation.lams.util.MessageService;
import org.lamsfoundation.lams.util.NumberUtil;
import org.lamsfoundation.lams.util.WebUtil;
import org.lamsfoundation.lams.web.util.AttributeNames;
import org.lamsfoundation.lams.web.util.SessionMap;
+import org.lamsfoundation.lams.web.session.SessionManager;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -168,6 +172,11 @@
if (param.equals("viewReflection")) {
return viewReflection(mapping, form, request, response);
}
+
+ // **************** Date restriction *****************
+ if (param.equals("setSubmissionDeadline")) {
+ return setSubmissionDeadline(mapping, form, request, response);
+ }
return mapping.findForward("error");
}
@@ -210,13 +219,28 @@
Long toolContentID = new Long(WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID));
forumService = getForumService();
+
+ // get session from shared session.
+ HttpSession ss = SessionManager.getSession();
+
List sessionsList = forumService.getSessionsByContentId(toolContentID);
// A forum clone required for listing the advanced options LDEV-1662
Forum forumClone = null;
+ // check if there is submission deadline
+ Date submissionDeadline = forumService.getForumByContentId(toolContentID).getSubmissionDeadline();
+
+ if (submissionDeadline != null) {
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO learnerDto = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss.getAttribute(AttributeNames.USER);
+ TimeZone learnerTimeZone = learnerDto.getTimeZone();
+ Date tzSubmissionDeadline = DateUtil.convertToTimeZoneFromDefault(learnerTimeZone, submissionDeadline);
+ request.setAttribute(ForumConstants.ATTR_SUBMISSION_DEADLINE, tzSubmissionDeadline.getTime());
+ }
+
+
Map sessionUsersMap = new TreeMap(this.new SessionDTOComparator());
- // build a map with all users in the submitFilesSessionList
+ // build a map with all users in the forumSessionList
Iterator it = sessionsList.iterator();
while (it.hasNext()) {
SessionDTO sessionDto = new SessionDTO();
@@ -795,7 +819,40 @@
}
}
+
+ /**
+ * Set Submission Deadline
+ *
+ * @param mapping
+ * @param form
+ * @param request
+ * @param response
+ * @return
+ */
+ public ActionForward setSubmissionDeadline(ActionMapping mapping, ActionForm form, HttpServletRequest request,
+ HttpServletResponse response) {
+ forumService = getForumService();
+
+ Long contentID = WebUtil.readLongParam(request, AttributeNames.PARAM_TOOL_CONTENT_ID);
+ Forum forum = forumService.getForumByContentId(contentID);
+
+ Long dateParameter = WebUtil.readLongParam(request, ForumConstants.ATTR_SUBMISSION_DEADLINE, true);
+ Date tzSubmissionDeadline = null;
+ if (dateParameter != null) {
+ Date submissionDeadline = new Date(dateParameter);
+ HttpSession ss = SessionManager.getSession();
+ org.lamsfoundation.lams.usermanagement.dto.UserDTO teacher = (org.lamsfoundation.lams.usermanagement.dto.UserDTO) ss.getAttribute(AttributeNames.USER);
+ TimeZone teacherTimeZone = teacher.getTimeZone();
+ tzSubmissionDeadline = DateUtil.convertFromTimeZoneToDefault(teacherTimeZone, submissionDeadline);
+ }
+ forum.setSubmissionDeadline(tzSubmissionDeadline);
+ forumService.updateForum(forum);
+ return null;
+ }
+
+
+
// ==========================================================================================
// Utility methods
// ==========================================================================================
Index: lams_tool_forum/web/common/tabbedheader.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/common/tabbedheader.jsp,v
diff -u -r1.3 -r1.4
--- lams_tool_forum/web/common/tabbedheader.jsp 28 Jul 2009 14:20:27 -0000 1.3
+++ lams_tool_forum/web/common/tabbedheader.jsp 13 May 2011 07:27:15 -0000 1.4
@@ -30,6 +30,5 @@
-
Index: lams_tool_forum/web/jsps/learning/runoffline.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/learning/Attic/runoffline.jsp,v
diff -u -r1.14 -r1.15
--- lams_tool_forum/web/jsps/learning/runoffline.jsp 14 Sep 2009 05:24:05 -0000 1.14
+++ lams_tool_forum/web/jsps/learning/runoffline.jsp 13 May 2011 07:27:15 -0000 1.15
@@ -7,9 +7,20 @@
-
-
-
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_tool_forum/web/jsps/learning/viewforum.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/learning/viewforum.jsp,v
diff -u -r1.32 -r1.33
--- lams_tool_forum/web/jsps/learning/viewforum.jsp 14 Sep 2009 05:24:05 -0000 1.32
+++ lams_tool_forum/web/jsps/learning/viewforum.jsp 13 May 2011 07:27:15 -0000 1.33
@@ -13,6 +13,13 @@
+
+
+
+
+
+
+
Fisheye: Tag 1.1 refers to a dead (removed) revision in file `lams_tool_forum/web/jsps/monitoring/daterestriction.jsp'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_tool_forum/web/jsps/monitoring/summary.jsp
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_forum/web/jsps/monitoring/summary.jsp,v
diff -u -r1.18 -r1.19
--- lams_tool_forum/web/jsps/monitoring/summary.jsp 4 Mar 2011 13:50:05 -0000 1.18
+++ lams_tool_forum/web/jsps/monitoring/summary.jsp 13 May 2011 07:27:15 -0000 1.19
@@ -3,7 +3,18 @@
-
+
+
+
+
+
+
+
+
+
+
+
+
-