Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java,v diff -u -r1.22 -r1.23 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java 6 Dec 2005 00:32:38 -0000 1.22 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java 9 Dec 2005 12:05:30 -0000 1.23 @@ -34,7 +34,6 @@ import org.lamsfoundation.lams.contentrepository.ItemExistsException; import org.lamsfoundation.lams.contentrepository.ItemNotFoundException; import org.lamsfoundation.lams.contentrepository.LoginException; -import org.lamsfoundation.lams.contentrepository.NodeKey; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.contentrepository.WorkspaceNotFoundException; import org.lamsfoundation.lams.contentrepository.service.IRepositoryService; @@ -1355,13 +1354,11 @@ } - /**FIX THIS ONE!!!! - * String leaveToolSession(Long toolSessionId,User learner) throws DataMissingException, ToolException + /** + * Complete the tool session. * - * TO BE TESTED - * ToolSessionManager CONTRACT - * gets called only in the Learner mode. - * Call controller service to complete the qa session + * Part of the ToolSessionManager contract. Called by controller service to force complete the qa session, or + * by the web front end to complete the qa session * */ public String leaveToolSession(Long toolSessionId,Long learnerId) throws DataMissingException, ToolException @@ -1381,6 +1378,12 @@ throw new DataMissingException("learnerId is missing"); } + QaSession qaSession = retrieveQaSessionOrNullById(toolSessionId.longValue()); + qaSession.setSession_end_date(new Date(System.currentTimeMillis())); + qaSession.setSession_status(COMPLETED); + updateQaSession(qaSession); + logger.debug("tool session has been marked COMPLETE: " + qaSession); + try { String nextUrl = learnerService.completeToolSession(toolSessionId,learnerId); Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java =================================================================== RCS file: /usr/local/cvsroot/lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/Attic/QAction.java,v diff -u -r1.17 -r1.18 --- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java 6 Dec 2005 00:32:38 -0000 1.17 +++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/web/QAction.java 9 Dec 2005 12:05:30 -0000 1.18 @@ -23,7 +23,6 @@ import java.io.FileNotFoundException; import java.io.IOException; import java.util.ArrayList; -import java.util.Date; import java.util.Iterator; import java.util.List; import java.util.Map; @@ -42,19 +41,16 @@ import org.apache.struts.action.ActionMessages; import org.apache.struts.actions.DispatchAction; import org.apache.struts.upload.FormFile; -import org.lamsfoundation.lams.contentrepository.InvalidParameterException; import org.lamsfoundation.lams.contentrepository.NodeKey; import org.lamsfoundation.lams.contentrepository.RepositoryCheckedException; import org.lamsfoundation.lams.contentrepository.client.IToolContentHandler; +import org.lamsfoundation.lams.tool.exception.ToolException; import org.lamsfoundation.lams.tool.qa.QaAppConstants; import org.lamsfoundation.lams.tool.qa.QaContent; -import org.lamsfoundation.lams.tool.qa.QaSession; import org.lamsfoundation.lams.tool.qa.QaUploadedFile; import org.lamsfoundation.lams.tool.qa.QaUtils; import org.lamsfoundation.lams.tool.qa.service.IQaService; -import org.lamsfoundation.lams.tool.qa.service.QaServiceProxy; import org.lamsfoundation.lams.tool.qa.util.QaToolContentHandler; -import org.lamsfoundation.lams.usermanagement.User; import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; import org.lamsfoundation.lams.web.session.SessionManager; @@ -507,12 +503,13 @@ * the user is to go next. * @throws IOException * @throws ServletException + * @throws ToolException */ public ActionForward displayQ(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) throws IOException, - ServletException + ServletException, ToolException { /* * if the content is not ready yet, don't even proceed. @@ -619,27 +616,11 @@ "leaveToolSession() with toolSessionId: " + toolSessionId + " and user: " + user); IQaService qaService =QaUtils.getToolService(request); - QaSession qaSession=qaService.retrieveQaSessionOrNullById(toolSessionId.longValue()); - qaSession.setSession_end_date(new Date(System.currentTimeMillis())); - /* - * ?? mark the tool session as COMPLETE ?? - */ + String nextActivityUrl = qaService.leaveToolSession(toolSessionId, new Long(user.getUserID().longValue())); + response.sendRedirect(nextActivityUrl); + return null; + - /* - * change the logic about completion status - */ - - /* qaSession.setSession_status(COMPLETED); - qaService.updateQaSession(qaSession); - logger.debug("tool session has been marked COMPLETE: " + qaSession); - */ - - /* - ILearnerService learnerService =LearnerServiceProxy.getLearnerService(getServlet().getServletContext()); - logger.debug(logger + " " + this.getClass().getName() + "learnerService: " + learnerService); - learnerService.completeToolSession(toolSessionId, user); - logger.debug(logger + " " + this.getClass().getName() + "completeToolSession on learnerService has finished: "); - */ } /* Also cleanup session attributes */