Index: lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/Attic/SubmitFilesContent.hbm.xml,v
diff -u -r1.9 -r1.10
--- lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 5 Sep 2006 04:05:23 -0000 1.9
+++ lams_tool_sbmt/conf/hibernate/mappings/org/lamsfoundation/lams/tool/sbmt/SubmitFilesContent.hbm.xml 5 Sep 2006 04:57:28 -0000 1.10
@@ -43,25 +43,6 @@
column="instruction"
/>
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
-
getBySessionAndLearner(Long sessionID, Long userID);
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java,v
diff -u -r1.5 -r1.6
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java 6 Apr 2006 06:41:33 -0000 1.5
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/ISubmitFilesSessionDAO.java 5 Sep 2006 04:57:28 -0000 1.6
@@ -26,6 +26,7 @@
package org.lamsfoundation.lams.tool.sbmt.dao;
import java.util.List;
+import java.util.Set;
import org.lamsfoundation.lams.dao.IBaseDAO;
import org.lamsfoundation.lams.tool.sbmt.SubmitFilesSession;
@@ -49,5 +50,5 @@
*/
public void createSession(SubmitFilesSession submitSession);
- public List getSubmitFilesSessionByContentID(Long contentID);
+ public List getSubmitFilesSessionByContentID(Long contentID);
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmissionDetailsDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmissionDetailsDAO.java,v
diff -u -r1.14 -r1.15
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmissionDetailsDAO.java 5 Sep 2006 04:05:22 -0000 1.14
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmissionDetailsDAO.java 5 Sep 2006 04:57:28 -0000 1.15
@@ -38,9 +38,9 @@
public class SubmissionDetailsDAO extends BaseDAO implements
ISubmissionDetailsDAO {
- private static final String FIND_BY_SESSION = "from " +
- SubmissionDetails.class.getName() +
- " where session_id=?";
+ private static final String FIND_BY_SESSION = "from " + SubmissionDetails.class.getName() + " as d where d.submitFileSession.sessionID=? ";
+ private static final String FIND_BY_SESSION_LEARNER = "from " + SubmissionDetails.class.getName()
+ + " as d where d.submitFileSession.sessionID=? and d.learner.userID=?";
/**
* (non-Javadoc)
@@ -71,4 +71,10 @@
}
return null;
}
+
+ public List getBySessionAndLearner(Long sessionID, Long userID){
+
+ return this.getHibernateTemplate().find(FIND_BY_SESSION_LEARNER, new Object[]{sessionID,userID});
+
+ }
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java,v
diff -u -r1.7 -r1.8
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java 5 Sep 2006 04:05:22 -0000 1.7
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/dao/hibernate/SubmitFilesSessionDAO.java 5 Sep 2006 04:57:28 -0000 1.8
@@ -38,8 +38,8 @@
ISubmitFilesSessionDAO {
private static final String FIND_LEARNER_BY_CONTENT_ID =
- " from SubmitFilesSession session " +
- " where session.content.contentID = :contentID";
+ " from " + SubmitFilesSession.class.getName() +
+ " as session where session.content.contentID = :contentID";
/**
@@ -57,7 +57,7 @@
this.getHibernateTemplate().save(submitSession);
}
- public List getSubmitFilesSessionByContentID(Long contentID){
+ public List getSubmitFilesSessionByContentID(Long contentID){
if ( contentID != null ) {
return this.getSession().createQuery(FIND_LEARNER_BY_CONTENT_ID)
.setLong("contentID", contentID.longValue())
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java,v
diff -u -r1.24 -r1.25
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java 5 Sep 2006 04:05:22 -0000 1.24
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/ISubmitFilesService.java 5 Sep 2006 04:57:29 -0000 1.25
@@ -26,6 +26,7 @@
package org.lamsfoundation.lams.tool.sbmt.service;
import java.util.List;
+import java.util.Set;
import java.util.SortedMap;
import org.apache.struts.upload.FormFile;
@@ -200,6 +201,8 @@
* @param uid
*/
public void deleteInstructionFile(Long uid);
+
+ public List getSessionsByContentID(Long toolContentID);
//*************************************************************
// get SubmitUser methods
//*************************************************************
@@ -239,4 +242,5 @@
+
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java,v
diff -u -r1.58 -r1.59
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 5 Sep 2006 04:05:22 -0000 1.58
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java 5 Sep 2006 04:57:30 -0000 1.59
@@ -162,8 +162,6 @@
fromContent = getDefaultSubmit();
}
SubmitFilesContent toContent = SubmitFilesContent.newInstance(fromContent,toContentId,sbmtToolContentHandler);
- //clear ToolSession
- toContent.setToolSession(new HashSet());
submitFilesContentDAO.saveOrUpdate(toContent);
}
@@ -242,7 +240,7 @@
SubmitFilesContent submitFilesContent = submitFilesContentDAO.getContentByID(toolContentId);
if (submitFilesContent != null) {
//if session data exist and removeSessionData=false, throw an exception
- Set submissionData = submitFilesContent.getToolSession();
+ List submissionData = submitFilesSessionDAO.getSubmitFilesSessionByContentID(toolContentId);
if ( !(submissionData==null || submissionData.isEmpty()) && ! removeSessionData) {
throw new SessionDataExistsException("Delete failed: There is session data that belongs to this tool content id");
} else if ( submissionData != null ){
@@ -256,6 +254,9 @@
}
}
+ public List getSessionsByContentID(Long toolContentID){
+ return submitFilesSessionDAO.getSubmitFilesSessionByContentID(toolContentID);
+ }
/**
* Export the XML fragment for the tool's content, along with any files needed
* for the content.
@@ -269,7 +270,6 @@
//set toolContentHandler as null to avoid duplicate file node in repository.
toolContentObj = SubmitFilesContent.newInstance(toolContentObj,toolContentId,null);
- toolContentObj.setToolSession(null);
toolContentObj.setToolContentHandler(null);
try {
exportContentService.exportToolContent( toolContentId, toolContentObj,sbmtToolContentHandler, toPath);
@@ -624,15 +624,12 @@
* @see org.lamsfoundation.lams.tool.sbmt.service.ISubmitFilesService#getFilesUploadedByUserForContent(java.lang.Long, java.lang.Long)
*/
public List getFilesUploadedByUser(Integer userID, Long sessionID){
- SubmitUser learner = getSessionUser(sessionID, userID);
- Set list = learner.getSubmissionDetails();
+ List list = submissionDetailsDAO.getBySessionAndLearner(sessionID, new Long(userID.intValue()));
SortedSet details = new TreeSet(this.new FileDtoComparator());
if(list ==null)
return new ArrayList(details);
- Iterator iterator = list.iterator();
- while(iterator.hasNext()){
- SubmissionDetails submissionDetails = (SubmissionDetails)iterator.next();
+ for(SubmissionDetails submissionDetails : list){
FileDetailsDTO detailDto = new FileDetailsDTO(submissionDetails);
details.add(detailDto);
}
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ExportServlet.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ExportServlet.java,v
diff -u -r1.9 -r1.10
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ExportServlet.java 5 Sep 2006 04:05:23 -0000 1.9
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/ExportServlet.java 5 Sep 2006 04:57:28 -0000 1.10
@@ -293,13 +293,13 @@
throw new SubmitFilesException(error);
}
// return FileDetailsDTO list according to the given sessionID
- Set sessionList = content.getToolSession();
- Iterator iter = sessionList.iterator();
Map report = new TreeMap(this.new StringComparator());
Map allFileMap = new TreeMap(new LastNameAlphabeticComparator());
- while (iter.hasNext()) {
+
+ //iterate all session in this content
+ List sessionList = sbmtService.getSessionsByContentID(toolContentID);
+ for (SubmitFilesSession session : sessionList) {
SortedMap userFilesMap = new TreeMap(new LastNameAlphabeticComparator());
- SubmitFilesSession session = (SubmitFilesSession) iter.next();
userFilesMap.putAll(sbmtService.getFilesUploadedBySession(session
.getSessionID()));
allFileMap.putAll(userFilesMap);
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java,v
diff -u -r1.32 -r1.33
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java 5 Sep 2006 04:05:23 -0000 1.32
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/web/LearnerAction.java 5 Sep 2006 04:57:28 -0000 1.33
@@ -192,7 +192,8 @@
Long sessionID = (Long) sessionMap.get(AttributeNames.PARAM_TOOL_SESSION_ID);
if(!isTokenValid(request,true) || validateUploadForm(learnerForm,request)){
- resetToken(request);
+ if(!isTokenValid(request,true))
+ resetToken(request);
//get session from shared session.
HttpSession ss = SessionManager.getSession();
Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/Attic/TestModel.java,v
diff -u -r1.7 -r1.8
--- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java 7 Apr 2006 00:47:24 -0000 1.7
+++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestModel.java 5 Sep 2006 04:57:30 -0000 1.8
@@ -156,22 +156,14 @@
assertEquals(contentC.getTitle(),titA);
assertEquals(contentC.isDefineLater(),deA);
assertEquals(contentC.isRunOffline(),offA);
- //test SubmitFilesSession l Set
- Iterator iter = contentC.getToolSession().iterator();
- SubmitFilesSession session = new SubmitFilesSession();
- fillSessionA(session);
- assertEquals(iter.next(),session);
+
//do more test to ensure origial object keep desired values "B"
assertEquals(content.getInstruction(),insB);
assertEquals(content.getTitle(),titB);
assertEquals(content.isDefineLater(),deB);
assertEquals(content.isRunOffline(),offB);
//test SubmitFilesSession l Set
- iter = content.getToolSession().iterator();
- session = new SubmitFilesSession();
- fillSessionB(session);
- assertEquals(iter.next(),session);
}
//================Fill init data for model object==========
@@ -201,7 +193,6 @@
fillSessionA(session);
Set sessions = new HashSet();
sessions.add(session);
- content.setToolSession(sessions);
}
private void fillContentB(SubmitFilesContent content){
content.setDefineLater(deB);
@@ -214,7 +205,6 @@
fillSessionB(session);
Set sessions = new HashSet();
sessions.add(session);
- content.setToolSession(sessions);
}
private void fillSessionA(SubmitFilesSession session){
session.setSessionID(sessA);
Index: lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesContentDAO.java
===================================================================
RCS file: /usr/local/cvsroot/lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/Attic/TestSubmitFilesContentDAO.java,v
diff -u -r1.4 -r1.5
--- lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesContentDAO.java 6 Apr 2006 06:41:33 -0000 1.4
+++ lams_tool_sbmt/test/java/org/lamsfoundation/lams/tool/sbmt/dao/TestSubmitFilesContentDAO.java 5 Sep 2006 04:57:30 -0000 1.5
@@ -45,17 +45,8 @@
submitFilesContentDAO = (ISubmitFilesContentDAO)context.getBean("submitFilesContentDAO");
}
- public void testAddSubmitFilesContent() throws Exception {
- long newId = getMaxContentId() + 1;
- String title = "Trial Content";
- String instructions = "Trial Instructions";
- submitFilesContent = new SubmitFilesContent(new Long(newId),title,instructions);
- submitFilesContentDAO.insert(submitFilesContent);
- Long contentId = submitFilesContent.getContentID();
- assertNotNull(contentId);
- assertEquals(contentId.longValue(), newId);
- }
+
public void testAddGetContentByID() throws Exception {
submitFilesContent = submitFilesContentDAO.getContentByID(TEST_CONTENT_ID);
assertEquals(submitFilesContent.getTitle(), TEST_CONTENT_TITLE);