Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r870373d635bc769aee2dc271e6ff12818fcfcea6 -r96b3b3ff3f62e1bca1d299f75f512995388e420b Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml =================================================================== diff -u -re023857e217082f46fd3235d5673129ffccf6ff4 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision e023857e217082f46fd3235d5673129ffccf6ff4) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -19,7 +19,7 @@ - 0 and p.lesson.id = :lessonId"; private final static String COUNT_ATTEMPTED_ACTIVITY ="select count(*) from LearnerProgress prog, " +" Activity act where act.id = :activityId and " Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java =================================================================== diff -u -r4a347e27e76d051dfb231810330b42d0b7295ded -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 4a347e27e76d051dfb231810330b42d0b7295ded) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -591,7 +591,8 @@ Iterator iter = progresses.iterator(); while ( iter.hasNext() ) { LearnerProgress progress = (LearnerProgress) iter.next(); - progress.setLessonComplete(false); + if ( progress.getLessonComplete() == LearnerProgress.LESSON_END_OF_DESIGN_COMPLETE ) + progress.setLessonComplete(LearnerProgress.LESSON_NOT_COMPLETE); count++; } } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java =================================================================== diff -u -re863ee0730b7f5a82c13dd55fc39c2f9741cd695 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision e863ee0730b7f5a82c13dd55fc39c2f9741cd695) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -95,7 +95,7 @@ completedActivityList.add(parentActivity.getActivityId()); } populateCurrentCompletedActivityList(learnerProgress, completedActivityList); - return setLessonComplete(learnerProgress); + return setLessonComplete(learnerProgress, LearnerProgress.LESSON_IN_DESIGN_COMPLETE); } else { Transition transition = completedActivity.getTransitionFrom(); if (transition != null) @@ -132,6 +132,8 @@ if (progress.getLesson().getLockedForEdit()) { // special case - currently setting up the stop gates for live edit. return clearProgressNowhereToGoNotCompleted(progress,"setUpStartPoint"); + } else if (progress.isComplete() ) { + return progress; } else if(ld.getFirstActivity()==null) { throw new ProgressException("Could not find first activity for " +"learning design ["+ld.getTitle()+"], id[" @@ -192,7 +194,7 @@ progress.setCurrentActivity(null); progress.setNextActivity(null); - progress.setLessonComplete(false); + progress.setLessonComplete(LearnerProgress.LESSON_NOT_COMPLETE); return progress; } @@ -340,7 +342,7 @@ } //lesson is meant to be completed if there is no transition and no parent. else { - learnerProgress = setLessonComplete(learnerProgress); + learnerProgress = setLessonComplete(learnerProgress, LearnerProgress.LESSON_END_OF_DESIGN_COMPLETE); } return learnerProgress; @@ -352,10 +354,10 @@ * @param learnerProgress * @return updated learnerProgress */ - private LearnerProgress setLessonComplete(LearnerProgress learnerProgress) { + private LearnerProgress setLessonComplete(LearnerProgress learnerProgress, byte completionStatus) { learnerProgress.setCurrentActivity(null); learnerProgress.setNextActivity(null); - learnerProgress.setLessonComplete(true); + learnerProgress.setLessonComplete(completionStatus); return learnerProgress; } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r07d6aab3c681c1f2ecb8041756e99567ed639f31 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 07d6aab3c681c1f2ecb8041756e99567ed639f31) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -369,8 +369,8 @@ // and we go back to the sequence later, then the LessonComplete flag must be reset so that it will step through // all the activities in the sequence - otherwise it will go to the "Completed" screen after the first activity in the sequence if ( clearCompletedFlag && activity.getParentActivity() != null && activity.getParentActivity().isSequenceActivity() - && progress.isLessonComplete() && ! progress.getCompletedActivities().contains(activity) ) - progress.setLessonComplete(false); + && progress.isComplete() && ! progress.getCompletedActivities().contains(activity) ) + progress.setLessonComplete(LearnerProgress.LESSON_NOT_COMPLETE); progressEngine.setActivityAttempted(progress, activity); progress.setCurrentActivity(activity); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== diff -u -r0b15f95c45e3f984eb6b422bb035fb6d9f824e82 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 0b15f95c45e3f984eb6b422bb035fb6d9f824e82) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -128,7 +128,7 @@ { ActionForward actionForward = null; - if (progress.isLessonComplete()) + if (progress.isComplete()) { // If lesson complete forward to lesson complete action. This action will // cause a client request to clear ALL frames. Need to append the progress Index: lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java =================================================================== diff -u -re023857e217082f46fd3235d5673129ffccf6ff4 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -315,7 +315,7 @@ testProgress = learnerService.calculateProgress(testCompletedActivity, testUser.getUserId(), testProgress); - assertTrue("verify lesson complete",testProgress.isLessonComplete()); + assertTrue("verify lesson complete",testProgress.isComplete()); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); } Index: lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java =================================================================== diff -u -re023857e217082f46fd3235d5673129ffccf6ff4 -r96b3b3ff3f62e1bca1d299f75f512995388e420b --- lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java (.../TestDisplayActivityAction.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java (.../TestDisplayActivityAction.java) (revision 96b3b3ff3f62e1bca1d299f75f512995388e420b) @@ -167,7 +167,7 @@ { //setup the session bean to display completion page. //LearnerProgress progress = testBean.getLearnerProgress(); - learnerProgress.setLessonComplete(true); + learnerProgress.setLessonComplete(LearnerProgress.LESSON_END_OF_DESIGN_COMPLETE); //testBean.setLearnerProgress(progress); //httpSession.setAttribute(SessionBean.NAME,testBean); httpSession.setAttribute(ActivityAction.LEARNER_PROGRESS_REQUEST_ATTRIBUTE,learnerProgress);