Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml
===================================================================
diff -u -r600dc5c9c87aa8fc67e052124ac91385847c856c -rf04ea5dd01ce29924bc450f44d9232b70dfb8f3e
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision 600dc5c9c87aa8fc67e052124ac91385847c856c)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision f04ea5dd01ce29924bc450f44d9232b70dfb8f3e)
@@ -26,6 +26,9 @@
column="waiting_flag" />
+
+
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java
===================================================================
diff -u -rc44482d534e42cdecb0eefd678fad9cc5d8eb137 -rf04ea5dd01ce29924bc450f44d9232b70dfb8f3e
--- lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision c44482d534e42cdecb0eefd678fad9cc5d8eb137)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision f04ea5dd01ce29924bc450f44d9232b70dfb8f3e)
@@ -24,8 +24,11 @@
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.learningdesign.Activity;
import org.lamsfoundation.lams.learningdesign.ActivityOrderComparator;
+import org.lamsfoundation.lams.lesson.dto.LearnerProgressDTO;
import java.io.Serializable;
+import java.util.ArrayList;
+import java.util.Iterator;
import java.util.LinkedList;
import java.util.List;
import java.util.Set;
@@ -123,6 +126,9 @@
*/
private List currentCompletedActivitiesList;
+ /**Indicate whether the learning progress is restarting or not*/
+ private boolean restarting;
+
//---------------------------------------------------------------------
// Constructors
//---------------------------------------------------------------------
@@ -149,7 +155,9 @@
this.attemptedActivities = attemptedActivities;
this.completedActivities = completedActivities;
}
-
+ //---------------------------------------------------------------------
+ // Getters and Setters
+ //---------------------------------------------------------------------
/**
*
*
@@ -394,4 +402,59 @@
this.currentCompletedActivitiesList = new LinkedList();
this.currentCompletedActivitiesList.addAll(completedActivitiesList);
}
+ /**
+ * @return Returns the isRestarting.
+ */
+ public boolean isRestarting()
+ {
+ return restarting;
+ }
+ /**
+ * @param isRestarting The isRestarting to set.
+ */
+ public void setRestarting(boolean restarting)
+ {
+ this.restarting = restarting;
+ }
+ //---------------------------------------------------------------------
+ // Service methods
+ //---------------------------------------------------------------------
+ /**
+ * Returns the learner progress data transfer object.
+ */
+ public LearnerProgressDTO getLearnerProgressData()
+ {
+
+ return new LearnerProgressDTO(this.lesson.getLessonId(),
+ this.lesson.getLessonName(),
+ this.user.getLogin(),
+ this.user.getUserId(),
+ this.currentActivity.getActivityId(),
+ this.createIdArrayFrom(this.attemptedActivities),
+ this.createIdArrayFrom(this.completedActivities));
+ }
+
+ //---------------------------------------------------------------------
+ // Helper methods
+ //---------------------------------------------------------------------
+ /**
+ * Extract the Id from activities and set them into an array.
+ * @param activities the activities that is being used to create the
+ * array.
+ */
+ private Long[] createIdArrayFrom(Set activities)
+ {
+ if(activities == null)
+ throw new IllegalArgumentException("Fail to create id array" +
+ " from null activity set");
+
+ ArrayList activitiesIds = new ArrayList();
+ for(Iterator i= activities.iterator();i.hasNext();)
+ {
+ Activity activity = (Activity)i.next();
+ activitiesIds.add(activity.getActivityId());
+ }
+
+ return (Long [])activitiesIds.toArray(new Long[activitiesIds.size()]);
+ }
}
Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java
===================================================================
diff -u -rfee6e64a584e9b1a7df005ba288332c49310fe7c -rf04ea5dd01ce29924bc450f44d9232b70dfb8f3e
--- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java (.../TestLearnerProgressDAO.java) (revision fee6e64a584e9b1a7df005ba288332c49310fe7c)
+++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLearnerProgressDAO.java (.../TestLearnerProgressDAO.java) (revision f04ea5dd01ce29924bc450f44d9232b70dfb8f3e)
@@ -77,6 +77,7 @@
assertNull("should not get any progress data",progress);
}
+
public void testSaveLearnerProgress() throws HibernateException
{
super.learnerProgressDao.saveLearnerProgress(this.testLearnerProgress);
@@ -134,18 +135,20 @@
progress.setProgressState(firstActivity,LearnerProgress.ACTIVITY_COMPLETED);
progress.setProgressState(testParallelActivity,LearnerProgress.ACTIVITY_COMPLETED);
progress.setProgressState(testToolActivity,LearnerProgress.ACTIVITY_ATTEMPTED);
+ progress.setRestarting(true);
super.learnerProgressDao.updateLearnerProgress(progress);
LearnerProgress updatedProgress= learnerProgressDao.getLearnerProgressByLearner(testUser,testLesson);
assertLearnerProgressInitialization(progress);
assertEquals("verify completed activity",2,updatedProgress.getCompletedActivities().size());
assertEquals("verify attempted activity",1,updatedProgress.getAttemptedActivities().size());
-
+ assertTrue("is restarting",updatedProgress.isRestarting());
super.learnerProgressDao.deleteLearnerProgress(testLearnerProgress);
super.getSession().flush();
}
+
/**
* @param progress
*/