Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java =================================================================== diff -u -r6a78e6194ce21512039bd7ace17b83701663f029 -re863ee0730b7f5a82c13dd55fc39c2f9741cd695 --- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 6a78e6194ce21512039bd7ace17b83701663f029) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision e863ee0730b7f5a82c13dd55fc39c2f9741cd695) @@ -89,7 +89,12 @@ if ( completedActivity.isStopAfterActivity() ) { // special case - terminate the lesson here. - populateCurrentCompletedActivityList(learnerProgress, completedActivityList); + learnerProgress.setProgressState(completedActivity, LearnerProgress.ACTIVITY_COMPLETED,activityDAO); + for ( Activity parentActivity = completedActivity.getParentActivity() ; parentActivity != null; parentActivity = parentActivity.getParentActivity() ) { + learnerProgress.setProgressState(parentActivity, LearnerProgress.ACTIVITY_COMPLETED,activityDAO); + completedActivityList.add(parentActivity.getActivityId()); + } + populateCurrentCompletedActivityList(learnerProgress, completedActivityList); return setLessonComplete(learnerProgress); } else { Transition transition = completedActivity.getTransitionFrom(); @@ -349,6 +354,7 @@ */ private LearnerProgress setLessonComplete(LearnerProgress learnerProgress) { learnerProgress.setCurrentActivity(null); + learnerProgress.setNextActivity(null); learnerProgress.setLessonComplete(true); return learnerProgress; }