Index: lams_build/lib/lams/lams-learning.jar =================================================================== diff -u -r99795d361309cb79a48c4bb46b15f46ae4ab51f9 -re023857e217082f46fd3235d5673129ffccf6ff4 Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -r70aab47cedf78d1e44e6e755b36fb095911bed52 -re023857e217082f46fd3235d5673129ffccf6ff4 Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml =================================================================== diff -u -r920894ca746cba5e080023c5cc80167d64d1653d -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision 920894ca746cba5e080023c5cc80167d64d1653d) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/LearnerProgress.hbm.xml (.../LearnerProgress.hbm.xml) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -22,7 +22,7 @@ - Index: lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/LearnerProgress.java (.../LearnerProgress.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -64,6 +64,13 @@ public static final byte ACTIVITY_ATTEMPTED = 2; /** Indicates activity has not been attempted yet */ public static final byte ACTIVITY_NOT_ATTEMPTED = 3; + + /** Parallel waiting state: Not waiting in any way */ + public static final byte PARALLEL_NO_WAIT = 0; + /** Parallel waiting state: One activity complete, the others still to be completed */ + public static final byte PARALLEL_WAITING = 1; + /** Parallel waiting state: All activities completed, break out of parallel frames */ + public static final byte PARALLEL_WAITING_COMPLETE = 2; //--------------------------------------------------------------------- // attributes //--------------------------------------------------------------------- @@ -119,7 +126,7 @@ * Indicates the learner progress is in a incomplete parallel activity * or not. */ - private boolean parallelWaiting; + private byte parallelWaiting; /** * A list of completed activities ids before move on to next activity @@ -380,14 +387,14 @@ /** * @return Returns the isParallelWaiting. */ - public boolean isParallelWaiting() + public byte getParallelWaiting() { return parallelWaiting; } /** * @param isParallelWaiting The isParallelWaiting to set. */ - public void setParallelWaiting(boolean parallelWaiting) + public void setParallelWaiting(byte parallelWaiting) { this.parallelWaiting = parallelWaiting; } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/progress/ProgressEngine.java (.../ProgressEngine.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -63,7 +63,7 @@ private List completedActivityList = new LinkedList(); /** * Method determines next step for a learner based on the activity - * they have just completed. + * they have just completed. Will clear the Parallel Waiting Complete value if it is currently set. * @param learner The User who is progressing through the Lesson. * @param completedActivity The Activity the learner has just completed. * @param lesson The Lesson the learner needs progress for. @@ -76,6 +76,17 @@ Activity completedActivity, LearnerProgress learnerProgress) throws ProgressException { + if ( learnerProgress.getParallelWaiting() == LearnerProgress.PARALLEL_WAITING_COMPLETE ) { + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_NO_WAIT); + } + return doCalculateProgress(learner, completedActivity, learnerProgress); + } + + /** Internal method used for recursion. Does the actual "work" of calculateProgress. */ + private LearnerProgress doCalculateProgress(User learner, + Activity completedActivity, + LearnerProgress learnerProgress) throws ProgressException + { learnerProgress.setProgressState(completedActivity, LearnerProgress.ACTIVITY_COMPLETED); completedActivityList.add(completedActivity.getActivityId()); @@ -119,7 +130,7 @@ +"]"); } else if ( progress.getCompletedActivities().contains(ld.getFirstActivity()) ) { // special case - recalculating the appropriate current activity. - return calculateProgress(progress.getUser(), ld.getFirstActivity(), progress); + return doCalculateProgress(progress.getUser(), ld.getFirstActivity(), progress); } else if ( canDoActivity(progress.getLesson(), ld.getFirstActivity()) ) { // normal case progress.setCurrentActivity(ld.getFirstActivity()); @@ -238,7 +249,8 @@ else learnerProgress.setNextActivity(nextActivity); setActivityAttempted(learnerProgress, nextActivity); - learnerProgress.setParallelWaiting(false); + if ( learnerProgress.getParallelWaiting() == LearnerProgress.PARALLEL_WAITING ) + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_WAITING_COMPLETE ); } else { return clearProgressNowhereToGoNotCompleted(learnerProgress,"progressCompletedActivity"); @@ -250,7 +262,7 @@ // abnormal case: next activity already done. Must have jumped back to an earlier // optional activity, done another activity and then kept going - return calculateProgress(learner,nextActivity,learnerProgress); + return doCalculateProgress(learner,nextActivity,learnerProgress); } } @@ -303,13 +315,12 @@ } else if(isParallelWaitActivity(nextActivity)) { - learnerProgress.setParallelWaiting(true); + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_WAITING); // learnerProgress.setNextActivity(null); populateCurrentCompletedActivityList(learnerProgress); } else if ( canDoActivity(learnerProgress.getLesson(), nextActivity) ) { - learnerProgress.setParallelWaiting(false); learnerProgress.setNextActivity(nextActivity); setActivityAttempted(learnerProgress, nextActivity); populateCurrentCompletedActivityList(learnerProgress); @@ -322,7 +333,9 @@ //parent activity. else { learnerProgress.setPreviousActivity(complexParent); - calculateProgress(learner, parent, learnerProgress); + doCalculateProgress(learner, parent, learnerProgress); + if ( learnerProgress.getParallelWaiting() == LearnerProgress.PARALLEL_WAITING ) + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_WAITING_COMPLETE ); } } //lesson is meant to be completed if there is no transition and no parent. Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/ICoreLearnerService.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/ICoreLearnerService.java (.../ICoreLearnerService.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/ICoreLearnerService.java (.../ICoreLearnerService.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -121,12 +121,14 @@ /** * Calculates learner progress and returns the data required to be displayed to the learner (including URL(s)). + * This method is included in the interface for testing purposes. + * * @param completedActivityID identifies the activity just completed * @param learner the Learner * @return the bean containing the display data for the Learner * @throws LearnerServiceException in case of problems. */ - public LearnerProgress calculateProgress(Activity completedActivity, Integer learnerId); + public LearnerProgress calculateProgress(Activity completedActivity, Integer learnerId, LearnerProgress currentLearnerProgress); /** * Complete the activity in the progress engine and delegate to the progress Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -24,7 +24,6 @@ /* $$Id$$ */ package org.lamsfoundation.lams.learning.service; -import java.io.UnsupportedEncodingException; import java.sql.Timestamp; import java.util.ArrayList; import java.util.Date; @@ -382,28 +381,26 @@ /** * Calculates learner progress and returns the data required to be displayed * to the learner. - * @param completedActivityID identifies the activity just completed + * @param completedActivity the activity just completed * @param learner the Learner + * @param learnerProgress the current progress * @return the bean containing the display data for the Learner * @throws LamsToolServiceException * @throws LearnerServiceException in case of problems. */ - public LearnerProgress calculateProgress(Activity completedActivity,Integer learnerId) + public LearnerProgress calculateProgress(Activity completedActivity,Integer learnerId, LearnerProgress currentLearnerProgress) { - Lesson lesson = getLessonByActivity(completedActivity); - LearnerProgress learnerProgress = learnerProgressDAO.getLearnerProgressByLearner(learnerId,lesson.getLessonId()); - try { - learnerProgress = progressEngine.calculateProgress(learnerProgress.getUser(), completedActivity,learnerProgress); + LearnerProgress learnerProgress = progressEngine.calculateProgress(currentLearnerProgress.getUser(), completedActivity,currentLearnerProgress); learnerProgressDAO.updateLearnerProgress(learnerProgress); + return learnerProgress; } catch (ProgressException e) { throw new LearnerServiceException(e.getMessage()); } - return learnerProgress; } /** @@ -476,7 +473,7 @@ } else { - nextLearnerProgress = calculateProgress(activity, learnerId); + nextLearnerProgress = calculateProgress(activity, learnerId, progress); } //} return nextLearnerProgress; Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java (.../DisplayOptionsActivityAction.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/action/DisplayOptionsActivityAction.java (.../DisplayOptionsActivityAction.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -113,6 +113,7 @@ form.setDescription(optionsActivity.getDescription()); form.setTitle(optionsActivity.getTitle()); form.setLessonID(learnerProgress.getLesson().getLessonId()); + form.setProgressID(learnerProgress.getLearnerProgressId()); this.saveToken(request); Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/OptionsActivityForm.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/OptionsActivityForm.java (.../OptionsActivityForm.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/form/OptionsActivityForm.java (.../OptionsActivityForm.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -37,7 +37,8 @@ private int minimum; private int maximum; private boolean finished; - + private Long progressID; + public String getTitle() { return title; } @@ -68,4 +69,10 @@ public void setFinished(boolean finished) { this.finished = finished; } + public Long getProgressID() { + return progressID; + } + public void setProgressID(Long progressID) { + this.progressID = progressID; + } } Index: lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/web/util/ActivityMapping.java (.../ActivityMapping.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -137,14 +137,12 @@ String strutsAction = this.getActivityMappingStrategy() .getLessonCompleteAction(); strutsAction = WebUtil.appendParameterToURL(strutsAction, LearningWebUtil.PARAM_PROGRESS_ID, progress.getLearnerProgressId().toString()); - actionForward = this.strutsActionToForward(strutsAction, - null, - redirect); + strutsAction = strutsActionToURL(strutsAction, null, true); + actionForward = this.getClearFramesForward(strutsAction, progress.getLearnerProgressId().toString()); } else { - - if (! displayParallelFrames && progress.isParallelWaiting()) + if (! displayParallelFrames && progress.getParallelWaiting() == LearnerProgress.PARALLEL_WAITING) { // processing the screen WITHIN parallel activity frames. // progress is waiting, goto waiting page @@ -157,11 +155,12 @@ else { // display next activity - if (progress.getPreviousActivity()!=null && progress.getPreviousActivity().isParallelActivity()) + if (progress.getParallelWaiting() == LearnerProgress.PARALLEL_WAITING_COMPLETE) { // if previous activity was a parallel activity then we need to // clear frames. - actionForward = this.getRedirectForward(progress, redirect); + String activityURL = this.getActivityURL(progress.getNextActivity()); + actionForward = this.getClearFramesForward(activityURL, progress.getLearnerProgressId().toString()); } else { @@ -183,20 +182,28 @@ return actionForward; } - public ActionForward getRedirectForward(LearnerProgress progress, boolean redirect) throws UnsupportedEncodingException { - ActionForward actionForward = null; + /** Call the requestDisplay.do action to break out of any frames. + * Doesn't need to redirect this forward, as the requestDisplay.do does a redirect + * + * @param activityURL URL to which we will be redirected. Does not need to be encoded as this method will encode it. + * @param progressId + * @return actionForward to which to forward + * @throws UnsupportedEncodingException + */ + private ActionForward getClearFramesForward(String activityURL, String progressId) throws UnsupportedEncodingException { + + String encodedURL = URLEncoder.encode(activityURL, "UTF-8"); + + ActionForward actionForward = null; - String activityURL = this.getActivityURL(progress.getNextActivity()); - activityURL = URLEncoder.encode(activityURL, "UTF-8"); - - String strutsAction = "/requestDisplay.do?url=" + activityURL; + String strutsAction = "/requestDisplay.do?url=" + encodedURL; strutsAction = WebUtil.appendParameterToURL(strutsAction, LearningWebUtil.PARAM_PROGRESS_ID, - progress.getLearnerProgressId().toString()); + progressId); actionForward = strutsActionToForward(strutsAction, null, - redirect); + false); return actionForward; } Index: lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java =================================================================== diff -u -rb97468c00c782ebee49471b0675951989237904c -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision b97468c00c782ebee49471b0675951989237904c) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/service/TestLearnerService.java (.../TestLearnerService.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -199,15 +199,17 @@ //progress from survey to synch gate testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_SYNCHGATE_ACTIVITY_UIID,TEST_SYNCHGATE_ACTIVITY_UIID,1,1,"sycn-gate","sycn-gate"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from synch gate to notebook testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_NOTEBOOK_ACTIVITY_UIID,TEST_NOTEBOOK_ACTIVITY_UIID,2,1,"random grouping","random grouping"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); @@ -216,15 +218,17 @@ testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_RGRP_ACTIVITY_UIID,TEST_RGRP_ACTIVITY_UIID,3,1,"random grouping","random grouping"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from random grouping activity to schedule gate testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_SCHEDULE_GATE_ACTIVITY_UIID,TEST_SCHEDULE_GATE_ACTIVITY_UIID,4,1,"schedule gate","schedule gate"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); @@ -233,15 +237,17 @@ testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_CHAT_ACTIVITY_UIID,TEST_CHAT_ACTIVITY_UIID,5,1,"chat","chat"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from chat activity to QNA testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_QNA_ACTIVITY_UIID,TEST_QNA_ACTIVITY_UIID,6,1,"QNA","QNA"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); @@ -250,23 +256,26 @@ testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_PERMISSION_GATE_ACTIVITY_UIID,TEST_PERMISSION_GATE_ACTIVITY_UIID,7,1,"permission gate","permission gate"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from permission gate to options activity testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testCompletedActivity; testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_OPTIONS_ACTIVITY_UIID,TEST_OPTIONS_ACTIVITY_UIID,8,1,"OPTIONS","OPTIONS"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from sub option(notice board) to parallel activity testCompletedActivity = ((OptionsActivity)testProgress.getCurrentActivity()).getChildActivityById(TEST_CNB_ACTIVITY_ID); testRootPreviousActivity = testCompletedActivity.getParentActivity(); testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_PARALLEL_ACTIVITY_UIID,TEST_PARALLEL_ACTIVITY_UIID,10,1,"PARALLEL","PARALLEL"); assertEquals("verify temp completed activities",2,testProgress.getCurrentCompletedActivitiesList().size()); @@ -275,33 +284,37 @@ //the previous activity should not be changed. testRootPreviousActivity = testProgress.getPreviousActivity(); testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_PARALLEL_ACTIVITY_UIID,TEST_WAITING_ACTIVITY_UIID,11,1,"PARALLEL","WAITING"); - assertTrue("verify waiting flag-should be waiting.",testProgress.isParallelWaiting()); + assertEquals("verify waiting flag-should be waiting.",testProgress.getParallelWaiting(),LearnerProgress.PARALLEL_WAITING); assertTrue("verify next activity",testProgress.getNextActivity()==null); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress from sub parallel(message board) to sub sequence activity(share resource) testCompletedActivity = ((ParallelActivity)testProgress.getCurrentActivity()).getChildActivityById(TEST_MB_ACTIVITY_ID); testRootPreviousActivity = testCompletedActivity.getParentActivity(); testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_SEQUENCE_ACTIVITY_UIID,TEST_SR_ACTIVITY_UIID,13,1,"SEQUENCE","SHARE RESOURCE"); - assertTrue("verify waiting flag-should not be waiting",!testProgress.isParallelWaiting()); + assertEquals("verify waiting flag-should not complete",testProgress.getParallelWaiting(),LearnerProgress.PARALLEL_WAITING_COMPLETE); assertEquals("verify temp completed activities",2,testProgress.getCurrentCompletedActivitiesList().size()); //progress from sub sequence(share resource) to sub sequence(QNA) testCompletedActivity = testProgress.getNextActivity(); testRootPreviousActivity = testProgress.getPreviousActivity(); testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertLearnerProgress(testRootPreviousActivity,TEST_SEQUENCE_ACTIVITY_UIID,TEST_SQNA_ACTIVITY_UIID,14,2,"SEQUENCE","QNA"); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); //progress sub sequence(QNA) to complete lesson testCompletedActivity = testProgress.getNextActivity(); testProgress = learnerService.calculateProgress(testCompletedActivity, - testUser.getUserId()); + testUser.getUserId(), + testProgress); assertTrue("verify lesson complete",testProgress.isLessonComplete()); assertEquals("verify temp completed activities",1,testProgress.getCurrentCompletedActivitiesList().size()); } Index: lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java =================================================================== diff -u -r08950e1090443c3423a3d1c587416a2fccd8bbdf -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java (.../TestDisplayActivityAction.java) (revision 08950e1090443c3423a3d1c587416a2fccd8bbdf) +++ lams_learning/test/java/org/lamsfoundation/lams/learning/web/action/TestDisplayActivityAction.java (.../TestDisplayActivityAction.java) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -103,6 +103,7 @@ //LearnerProgress progress = testBean.getLearnerProgress(); ParallelActivity parallelActivity= new ParallelActivity(); learnerProgress.setPreviousActivity(parallelActivity); + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_WAITING_COMPLETE); //testBean.setLearnerProgress(progress); httpSession.setAttribute(ActivityAction.LEARNER_PROGRESS_REQUEST_ATTRIBUTE,learnerProgress); @@ -152,7 +153,7 @@ { //setup the session bean to display parallel waiting. //LearnerProgress progress = testBean.getLearnerProgress(); - learnerProgress.setParallelWaiting(true); + learnerProgress.setParallelWaiting(LearnerProgress.PARALLEL_WAITING); //testBean.setLearnerProgress(progress); //httpSession.setAttribute(SessionBean.NAME,testBean); httpSession.setAttribute(ActivityAction.LEARNER_PROGRESS_REQUEST_ATTRIBUTE,learnerProgress); Index: lams_learning/web/optionsActivity.jsp =================================================================== diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -re023857e217082f46fd3235d5673129ffccf6ff4 --- lams_learning/web/optionsActivity.jsp (.../optionsActivity.jsp) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6) +++ lams_learning/web/optionsActivity.jsp (.../optionsActivity.jsp) (revision e023857e217082f46fd3235d5673129ffccf6ff4) @@ -116,6 +116,8 @@ + +