Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyAnsContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,93 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,168 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueContent.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,198 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueType.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,61 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyQueUsr.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,117 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveySession.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,103 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml
===================================================================
diff -u
--- lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml (revision 0)
+++ lams_learning/conf/hibernate/mapping/org/lamsfoundation/lams/tool/survey/SurveyUsrResp.hbm.xml (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -0,0 +1,102 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
+
Index: lams_learning/lib/lams/lams-tool-survey.jar
===================================================================
diff -u
Binary files differ
Index: lams_learning/lib/lams/lams.jar
===================================================================
diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
Binary files differ
Index: lams_learning/lib/lams/src/lams-src.zip
===================================================================
diff -u -r29932d4b94bba030634340a4e4548626d1a694f7 -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
Binary files differ
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java
===================================================================
diff -u -r36c2ed010b8a3893b895d781be1a219f2380e62d -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
--- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 36c2ed010b8a3893b895d781be1a219f2380e62d)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -87,18 +87,19 @@
* Method determines the start point for a learner when they begin a Lesson.
* @param learner the User
who is starting the Lesson
.
* @param lesson the Lesson
the learner is starting.
- * @return Progress - the VO that contains the data needed to send
* @throws ProgressException if the start point cannot be calculated successfully.
*/
- public LearnerProgress getStartPoint(User learner, Lesson lesson,
- LearnerProgress progress) throws ProgressException
+ public void setUpStartPoint(User learner, Lesson lesson,
+ LearnerProgress progress) throws ProgressException
{
LearningDesign ld = lesson.getLearningDesign();
+ progress.setCurrentActivity(ld.getFirstActivity());
+
progress.setNextActivity(ld.getFirstActivity());
- return progress;
+ progress.setProgressState(ld.getFirstActivity(),LearnerProgress.ACTIVITY_ATTEMPTED);
}
}
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java
===================================================================
diff -u -r36c2ed010b8a3893b895d781be1a219f2380e62d -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision 36c2ed010b8a3893b895d781be1a219f2380e62d)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -27,6 +27,7 @@
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.LearnerProgress;
+import org.lamsfoundation.lams.tool.service.LamsToolServiceException;
import org.lamsfoundation.lams.usermanagement.User;
/**
*
@@ -61,7 +62,7 @@
* @param lessionID identifies the Lesson to start
* @throws LearnerServiceException in case of problems.
*/
- public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException;
+ public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException,LamsToolServiceException;
/**
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java
===================================================================
diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 0e9942a1cb3517b16f9cf75267fbea94371b621f)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -41,6 +41,8 @@
import org.lamsfoundation.lams.tool.ToolSession;
import org.lamsfoundation.lams.tool.dao.IToolSessionDAO;
+import org.lamsfoundation.lams.tool.service.ILamsToolService;
+import org.lamsfoundation.lams.tool.service.LamsToolServiceException;
import org.lamsfoundation.lams.usermanagement.User;
/**
* This class is a facade over the Learning middle tier.
@@ -55,7 +57,7 @@
private ILessonDAO lessonDAO;
private ProgressEngine progressEngine;
private IToolSessionDAO toolSessionDAO;
-
+ private ILamsToolService lamsToolService;
private ActionMappings actionMappings;
//---------------------------------------------------------------------
// Inversion of Control Methods - Constructor injection
@@ -92,6 +94,13 @@
this.learnerProgressDAO = learnerProgressDAO;
}
+ /**
+ * @param lamsToolService The lamsToolService to set.
+ */
+ public void setLamsToolService(ILamsToolService lamsToolService)
+ {
+ this.lamsToolService = lamsToolService;
+ }
//---------------------------------------------------------------------
// Service Methods
//---------------------------------------------------------------------
@@ -116,9 +125,10 @@
* Joins a User to a new lesson as a learner
* @param learner the Learner
* @param lessionID identifies the Lesson to start
+ * @throws LamsToolServiceException
* @throws LearnerServiceException in case of problems.
*/
- public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException
+ public LearnerProgress joinLesson(User learner, Lesson lesson) throws ProgressException, LamsToolServiceException
{
LearnerProgress learnerProgress = learnerProgressDAO.getLearnerProgressByLearner(learner,lesson);
@@ -127,7 +137,7 @@
//create a new learner progress for new learner
learnerProgress = new LearnerProgress(learner,lesson);
- progressEngine.getStartPoint(learner, lesson,learnerProgress);
+ progressEngine.setUpStartPoint(learner, lesson,learnerProgress);
learnerProgressDAO.saveLearnerProgress(learnerProgress);
}
@@ -207,8 +217,9 @@
* session doesn't exist, we create a new tool session instance.
*
* @param learnerProgress the learner progress we are processing.
+ * @throws LamsToolServiceException
*/
- private void createToolSessionsIfNecessary(LearnerProgress learnerProgress)
+ private void createToolSessionsIfNecessary(LearnerProgress learnerProgress) throws LamsToolServiceException
{
if(learnerProgress.getNextActivity()==null)
throw new LearnerServiceException("Error occurs in [" +
@@ -240,7 +251,7 @@
else
targetSession = toolSessionDAO.getToolSessionByGroup(toolActivity.getGroupFor(learnerProgress.getUser()),
toolActivity);
- return targetSession!=null?true:false;
+ return targetSession!=null?false:true;
}
/**
@@ -253,14 +264,14 @@
*
* @param toolActivity
* @param learner
+ * @throws LamsToolServiceException
*/
- private void createToolSessionFor(ToolActivity toolActivity,User learner)
+ private void createToolSessionFor(ToolActivity toolActivity,User learner) throws LamsToolServiceException
{
- ToolSession toolSession = toolActivity.createToolSessionForActivity(learner);
-
+ ToolSession toolSession = lamsToolService.createToolSession(learner,toolActivity);
+
toolActivity.getToolSessions().add(toolSession);
- toolSessionDAO.saveToolSession(toolSession);
+ lamsToolService.notifyToolsToCreateSession(toolSession.getToolSessionId(), toolActivity);
}
-
}
Index: lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml
===================================================================
diff -u -r11c5be112ae49dc43d2bd32e7d9556921a0cff64 -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
--- lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision 11c5be112ae49dc43d2bd32e7d9556921a0cff64)
+++ lams_learning/test/java/WEB-INF/spring/learningApplicationContext.xml (.../learningApplicationContext.xml) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -18,6 +18,7 @@
+
Index: lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java
===================================================================
diff -u -r0e9942a1cb3517b16f9cf75267fbea94371b621f -rf73c3d7878d6f6c013a43da96353e4e0983e1a61
--- lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision 0e9942a1cb3517b16f9cf75267fbea94371b621f)
+++ lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision f73c3d7878d6f6c013a43da96353e4e0983e1a61)
@@ -23,9 +23,14 @@
import org.lamsfoundation.lams.AbstractLamsTestCase;
import org.lamsfoundation.lams.learning.progress.ProgressException;
+import org.lamsfoundation.lams.learningdesign.ToolActivity;
+import org.lamsfoundation.lams.lesson.LearnerProgress;
import org.lamsfoundation.lams.lesson.Lesson;
+import org.lamsfoundation.lams.lesson.dao.ILearnerProgressDAO;
import org.lamsfoundation.lams.lesson.dao.ILessonDAO;
+import org.lamsfoundation.lams.lesson.dao.hibernate.LearnerProgressDAO;
import org.lamsfoundation.lams.lesson.dao.hibernate.LessonDAO;
+import org.lamsfoundation.lams.tool.service.LamsToolServiceException;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.usermanagement.service.IUserManagementService;
@@ -40,16 +45,18 @@
private ILearnerService learnerService;
private IUserManagementService usermanageService;
private ILessonDAO lessonDao;
+ private ILearnerProgressDAO learnerProgressDao;
//---------------------------------------------------------------------
// Testing Data - Constants
//---------------------------------------------------------------------
- private final Integer TEST_USER_ID = new Integer(1);
+ private final Integer TEST_USER_ID = new Integer(2);
private final Long Test_Lesson_ID = new Long(1);
//---------------------------------------------------------------------
// Testing Data - Instance Variables
//---------------------------------------------------------------------
private User testUser;
private Lesson testLesson;
+ private LearnerProgress testProgress;
/*
* @see TestCase#setUp()
*/
@@ -59,6 +66,7 @@
learnerService = (ILearnerService)this.context.getBean("learnerService");
usermanageService = (IUserManagementService)this.context.getBean("userManagementService");
lessonDao = (LessonDAO)this.context.getBean("lessonDAO");
+ learnerProgressDao = (LearnerProgressDAO)this.context.getBean("learnerProgressDAO");
testUser = usermanageService.getUserById(TEST_USER_ID);
testLesson = lessonDao.getLesson(Test_Lesson_ID);
@@ -85,11 +93,28 @@
return new String[] { "/WEB-INF/spring/learningApplicationContext.xml",
"/org/lamsfoundation/lams/lesson/lessonApplicationContext.xml",
"/org/lamsfoundation/lams/tool/toolApplicationContext.xml",
+ "/org/lamsfoundation/lams/tool/survey/dataAccessContext.xml",
+ "/org/lamsfoundation/lams/tool/survey/surveyApplicationContext.xml",
"applicationContext.xml"};
}
- public void testJoinLesson() throws ProgressException
+
+ public void testJoinLesson() throws ProgressException,LamsToolServiceException
{
learnerService.joinLesson(testUser,testLesson);
+
+ testProgress=learnerProgressDao.getLearnerProgressByLearner(testUser,testLesson);
+
+ assertNotNull(testProgress);
+ assertNotNull("verify next activity",testProgress.getNextActivity());
+ assertEquals("verify id of next activity-survey",20,testProgress.getNextActivity().getActivityId().longValue());
+ assertNotNull("verify current activity",testProgress.getCurrentActivity());
+ assertEquals("verify id of current activity-survey",20,testProgress.getCurrentActivity().getActivityId().longValue());
+ assertEquals("verify attempted activity",1,testProgress.getAttemptedActivities().size());
+ assertEquals("verify completed activity",0,testProgress.getCompletedActivities().size());
+ assertNotNull("verify correspondent tool session for next activity",
+ ((ToolActivity)testProgress.getNextActivity()).getToolSessions());
+ assertEquals("verify number of tool sessions created",1,
+ ((ToolActivity)testProgress.getNextActivity()).getToolSessions().size());
assertTrue(true);
}