Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java =================================================================== diff -u -r87916b2e9c4406342e26149d731a5ab070f4d4e0 -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java (.../FileDetailsDTO.java) (revision 87916b2e9c4406342e26149d731a5ab070f4d4e0) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dto/FileDetailsDTO.java (.../FileDetailsDTO.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -25,6 +25,7 @@ import java.io.Serializable; import java.util.Date; +import org.apache.log4j.Logger; import org.lamsfoundation.lams.tool.sbmt.Learner; import org.lamsfoundation.lams.tool.sbmt.SubmissionDetails; import org.lamsfoundation.lams.tool.sbmt.SubmitFilesReport; @@ -34,13 +35,9 @@ * @author Manpreet Minhas */ public class FileDetailsDTO implements Serializable{ - - /** - * For Serializable - */ - private static final long serialVersionUID = 1L; - - + + private Logger log = Logger.getLogger(FileDetailsDTO.class); + private static final long serialVersionUID = 2964711101016972263L; private Long userID; private Long submissionID; private Long reportID; @@ -58,7 +55,11 @@ public FileDetailsDTO(SubmissionDetails details, SubmitFilesReport report){ - + if(details == null){ + log.warn("SubmissionDetails is null, failed to initial FileDetailDTO"); + return; + } + Learner learner = details.getLearner(); if(learner != null){ this.userID = learner.getUserID(); @@ -84,6 +85,11 @@ } public FileDetailsDTO(SubmissionDetails details){ + if(details == null){ + log.warn("SubmissionDetails is null, failed to initial FileDetailDTO"); + return; + } + this.submissionID = details.getSubmissionID(); this.filePath = details.getFilePath(); this.fileDescription = details.getFileDescription(); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java =================================================================== diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -643,19 +643,18 @@ */ public List getFilesUploadedByUser(Long userID, Long sessionID){ List list = learnerDAO.getSubmissionDetailsForUserBySession(userID,sessionID); - if(list!=null){ - Iterator iterator = list.iterator(); - ArrayList details = new ArrayList(); - while(iterator.hasNext()){ - SubmissionDetails submissionDetails = (SubmissionDetails)iterator.next(); - SubmitFilesReport report = submissionDetails.getReport(); - FileDetailsDTO detailDto = new FileDetailsDTO(submissionDetails,report); - details.add(detailDto); - } + ArrayList details = new ArrayList(); + if(list ==null) return details; - - }else - return null; + + Iterator iterator = list.iterator(); + while(iterator.hasNext()){ + SubmissionDetails submissionDetails = (SubmissionDetails)iterator.next(); + SubmitFilesReport report = submissionDetails.getReport(); + FileDetailsDTO detailDto = new FileDetailsDTO(submissionDetails,report); + details.add(detailDto); + } + return details; } /** * This method save SubmissionDetails list into a map container: key is user id, @@ -701,8 +700,12 @@ */ public List getUsers(Long sessionID){ List users = submissionDetailsDAO.getUsersForSession(sessionID); - Iterator iterator = users.iterator(); List table = new ArrayList(); + + if(users == null) + return table; + + Iterator iterator = users.iterator(); while(iterator.hasNext()){ Long userID = (Long)iterator.next(); User user = userDAO.getUserById(new Integer(userID.intValue())); @@ -721,6 +724,9 @@ } public UserDTO getUserDetails(Long userID){ User user = userDAO.getUserById(new Integer(userID.intValue())); + if(user == null) + return null; + return user.getUserDTO(); } public IVersionedNode downloadFile(Long uuid, Long versionID)throws SubmitFilesException{ Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java =================================================================== diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/util/SbmtConstants.java (.../SbmtConstants.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -22,8 +22,11 @@ public class SbmtConstants { - public static final String AUTHORING_DTO = "authoring"; public static final String TOOLSIGNNATURE = "lasbmt11"; public static final String DEFAULT_TITLE = "Submit Files Title"; + public static final String AUTHORING_DTO = "authoring"; + + public static final String TOOL_SESSION_ID = "toolSessionID"; + public static final String TOOL_CONTENT_ID = "toolContentID"; } Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java =================================================================== diff -u -rc5a014333e76581f2872fd7c2731e493fcf2caee -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java (.../AuthoringAction.java) (revision c5a014333e76581f2872fd7c2731e493fcf2caee) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/AuthoringAction.java (.../AuthoringAction.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -178,7 +178,7 @@ protected ActionForward unspecified(ActionMapping mapping, ActionForm form, HttpServletRequest request, HttpServletResponse response) { - Long contentID = new Long(WebUtil.readLongParam(request,"toolContentID")); + Long contentID = new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_CONTENT_ID)); //get back the upload file list and display them on page submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this @@ -195,7 +195,7 @@ //set back STRUTS component value DynaActionForm authForm = (DynaActionForm) form; - authForm.set("toolContentID",contentID); + authForm.set(SbmtConstants.TOOL_CONTENT_ID,contentID); authForm.set("title",persistContent.getTitle()); authForm.set("lockOnFinished",persistContent.isLockOnFinished()?"1":null); return mapping.getInputForward(); @@ -220,7 +220,7 @@ */ private SubmitFilesContent getContent(ActionForm form) { DynaActionForm authForm = (DynaActionForm) form; - Long contentID = (Long) authForm.get("toolContentID"); + Long contentID = (Long) authForm.get(SbmtConstants.TOOL_CONTENT_ID); String title = (String) authForm.get("title"); String instructions = (String) authForm.get("instructions"); String online_instruction = (String) authForm.get("onlineInstruction"); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/DeleteFileAction.java =================================================================== diff -u -reebdf6c7a06bd126cf6331883dd60e4ca72ac5c9 -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/DeleteFileAction.java (.../DeleteFileAction.java) (revision eebdf6c7a06bd126cf6331883dd60e4ca72ac5c9) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/DeleteFileAction.java (.../DeleteFileAction.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -40,6 +40,7 @@ import org.lamsfoundation.lams.tool.sbmt.dto.AuthoringDTO; import org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService; import org.lamsfoundation.lams.tool.sbmt.service.SubmitFilesServiceProxy; +import org.lamsfoundation.lams.tool.sbmt.util.SbmtConstants; import org.lamsfoundation.lams.util.WebUtil; /** * @@ -71,7 +72,7 @@ * @return */ private ActionForward deleteFile(HttpServletRequest request, HttpServletResponse response, String type) { - Long contentID = new Long(WebUtil.readLongParam(request,"toolContentID")); + Long contentID = new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_CONTENT_ID)); Long versionID = new Long(WebUtil.readLongParam(request,"versionID")); Long uuID = new Long(WebUtil.readLongParam(request,"uuID")); Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java =================================================================== diff -u -r6dc489ffc6bc1ff7b073f5c98ad518aafcd1e5cd -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision 6dc489ffc6bc1ff7b073f5c98ad518aafcd1e5cd) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java (.../LearnerAction.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -29,6 +29,7 @@ import org.lamsfoundation.lams.tool.sbmt.exception.SubmitFilesException; import org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService; import org.lamsfoundation.lams.tool.sbmt.service.SubmitFilesServiceProxy; +import org.lamsfoundation.lams.tool.sbmt.util.SbmtConstants; /** * @author Manpreet Minhas @@ -58,7 +59,7 @@ DynaActionForm authForm= (DynaActionForm)form; - Long sessionID =(Long) authForm.get("toolSessionID"); + Long sessionID =(Long) authForm.get(SbmtConstants.TOOL_SESSION_ID); Long userID = (Long)authForm.get("userID"); //get submission information from content table.E.g., title, instruction @@ -93,7 +94,7 @@ DynaActionForm authForm= (DynaActionForm)form; if(!isTokenValid(request,true)){ - Long sessionID =(Long) authForm.get("toolSessionID"); + Long sessionID =(Long) authForm.get(SbmtConstants.TOOL_SESSION_ID); Long userID = (Long)authForm.get("userID"); submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); List filesUploaded = submitFilesService.getFilesUploadedByUser(userID,sessionID); @@ -106,7 +107,7 @@ return returnErrors(mapping,request,"submit.upload.twice","upload"); } - Long sessionID =(Long) authForm.get("toolSessionID"); + Long sessionID =(Long) authForm.get(SbmtConstants.TOOL_SESSION_ID); Long userID = (Long)authForm.get("userID"); FormFile uploadedFile= (FormFile) authForm.get("filePath"); String fileDescription = (String) authForm.get("fileDescription"); @@ -142,7 +143,7 @@ HttpServletRequest request, HttpServletResponse response){ DynaActionForm authForm= (DynaActionForm)form; - Long sessionID =(Long) authForm.get("toolSessionID"); + Long sessionID =(Long) authForm.get(SbmtConstants.TOOL_SESSION_ID); Long userID = (Long)authForm.get("userID"); submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this.getServlet().getServletContext()); submitFilesService.finishSubmission(sessionID,userID); @@ -180,7 +181,9 @@ * @param content * @param filesUploaded */ - private void setLearnerDTO(HttpServletRequest request,Long sessionID,Long userID, Learner learner, SubmitFilesContent content, List filesUploaded) { + private void setLearnerDTO(HttpServletRequest request, Long sessionID, + Long userID, Learner learner, SubmitFilesContent content, + List filesUploaded) { LearnerDetailsDTO dto = new LearnerDetailsDTO(); //don't use learner data, becuase these 2 values come from web page. Learner maybe empty. Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java =================================================================== diff -u -r12363516e3d2a82823dca22cf7cafa91a4c8f9a6 -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java (.../MonitoringAction.java) (revision 12363516e3d2a82823dca22cf7cafa91a4c8f9a6) +++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/MonitoringAction.java (.../MonitoringAction.java) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -50,6 +50,7 @@ import org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService; import org.lamsfoundation.lams.tool.sbmt.service.SubmitFilesServiceProxy; import org.lamsfoundation.lams.tool.sbmt.util.SbmtConstants; +import org.lamsfoundation.lams.usermanagement.dto.UserDTO; import org.lamsfoundation.lams.util.WebUtil; @@ -92,10 +93,10 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); submitFilesService = getSubmitFilesService(); List userList = submitFilesService.getUsers(sessionID); - request.setAttribute("toolSessionID",sessionID); + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); request.setAttribute("userList",userList); return mapping.findForward("userlist"); } @@ -111,18 +112,20 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); Long userID = new Long(WebUtil.readLongParam(request,"userID")); submitFilesService = getSubmitFilesService(); //return FileDetailsDTO list according to the given userID and sessionID - List files = submitFilesService.getFilesUploadedByUser(userID,sessionID); - request.setAttribute("toolSessionID",sessionID); - request.setAttribute("user",submitFilesService.getUserDetails(userID)); + List files = submitFilesService.getFilesUploadedByUser(userID,sessionID); + UserDTO userDto = submitFilesService.getUserDetails(userID); + + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); + request.setAttribute("user",userDto); request.setAttribute("userReport",files); return mapping.findForward("userMarks"); } /** - * Display empty update mark page. + * Display update mark initial page. * @param mapping * @param form * @param request @@ -133,17 +136,16 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); Long userID = new Long(WebUtil.readLongParam(request,"userID")); Long detailID = new Long(WebUtil.readLongParam(request,"detailID")); submitFilesService = getSubmitFilesService(); - request.setAttribute("toolSessionID",sessionID); - request.setAttribute("user", - submitFilesService.getUserDetails(userID)); - request.setAttribute("fileDetails", - submitFilesService.getFileDetails(detailID)); + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); + request.setAttribute("user",submitFilesService.getUserDetails(userID)); + request.setAttribute("fileDetails",submitFilesService.getFileDetails(detailID)); return mapping.findForward("updateMarks"); } @@ -176,7 +178,7 @@ if(!StringUtils.isEmpty(reportIDStr)) reportID = Long.valueOf(reportIDStr); - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); Long userID = new Long(WebUtil.readLongParam(request,"userID")); //get service then update report table @@ -185,7 +187,7 @@ submitFilesService.updateMarks(reportID,marks,comments); List report = submitFilesService.getFilesUploadedByUser(userID,sessionID); request.setAttribute("userReport",report); - request.setAttribute("toolSessionID",sessionID); + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); request.setAttribute("userID",userID); return mapping.findForward("userMarks"); } @@ -194,11 +196,11 @@ HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); submitFilesService = getSubmitFilesService(); //return FileDetailsDTO list according to the given sessionID Map userFilesMap = submitFilesService.getFilesUploadedBySession(sessionID); - request.setAttribute("toolSessionID",sessionID); + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); // request.setAttribute("user", // submitFilesService.getUserDetails(userID)); request.setAttribute("report",userFilesMap); @@ -212,7 +214,7 @@ //get service then update report table submitFilesService = getSubmitFilesService(); - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); submitFilesService.releaseMarksForSession(sessionID); //todo: need display some success info return mapping.findForward("userMarks"); @@ -222,7 +224,7 @@ HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); submitFilesService = getSubmitFilesService(); //return FileDetailsDTO list according to the given sessionID Map userFilesMap = submitFilesService.getFilesUploadedBySession(sessionID); @@ -305,7 +307,7 @@ if(!errors.isEmpty()){ saveErrors(request,errors); - request.setAttribute("toolSessionID",sessionID); + request.setAttribute(SbmtConstants.TOOL_SESSION_ID,sessionID); return mapping.findForward("userlist"); } @@ -324,15 +326,15 @@ HttpServletRequest request, HttpServletResponse response){ - Long contentID = new Long(WebUtil.readLongParam(request,"toolContentID")); + Long contentID = new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_CONTENT_ID)); //get back the upload file list and display them on page submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this .getServlet().getServletContext()); SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); //if this content does not exist, then reset the contentID to current value to keep it on HTML page. - persistContent.setContentID(contentID); + persistContent.setContentID(contentID); AuthoringDTO authorDto = new AuthoringDTO(persistContent); request.setAttribute(SbmtConstants.AUTHORING_DTO,authorDto); @@ -383,7 +385,7 @@ ActionForm form, HttpServletRequest request, HttpServletResponse response){ - Long contentID = new Long(WebUtil.readLongParam(request,"toolContentID")); + Long contentID = new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_CONTENT_ID)); String title = WebUtil.readStrParam(request,"title"); String instructions = WebUtil.readStrParam(request,"instructions"); @@ -413,7 +415,7 @@ HttpServletRequest request, HttpServletResponse response){ - Long sessionID =new Long(WebUtil.readLongParam(request,"toolSessionID")); + Long sessionID =new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_SESSION_ID)); submitFilesService = getSubmitFilesService(); //return FileDetailsDTO list according to the given sessionID Map userFilesMap = submitFilesService.getFilesUploadedBySession(sessionID); @@ -444,16 +446,14 @@ * @param request */ private void getAuthoringActivity(ActionForm form, HttpServletRequest request) { - Long contentID = new Long(WebUtil.readLongParam(request,"toolContentID")); + Long contentID = new Long(WebUtil.readLongParam(request,SbmtConstants.TOOL_CONTENT_ID)); //get back the upload file list and display them on page submitFilesService = SubmitFilesServiceProxy.getSubmitFilesService(this .getServlet().getServletContext()); SubmitFilesContent persistContent = submitFilesService.getSubmitFilesContent(contentID); //if this content does not exist, then reset the contentID to current value to keep it on HTML page. - if(persistContent == null) - persistContent = new SubmitFilesContent(); persistContent.setContentID(contentID); AuthoringDTO authorDto = new AuthoringDTO(persistContent); request.setAttribute(SbmtConstants.AUTHORING_DTO,authorDto); Index: lams_tool_sbmt/web/monitoring/updatemarks.jsp =================================================================== diff -u -rd4ea565b3e9dcc2b1ca6039c250ca18b1978784d -r400b01498f92003243dfe91f424d0f4e44263874 --- lams_tool_sbmt/web/monitoring/updatemarks.jsp (.../updatemarks.jsp) (revision d4ea565b3e9dcc2b1ca6039c250ca18b1978784d) +++ lams_tool_sbmt/web/monitoring/updatemarks.jsp (.../updatemarks.jsp) (revision 400b01498f92003243dfe91f424d0f4e44263874) @@ -29,9 +29,9 @@