Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java
===================================================================
diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -rf2f9719ac9da5fcffc7f73597545697deb22af88
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java (.../SubmitFilesServiceProxy.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesServiceProxy.java (.../SubmitFilesServiceProxy.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88)
@@ -25,6 +25,7 @@
import javax.servlet.ServletContext;
+import org.lamsfoundation.lams.tool.ToolSessionManager;
import org.springframework.web.context.WebApplicationContext;
import org.springframework.web.context.support.WebApplicationContextUtils;
@@ -34,9 +35,21 @@
public class SubmitFilesServiceProxy {
public static final ISubmitFilesService getSubmitFilesService(ServletContext servletContext){
+ return (ISubmitFilesService) getService(servletContext);
+ }
+
+ public static final ToolSessionManager getToolSessionManager(ServletContext servletContext){
+ return (ToolSessionManager) getService(servletContext);
+ }
+
+ /**
+ * @param servletContext
+ * @return
+ */
+ private static Object getService(ServletContext servletContext) {
WebApplicationContext context = WebApplicationContextUtils
.getRequiredWebApplicationContext(servletContext);
- return (ISubmitFilesService)context.getBean("submitFilesService");
+ return context.getBean("submitFilesService");
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java
===================================================================
diff -u -r2437f5fc533ea6acaf8a86a9a703a5909b456516 -rf2f9719ac9da5fcffc7f73597545697deb22af88
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision 2437f5fc533ea6acaf8a86a9a703a5909b456516)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88)
@@ -35,4 +35,5 @@
public static final String TOOL_URL_BASE = "/lams/tool/lasbmt11/";
public static final String ATTACHMENT_LIST = "attachmentList";
public static final String DELETED_ATTACHMENT_LIST = "deletedAttachmentList";
+ public static final String READ_ONLY_MODE = "readOnlyMode";
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java
===================================================================
diff -u -rc97960ddf053d2035d4285dc77dde54ffc2df31d -rf2f9719ac9da5fcffc7f73597545697deb22af88
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision c97960ddf053d2035d4285dc77dde54ffc2df31d)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision f2f9719ac9da5fcffc7f73597545697deb22af88)
@@ -6,6 +6,7 @@
*/
package org.lamsfoundation.lams.tool.sbmt.web;
+import java.io.IOException;
import java.util.Iterator;
import java.util.List;
@@ -23,6 +24,9 @@
import org.apache.struts.actions.DispatchAction;
import org.apache.struts.upload.FormFile;
import org.lamsfoundation.lams.tool.ToolAccessMode;
+import org.lamsfoundation.lams.tool.ToolSessionManager;
+import org.lamsfoundation.lams.tool.exception.DataMissingException;
+import org.lamsfoundation.lams.tool.exception.ToolException;
import org.lamsfoundation.lams.tool.sbmt.Learner;
import org.lamsfoundation.lams.tool.sbmt.SubmitFilesContent;
import org.lamsfoundation.lams.tool.sbmt.SubmitFilesSession;
@@ -194,22 +198,47 @@
ActionForm form,
HttpServletRequest request,
HttpServletResponse response){
- DynaActionForm authForm= (DynaActionForm)form;
- Long sessionID =(Long) authForm.get(AttributeNames.PARAM_TOOL_SESSION_ID);
- Long userID = (Long)authForm.get(SbmtConstants.USER_ID);
- submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext());
- submitFilesService.finishSubmission(sessionID,userID);
+
+ DynaActionForm authForm = (DynaActionForm) form;
+ ToolAccessMode mode = (ToolAccessMode) request.getSession().getAttribute(AttributeNames.ATTR_MODE);
+ if (mode == ToolAccessMode.LEARNER) {
+ ToolSessionManager sessionMgrService = SubmitFilesServiceProxy.getToolSessionManager(getServlet().getServletContext());
+ submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext());
+ Long sessionID = (Long) authForm.get(AttributeNames.PARAM_TOOL_SESSION_ID);
+ //get back login user DTO
+ //get session from shared session.
+ HttpSession ss = SessionManager.getSession();
+ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER);
+ Long userID = new Long(user.getUserID().longValue());
+ submitFilesService.finishSubmission(sessionID, userID);
+
+ String nextActivityUrl;
+ try {
+ nextActivityUrl = sessionMgrService.leaveToolSession(sessionID, userID);
+ response.sendRedirect(nextActivityUrl);
+ } catch (DataMissingException e) {
+ throw new SubmitFilesException(e);
+ } catch (ToolException e) {
+ throw new SubmitFilesException(e);
+ } catch (IOException e) {
+ throw new SubmitFilesException(e);
+ }
+ return null;
+ }
+ request.getSession().setAttribute(SbmtConstants.READ_ONLY_MODE, "true");
return mapping.findForward("finish");
}
/**
- * This is a utily function for forwarding the errors to
- * the respective JSP page indicated by forward
+ * This is a utily function for forwarding the errors to the respective JSP
+ * page indicated by forward
*
- * @param mapping
+ * @param mapping
* @param request
- * @param errorMessage The error message to be displayed
- * @param forward The JSP page to which the errors would be forwarded
+ * @param errorMessage
+ * The error message to be displayed
+ * @param forward
+ * The JSP page to which the errors would be forwarded
* @return ActionForward
*/
private ActionForward returnErrors(ActionMapping mapping,
Index: lams_tool_sbmt/web/export/exportportfolio.jsp
===================================================================
diff -u -r6c5ffd0ef98d1ed5a7f1d77d25c0b8964defd552 -rf2f9719ac9da5fcffc7f73597545697deb22af88
--- lams_tool_sbmt/web/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision 6c5ffd0ef98d1ed5a7f1d77d25c0b8964defd552)
+++ lams_tool_sbmt/web/export/exportportfolio.jsp (.../exportportfolio.jsp) (revision f2f9719ac9da5fcffc7f73597545697deb22af88)
@@ -28,7 +28,7 @@