Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -rdefc0de4bbc95b51da70e0ae1653b57d0eaddb87 -r24ca84b9e61b98c068eaa369cb194a35e5511162
Binary files differ
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml
===================================================================
diff -u -rf6f0e93d2134d055aadd9414aee1b588f0669c19 -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml (.../forumApplicationContext.xml) (revision f6f0e93d2134d055aadd9414aee1b588f0669c19)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/forumApplicationContext.xml (.../forumApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -141,6 +141,8 @@
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
+ PROPAGATION_REQUIRED,-java.lang.Exception
Index: lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java
===================================================================
diff -u -r9c4dff1f72cd209b32899650f177d8b2f9acd7f7 -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 9c4dff1f72cd209b32899650f177d8b2f9acd7f7)
+++ lams_tool_forum/src/java/org/lamsfoundation/lams/tool/forum/service/ForumService.java (.../ForumService.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -820,7 +820,7 @@
/**
* Import the data for a 1.0.2 Forum
*/
- public void import102ToolContent(Long toolContentId, Integer newUserId, Hashtable importValues)
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
{
Date now = new Date();
Forum toolContentObj = new Forum();
@@ -866,13 +866,13 @@
}
- ForumUser forumUser = null;
- if ( newUserId != null ) {
- forumUser = new ForumUser();
- forumUser.setUserId(new Long(newUserId.longValue()));
- createUser(forumUser);
- toolContentObj.setCreatedBy(forumUser);
- }
+ ForumUser forumUser = new ForumUser();
+ forumUser.setUserId(new Long(user.getUserID().longValue()));
+ forumUser.setFirstName(user.getFirstName());
+ forumUser.setLastName(user.getLastName());
+ forumUser.setLoginName(user.getLogin());
+ createUser(forumUser);
+ toolContentObj.setCreatedBy(forumUser);
// leave as empty, no need to set them to anything.
//toolContentObj.setAttachments(attachments);
@@ -890,6 +890,7 @@
Message message = new Message();
message.setIsAuthored(true);
message.setCreated(now);
+ message.setCreatedBy(forumUser);
message.setUpdated(now);
message.setLastReplyDate(now);
message.setSubject((String)messageMap.get(ToolContentImport102Manager.CONTENT_TITLE));
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml
===================================================================
diff -u -re280cd832df020c33df6730fbee453add9e6caee -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml (.../mcApplicationContext.xml) (revision e280cd832df020c33df6730fbee453add9e6caee)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/mcApplicationContext.xml (.../mcApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -101,6 +101,10 @@
PROPAGATION_REQUIRED,-McApplicationException
PROPAGATION_REQUIRED,-McApplicationException
PROPAGATION_REQUIRED,-McApplicationException
+ PROPAGATION_REQUIRED,-McApplicationException
+ PROPAGATION_REQUIRED,-McApplicationException
+ PROPAGATION_REQUIRED,-McApplicationException
+ PROPAGATION_REQUIRED,-McApplicationException
Index: lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java
===================================================================
diff -u -r3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 3ec9e4aa0ad9319ce9be7f6fa84d9f35165f698d)
+++ lams_tool_lamc/src/java/org/lamsfoundation/lams/tool/mc/service/McServicePOJO.java (.../McServicePOJO.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -23,10 +23,12 @@
package org.lamsfoundation.lams.tool.mc.service;
import java.io.InputStream;
import java.util.Date;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import java.util.Vector;
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.contentrepository.AccessDeniedException;
@@ -50,6 +52,7 @@
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.tool.IToolVO;
+import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
@@ -74,7 +77,10 @@
import org.lamsfoundation.lams.tool.mc.pojos.McUsrAttempt;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessor;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException;
import org.springframework.dao.DataAccessException;
/**
@@ -87,7 +93,7 @@
*
*/
public class McServicePOJO implements
- IMcService, ToolContentManager, ToolSessionManager, McAppConstants
+ IMcService, ToolContentManager, ToolSessionManager, ToolContentImport102Manager, McAppConstants
{
static Logger logger = Logger.getLogger(McServicePOJO.class.getName());
@@ -2601,4 +2607,138 @@
this.exportContentService = exportContentService;
}
+ /* ===============Methods implemented from ToolContentImport102Manager =============== */
+
+
+ /**
+ * Import the data for a 1.0.2 Chat
+ */
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
+ {
+ Date now = new Date();
+ McContent toolContentObj = new McContent();
+ toolContentObj.setContentInUse(Boolean.FALSE);
+ toolContentObj.setCreatedBy(user.getUserID().longValue());
+ toolContentObj.setCreationDate(now);
+ toolContentObj.setDefineLater(Boolean.FALSE);
+ toolContentObj.setInstructions((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY));
+ toolContentObj.setOfflineInstructions(null);
+ toolContentObj.setOnlineInstructions(null);
+ // TODO add reflection
+ //toolContentObj.setReflectInstructions(null);
+ //toolContentObj.setReflectOnActivity(Boolean.FALSE);
+ toolContentObj.setRunOffline(Boolean.FALSE);
+ toolContentObj.setTitle((String)importValues.get(ToolContentImport102Manager.CONTENT_TITLE));
+
+ toolContentObj.setContent(null);
+ toolContentObj.setUpdateDate(now);
+ toolContentObj.setMcContentId(toolContentId);
+ toolContentObj.setQuestionsSequenced(false);
+ toolContentObj.setUsernameVisible(false);
+ // I can't find a use for these.
+ toolContentObj.setUsernameVisible(false);
+ toolContentObj.setSynchInMonitor(false);
+ toolContentObj.setShowReport(false);
+ // not supported in 1.0.2 so set to blank. Fields are mandatory in the database
+ toolContentObj.setReportTitle("");
+ toolContentObj.setMonitoringReportTitle("");
+ toolContentObj.setEndLearningMessage("");
+
+
+ try {
+ Boolean bool = WDDXProcessor.convertToBoolean(importValues, ToolContentImport102Manager.CONTENT_Q_ALLOW_REDO);
+ toolContentObj.setRetries(bool!=null?bool:false);
+
+ bool = WDDXProcessor.convertToBoolean(importValues, ToolContentImport102Manager.CONTENT_Q_FEEDBACK);
+ toolContentObj.setShowFeedback(bool!=null?bool:false);
+
+ Integer minPassMark = WDDXProcessor.convertToInteger(importValues, ToolContentImport102Manager.CONTENT_Q_MIN_PASSMARK);
+ toolContentObj.setPassMark(minPassMark != null ? minPassMark : new Integer(0));
+
+ // leave as empty, no need to set them to anything.
+ //setMcUploadedFiles(Set mcSessions);
+ //setMcSessions(Set mcSessions);
+
+ mcContentDAO.saveMcContent(toolContentObj);
+
+ // set up questions
+ Vector questions = (Vector) importValues.get(CONTENT_Q_QUESTION_INFO);
+ if ( questions != null ) {
+
+ // work out what weights to give questions. 1.0.2 didn't have weights so try to make
+ // them all equal. But should add up 100% so may have to fudge the first one.
+ int numQuestions = questions.size();
+ int standardPercentage = 100/numQuestions;
+ int firstPercentage = numQuestions > 1 ? 100 - (numQuestions - 1)* standardPercentage : 100;
+ boolean isFirst = true;
+
+ Iterator iter = questions.iterator();
+ while (iter.hasNext()) {
+ Hashtable questionMap = (Hashtable) iter.next();
+ create102Question(questionMap, isFirst ? firstPercentage : standardPercentage, toolContentObj );
+ isFirst = false;
+ }
+
+ }
+
+ } catch (WDDXProcessorConversionException e) {
+ logger.error("Unable to content for activity "+toolContentObj.getTitle()+"properly due to a WDDXProcessorConversionException.",e);
+ throw new ToolException("Invalid import data format for activity "+toolContentObj.getTitle()+"- WDDX caused an exception. Some data from the design will have been lost. See log for more details.");
+ }
+
+ mcContentDAO.saveMcContent(toolContentObj);
+ }
+
+
+ private void create102Question( Hashtable questionMap, Integer weight, McContent toolContentObj) throws WDDXProcessorConversionException {
+ McQueContent question = new McQueContent();
+ question.setDisplayOrder( WDDXProcessor.convertToInteger(questionMap, ToolContentImport102Manager.CONTENT_Q_ORDER) );
+ // only one feedback field in 1.0.2, so use it for both
+ question.setFeedbackCorrect((String)questionMap.get(CONTENT_Q_FEEDBACK));
+ question.setFeedbackIncorrect((String)questionMap.get(CONTENT_Q_FEEDBACK));
+ question.setQuestion((String)questionMap.get(CONTENT_Q_QUESTION));
+ question.setWeight( weight );
+
+ String correctAnswer = (String)questionMap.get(CONTENT_Q_ANSWER);
+
+ Vector candidates = (Vector)questionMap.get(CONTENT_Q_CANDIDATES);
+ if ( candidates != null ) {
+ Iterator candIterator = candidates.iterator();
+ while (candIterator.hasNext()) {
+ Hashtable candidate = (Hashtable) candIterator.next();
+ String optionText = (String)candidate.get(CONTENT_Q_ANSWER);
+ // 1.0.2 has a display order but 2.0 doesn't ToolContentImport102Manager.CONTENT_Q_ORDER
+ McOptsContent options = new McOptsContent();
+ options.setCorrectOption(correctAnswer != null && correctAnswer.equals(optionText));
+ options.setMcQueOptionText(optionText);
+ options.setMcQueContent(question);
+ question.getMcOptionsContents().add(options);
+ }
+ }
+
+ toolContentObj.getMcQueContents().add(question);
+ question.setMcContent(toolContentObj);
+ question.setMcContentId(toolContentObj.getUid());
+ }
+
+ /** Set the description, throws away the title value as this is not supported in 2.0 */
+ public void setReflectiveData(Long toolContentId, String title, String description)
+ throws ToolException, DataMissingException {
+
+ McContent toolContentObj = null;
+ if ( toolContentId != null ) {
+ toolContentObj=retrieveMc(toolContentId);
+ }
+ if ( toolContentObj == null ) {
+ throw new DataMissingException("Unable to set reflective data titled "+title
+ +" on activity toolContentId "+toolContentId
+ +" as the tool content does not exist.");
+ }
+
+ // TODO add reflection
+ // qaContent.setReflectOnActivity(Boolean.TRUE);
+ // qaContent.setReflectInstructions(description);
+ }
+
+ //=========================================================================================
}
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml
===================================================================
diff -u -rd4c4147328837e92edb143f732923075f8ff34be -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision d4c4147328837e92edb143f732923075f8ff34be)
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/qaApplicationContext.xml (.../qaApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -94,6 +94,10 @@
PROPAGATION_REQUIRED,-QaApplicationException
PROPAGATION_REQUIRED,-QaApplicationException
+ PROPAGATION_REQUIRED,-QaApplicationException
+ PROPAGATION_REQUIRED,-QaApplicationException
+ PROPAGATION_REQUIRED,-QaApplicationException
+ PROPAGATION_REQUIRED,-QaApplicationException
Index: lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java
===================================================================
diff -u -r0fb4d41712e31bd525abb02f100373875b1c7fc6 -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision 0fb4d41712e31bd525abb02f100373875b1c7fc6)
+++ lams_tool_laqa/src/java/org/lamsfoundation/lams/tool/qa/service/QaServicePOJO.java (.../QaServicePOJO.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -24,6 +24,7 @@
package org.lamsfoundation.lams.tool.qa.service;
import java.io.InputStream;
import java.util.Date;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
@@ -49,6 +50,7 @@
import org.lamsfoundation.lams.learningdesign.service.IExportToolContentService;
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.tool.IToolVO;
+import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
@@ -72,8 +74,11 @@
import org.lamsfoundation.lams.tool.qa.util.QAConstants;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.audit.IAuditService;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessor;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException;
import org.springframework.dao.DataAccessException;
@@ -98,7 +103,8 @@
*/
public class QaServicePOJO
- implements IQaService, ToolContentManager, ToolSessionManager, QaAppConstants
+ implements IQaService, ToolContentManager, ToolSessionManager,
+ ToolContentImport102Manager, QaAppConstants
{
static Logger logger = Logger.getLogger(QaServicePOJO.class.getName());
@@ -2041,5 +2047,80 @@
this.exportContentService = exportContentService;
}
+ /* ===============Methods implemented from ToolContentImport102Manager =============== */
+
+ /**
+ * Import the data for a 1.0.2 Chat
+ */
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
+ {
+
+
+ Date now = new Date();
+ QaContent toolContentObj = new QaContent();
+ toolContentObj.setContentLocked(Boolean.FALSE);
+ toolContentObj.setCreatedBy(user.getUserID().longValue());
+ toolContentObj.setCreationDate(now);
+ toolContentObj.setDefineLater(Boolean.FALSE);
+ toolContentObj.setInstructions(null);
+ toolContentObj.setOfflineInstructions(null);
+ toolContentObj.setOnlineInstructions(null);
+ // TODO add reflection
+ //toolContentObj.setReflectInstructions(null);
+ //toolContentObj.setReflectOnActivity(Boolean.FALSE);
+ toolContentObj.setRunOffline(Boolean.FALSE);
+ toolContentObj.setTitle((String)importValues.get(ToolContentImport102Manager.CONTENT_TITLE));
+ toolContentObj.setQaContentId(toolContentId);
+ toolContentObj.setUpdateDate(now);
+ toolContentObj.setQuestionsSequenced(Boolean.FALSE); // there is only 1 question
+ toolContentObj.setContent(null);
+ toolContentObj.setReportTitle(null);
+ toolContentObj.setMonitoringReportTitle(null);
+ toolContentObj.setSynchInMonitor(true); // don't know what this does but the default content has false
+
+ Boolean bool;
+ try {
+ bool = WDDXProcessor.convertToBoolean(importValues, ToolContentImport102Manager.CONTENT_SHOW_USER);
+ toolContentObj.setUsernameVisible(bool!=null?bool:false);
+ } catch (WDDXProcessorConversionException e) {
+ logger.error("Unable to content for activity "+toolContentObj.getTitle()+"properly due to a WDDXProcessorConversionException.",e);
+ throw new ToolException("Invalid import data format for activity "+toolContentObj.getTitle()+"- WDDX caused an exception. Some data from the design will have been lost. See log for more details.");
+ }
+
+ // leave as empty, no need to set them to anything.
+ //setQaUploadedFiles(Set qaUploadedFiles);
+ //setQaSessions(Set qaSessions);
+
+ // set up question from body
+ QaQueContent question = new QaQueContent();
+ question.setQuestion((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY));
+ question.setDisplayOrder(1);
+ question.setQaContent(toolContentObj);
+ toolContentObj.getQaQueContents().add(question);
+
+ qaDAO.saveOrUpdateQa(toolContentObj);
+
+ }
+
+ /** Set the description, throws away the title value as this is not supported in 2.0 */
+ public void setReflectiveData(Long toolContentId, String title, String description)
+ throws ToolException, DataMissingException {
+
+ QaContent qaContent = null;
+ if ( toolContentId != null ) {
+ qaContent=loadQa(toolContentId.longValue());
+ }
+ if ( qaContent == null ) {
+ throw new DataMissingException("Unable to set reflective data titled "+title
+ +" on activity toolContentId "+toolContentId
+ +" as the tool content does not exist.");
+ }
+
+ // TODO add reflection
+ // qaContent.setReflectOnActivity(Boolean.TRUE);
+ // qaContent.setReflectInstructions(description);
+ }
+
+ //=========================================================================================
}
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml
===================================================================
diff -u -r0c3424ef00200659464b1012d4e8a374ffaa0aae -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml (.../rsrcApplicationContext.xml) (revision 0c3424ef00200659464b1012d4e8a374ffaa0aae)
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/rsrcApplicationContext.xml (.../rsrcApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -137,6 +137,8 @@
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,+java.lang.Exception
PROPAGATION_REQUIRED,+java.lang.Exception
+ PROPAGATION_REQUIRED,+java.lang.Exception
+ PROPAGATION_REQUIRED,+java.lang.Exception
Index: lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java
===================================================================
diff -u -rc25a2c783e51d05045d1fb61981c169357cd3e98 -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision c25a2c783e51d05045d1fb61981c169357cd3e98)
+++ lams_tool_larsrc/src/java/org/lamsfoundation/lams/tool/rsrc/service/ResourceServiceImpl.java (.../ResourceServiceImpl.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -101,7 +101,7 @@
*
*/
public class ResourceServiceImpl implements
- IResourceService,ToolContentManager, ToolSessionManager
+ IResourceService,ToolContentManager, ToolSessionManager, ToolContentImport102Manager
{
static Logger log = Logger.getLogger(ResourceServiceImpl.class.getName());
@@ -938,7 +938,7 @@
/**
* Import the data for a 1.0.2 Noticeboard or HTMLNoticeboard
*/
- public void import102ToolContent(Long toolContentId, Integer newUserId, Hashtable importValues)
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
{
Date now = new Date();
Resource toolContentObj = new Resource();
@@ -977,13 +977,13 @@
[showbuttons=false] no equivalent in 2.0
[isReusable=false] not used in 1.0.2 (would be lock when finished)
*/
- ResourceUser user = null;
- if ( newUserId != null ) {
- user = new ResourceUser();
- user.setUserId(new Long(newUserId.longValue()));
- createUser(user);
- toolContentObj.setCreatedBy(user);
- }
+ ResourceUser ruser = new ResourceUser();
+ ruser.setUserId(new Long(user.getUserID().longValue()));
+ ruser.setFirstName(user.getFirstName());
+ ruser.setLastName(user.getLastName());
+ ruser.setLoginName(user.getLogin());
+ createUser(ruser);
+ toolContentObj.setCreatedBy(ruser);
//resource Items
Vector urls = (Vector) importValues.get(ToolContentImport102Manager.CONTENT_URL_URLS);
@@ -995,7 +995,7 @@
ResourceItem item = new ResourceItem();
item.setTitle((String) urlMap.get(ToolContentImport102Manager.CONTENT_TITLE));
item.setCreateDate(now);
- item.setCreateBy(user);
+ item.setCreateBy(ruser);
item.setCreateByAuthor(true);
item.setHide(false);
Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/applicationContext.xml
===================================================================
diff -u -re280cd832df020c33df6730fbee453add9e6caee -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/applicationContext.xml (.../applicationContext.xml) (revision e280cd832df020c33df6730fbee453add9e6caee)
+++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/applicationContext.xml (.../applicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -52,7 +52,11 @@
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
-
+
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
Index: lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java
===================================================================
diff -u -r08afbd42add64dcb44f8accb9595bd125bd9ebae -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java (.../NoticeboardServicePOJO.java) (revision 08afbd42add64dcb44f8accb9595bd125bd9ebae)
+++ lams_tool_nb/src/java/org/lamsfoundation/lams/tool/noticeboard/service/NoticeboardServicePOJO.java (.../NoticeboardServicePOJO.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -58,6 +58,7 @@
import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardSessionDAO;
import org.lamsfoundation.lams.tool.noticeboard.dao.INoticeboardUserDAO;
import org.lamsfoundation.lams.tool.service.ILamsToolService;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.springframework.dao.DataAccessException;
@@ -1030,13 +1031,13 @@
/**
* Import the data for a 1.0.2 Noticeboard or HTMLNoticeboard
*/
- public void import102ToolContent(Long toolContentId, Integer newUserId, Hashtable importValues)
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
{
Date now = new Date();
NoticeboardContent toolContentObj = new NoticeboardContent();
toolContentObj.setContent((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY));
toolContentObj.setContentInUse(false);
- toolContentObj.setCreatorUserId(newUserId != null ? new Long(newUserId.longValue()) : null);
+ toolContentObj.setCreatorUserId(user.getUserID().longValue());
toolContentObj.setDateCreated(now);
toolContentObj.setDateUpdated(now);
toolContentObj.setDefineLater(false);
Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml
===================================================================
diff -u -r58cfe8c94ee9878fc43820e4f0ae4d1f8a1df35a -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml (.../notebookApplicationContext.xml) (revision 58cfe8c94ee9878fc43820e4f0ae4d1f8a1df35a)
+++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/notebookApplicationContext.xml (.../notebookApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -55,7 +55,11 @@
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED
-
+
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
Index: lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java
===================================================================
diff -u -r7a1c6972ff38760192dbdaac41ed8e5e99105247 -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 7a1c6972ff38760192dbdaac41ed8e5e99105247)
+++ lams_tool_notebook/src/java/org/lamsfoundation/lams/tool/notebook/service/NotebookService.java (.../NotebookService.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -26,6 +26,8 @@
import java.io.FileNotFoundException;
import java.io.IOException;
+import java.util.Date;
+import java.util.Hashtable;
import java.util.List;
import java.util.Set;
@@ -50,6 +52,7 @@
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.notebook.model.NotebookEntry;
import org.lamsfoundation.lams.notebook.service.ICoreNotebookService;
+import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
@@ -79,7 +82,7 @@
*/
public class NotebookService implements ToolSessionManager, ToolContentManager,
- INotebookService {
+ INotebookService, ToolContentImport102Manager {
static Logger logger = Logger.getLogger(NotebookService.class.getName());
@@ -491,6 +494,51 @@
}
}
+ /* ===============Methods implemented from ToolContentImport102Manager =============== */
+
+
+ /**
+ * Import the data for a 1.0.2 Notebook
+ */
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
+ {
+ Date now = new Date();
+ Notebook toolContentObj = new Notebook();
+ toolContentObj.setContentInUse(Boolean.FALSE);
+ toolContentObj.setCreateBy(new Long(user.getUserID().longValue()));
+ toolContentObj.setCreateDate(now);
+ toolContentObj.setDefineLater(Boolean.FALSE);
+ toolContentObj.setInstructions((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY));
+ toolContentObj.setLockOnFinished(Boolean.TRUE);
+ toolContentObj.setOfflineInstructions(null);
+ toolContentObj.setOnlineInstructions(null);
+ toolContentObj.setRunOffline(Boolean.FALSE);
+ toolContentObj.setTitle((String)importValues.get(ToolContentImport102Manager.CONTENT_TITLE));
+ toolContentObj.setToolContentId(toolContentId);
+ toolContentObj.setUpdateDate(now);
+ toolContentObj.setAllowRichEditor(Boolean.FALSE);
+ // leave as empty, no need to set them to anything.
+ //setNotebookAttachments(Set notebookAttachments);
+ //setNotebookSessions(Set notebookSessions);
+ notebookDAO.saveOrUpdate(toolContentObj);
+ }
+
+ /** Set the description, throws away the title value as this is not supported in 2.0 */
+ public void setReflectiveData(Long toolContentId, String title, String description)
+ throws ToolException, DataMissingException {
+
+ logger.warn("Setting the reflective field on a notebook. This doesn't make sense as the notebook is for reflection and we don't reflect on reflection!");
+ Notebook toolContentObj = getNotebookByContentId(toolContentId);
+ if ( toolContentObj == null ) {
+ throw new DataMissingException("Unable to set reflective data titled "+title
+ +" on activity toolContentId "+toolContentId
+ +" as the tool content does not exist.");
+ }
+
+ toolContentObj.setInstructions(description);
+ }
+
+ //=========================================================================================
/* ********** Used by Spring to "inject" the linked objects ************* */
public INotebookAttachmentDAO getNotebookAttachmentDAO() {
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java
===================================================================
diff -u -r08afbd42add64dcb44f8accb9595bd125bd9ebae -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 08afbd42add64dcb44f8accb9595bd125bd9ebae)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/service/SubmitFilesService.java (.../SubmitFilesService.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -94,7 +94,7 @@
* @author Manpreet Minhas
*/
public class SubmitFilesService implements ToolContentManager,
- ToolSessionManager, ISubmitFilesService {
+ ToolSessionManager, ISubmitFilesService, ToolContentImport102Manager {
private static Logger log = Logger.getLogger(SubmitFilesService.class);
@@ -776,7 +776,7 @@
/**
* Import the data for a 1.0.2 Noticeboard or HTMLNoticeboard
*/
- public void import102ToolContent(Long toolContentId, Integer newUserId, Hashtable importValues)
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
{
Date now = new Date();
SubmitFilesContent toolContentObj = new SubmitFilesContent();
Index: lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/submitFilesApplicationContext.xml
===================================================================
diff -u -r84a9dd84fe84bb855c96c96acd137b5a38c2c2cd -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/submitFilesApplicationContext.xml (.../submitFilesApplicationContext.xml) (revision 84a9dd84fe84bb855c96c96acd137b5a38c2c2cd)
+++ lams_tool_sbmt/src/java/org/lamsfoundation/lams/tool/sbmt/submitFilesApplicationContext.xml (.../submitFilesApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -86,6 +86,11 @@
PROPAGATION_REQUIRED
PROPAGATION_REQUIRED,-java.lang.Exception
PROPAGATION_REQUIRED,-java.lang.Exception
+
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
+ PROPAGATION_REQUIRED
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java
===================================================================
diff -u -r658c9122d9bbb47bd4c3e6a9431cf175ced2870e -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java (.../VoteServicePOJO.java) (revision 658c9122d9bbb47bd4c3e6a9431cf175ced2870e)
+++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/service/VoteServicePOJO.java (.../VoteServicePOJO.java) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -23,10 +23,12 @@
package org.lamsfoundation.lams.tool.vote.service;
import java.io.InputStream;
import java.util.Date;
+import java.util.Hashtable;
import java.util.Iterator;
import java.util.List;
import java.util.Set;
import java.util.TreeSet;
+import java.util.Vector;
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.contentrepository.AccessDeniedException;
@@ -50,6 +52,7 @@
import org.lamsfoundation.lams.learningdesign.service.ImportToolContentException;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.tool.IToolVO;
+import org.lamsfoundation.lams.tool.ToolContentImport102Manager;
import org.lamsfoundation.lams.tool.ToolContentManager;
import org.lamsfoundation.lams.tool.ToolSessionExportOutputData;
import org.lamsfoundation.lams.tool.ToolSessionManager;
@@ -73,8 +76,11 @@
import org.lamsfoundation.lams.tool.vote.pojos.VoteUploadedFile;
import org.lamsfoundation.lams.tool.vote.pojos.VoteUsrAttempt;
import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
import org.lamsfoundation.lams.util.audit.IAuditService;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessor;
+import org.lamsfoundation.lams.util.wddx.WDDXProcessorConversionException;
import org.springframework.dao.DataAccessException;
/**
@@ -87,7 +93,7 @@
*
*/
public class VoteServicePOJO implements
- IVoteService, ToolContentManager, ToolSessionManager, VoteAppConstants
+ IVoteService, ToolContentManager, ToolSessionManager, ToolContentImport102Manager, VoteAppConstants
{
static Logger logger = Logger.getLogger(VoteServicePOJO.class.getName());
@@ -2616,4 +2622,87 @@
this.exportContentService = exportContentService;
}
+ /* ===============Methods implemented from ToolContentImport102Manager =============== */
+
+
+ /**
+ * Import the data for a 1.0.2 Chat
+ */
+ public void import102ToolContent(Long toolContentId, UserDTO user, Hashtable importValues)
+ {
+ Date now = new Date();
+ VoteContent toolContentObj = new VoteContent();
+ toolContentObj.setContentInUse(Boolean.FALSE);
+ toolContentObj.setCreatedBy(user.getUserID().longValue());
+ toolContentObj.setCreationDate(now);
+ toolContentObj.setDefineLater(Boolean.FALSE);
+ toolContentObj.setInstructions((String)importValues.get(ToolContentImport102Manager.CONTENT_BODY));
+ toolContentObj.setOfflineInstructions(null);
+ toolContentObj.setOnlineInstructions(null);
+ // TODO add reflection
+ //toolContentObj.setReflectInstructions(null);
+ //toolContentObj.setReflectOnActivity(Boolean.FALSE);
+ toolContentObj.setRunOffline(Boolean.FALSE);
+ toolContentObj.setTitle((String)importValues.get(ToolContentImport102Manager.CONTENT_TITLE));
+
+ toolContentObj.setContent(null);
+ toolContentObj.setUpdateDate(now);
+ toolContentObj.setVoteContentId(toolContentId);
+ toolContentObj.setVoteChangable(Boolean.FALSE);
+
+ try {
+ Boolean bool = WDDXProcessor.convertToBoolean(importValues, ToolContentImport102Manager.CONTENT_VOTE_ALLOW_POLL_NOMINATIONS);
+ toolContentObj.setAllowText(bool!=null?bool:false);
+
+ bool = WDDXProcessor.convertToBoolean(importValues, ToolContentImport102Manager.CONTENT_MB_REUSABLE);
+ toolContentObj.setLockOnFinish(bool!=null?bool:true);
+
+ Integer maxCount = WDDXProcessor.convertToInteger(importValues, ToolContentImport102Manager.CONTENT_VOTE_MAXCHOOSE);
+ toolContentObj.setMaxNominationCount(maxCount != null ? maxCount.toString() : "1");
+
+ } catch (WDDXProcessorConversionException e) {
+ logger.error("Unable to content for activity "+toolContentObj.getTitle()+"properly due to a WDDXProcessorConversionException.",e);
+ throw new ToolException("Invalid import data format for activity "+toolContentObj.getTitle()+"- WDDX caused an exception. Some data from the design will have been lost. See log for more details.");
+ }
+
+ // leave as empty, no need to set them to anything.
+ //setVoteUploadedFiles(Set voteAttachments);
+ //setVoteSessions(Set voteSessions);
+
+ // set up question from body
+ Vector nominations = (Vector) importValues.get(CONTENT_VOTE_NOMINATIONS);
+ if ( nominations != null ) {
+ Iterator iter = nominations.iterator();
+ int order = 1;
+ while (iter.hasNext()) {
+ String element = (String) iter.next();
+ VoteQueContent nomination = new VoteQueContent(element, toolContentObj, null);
+ nomination.setDisplayOrder(order++);
+ toolContentObj.getVoteQueContents().add(nomination);
+ }
+ }
+
+ voteContentDAO.saveVoteContent(toolContentObj);
+ }
+
+ /** Set the description, throws away the title value as this is not supported in 2.0 */
+ public void setReflectiveData(Long toolContentId, String title, String description)
+ throws ToolException, DataMissingException {
+
+ VoteContent toolContentObj = null;
+ if ( toolContentId != null ) {
+ toolContentObj=retrieveVote(toolContentId);
+ }
+ if ( toolContentObj == null ) {
+ throw new DataMissingException("Unable to set reflective data titled "+title
+ +" on activity toolContentId "+toolContentId
+ +" as the tool content does not exist.");
+ }
+
+ // TODO add reflection
+ // qaContent.setReflectOnActivity(Boolean.TRUE);
+ // qaContent.setReflectInstructions(description);
+ }
+
+ //=========================================================================================
}
Index: lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml
===================================================================
diff -u -r683ee20a2363e56d2b63c07119a79f5a1aa0377f -r24ca84b9e61b98c068eaa369cb194a35e5511162
--- lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml (.../voteApplicationContext.xml) (revision 683ee20a2363e56d2b63c07119a79f5a1aa0377f)
+++ lams_tool_vote/src/java/org/lamsfoundation/lams/tool/vote/voteApplicationContext.xml (.../voteApplicationContext.xml) (revision 24ca84b9e61b98c068eaa369cb194a35e5511162)
@@ -94,6 +94,10 @@
PROPAGATION_REQUIRED,-VoteApplicationException
PROPAGATION_REQUIRED,-VoteApplicationException
PROPAGATION_REQUIRED,-VoteApplicationException
+ PROPAGATION_REQUIRED,-VoteApplicationException
+ PROPAGATION_REQUIRED,-VoteApplicationException
+ PROPAGATION_REQUIRED,-VoteApplicationException
+ PROPAGATION_REQUIRED,-VoteApplicationException