Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java =================================================================== diff -u -rf3c5774bdde47710db6623e10f19bf677243b3ab -r9d52dc50a6a3f0cdbe6c390acef2c2bcdf590ed3 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision f3c5774bdde47710db6623e10f19bf677243b3ab) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/ILearnerService.java (.../ILearnerService.java) (revision 9d52dc50a6a3f0cdbe6c390acef2c2bcdf590ed3) @@ -58,6 +58,16 @@ * @throws LearnerServiceException in case of problems. */ public LearnerProgress getProgress(User learner, Lesson lesson); + + + /** + * Marks an activity as attempted. Called when a user selects an OptionsActivity. + * @param learner the Learner + * @param lesson the Lesson to get progress from. + * @param activity the activity being attempted. + * @return LearnerProgress + */ + public LearnerProgress chooseActivity(User learner, Lesson lesson, Activity activity); /** Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java =================================================================== diff -u -rf3c5774bdde47710db6623e10f19bf677243b3ab -r9d52dc50a6a3f0cdbe6c390acef2c2bcdf590ed3 --- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision f3c5774bdde47710db6623e10f19bf677243b3ab) +++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 9d52dc50a6a3f0cdbe6c390acef2c2bcdf590ed3) @@ -59,7 +59,7 @@ public LearnerProgress startLesson(User learner, Lesson lesson) throws ProgressException { //return ProgressEngine.startLesson(learner, lesson); - LearnerProgress learnerProgress = ProgressEngine.getStartPoint(learner, lesson); + LearnerProgress learnerProgress = new ProgressEngine().getStartPoint(learner, lesson); return learnerProgress; } @@ -76,7 +76,15 @@ return lessonDAO.getLearnerProgress(learner, lesson); } + + public LearnerProgress chooseActivity(User learner, Lesson lesson, Activity activity) { + LearnerProgress progress = lessonDAO.getLearnerProgress(learner, lesson); + progress.setProgressState(activity, LearnerProgress.ACTIVITY_ATTEMPTED); + learnerProgressDAO.saveLearnerProgress(progress); + return progress; + } + /** * Calculates learner progress and returns the data required to be displayed to the learner (including URL(s)). * @param completedActivityID identifies the activity just completed @@ -87,7 +95,7 @@ */ public LearnerProgress calculateProgress(Activity completedActivity, User learner, Lesson lesson) throws ProgressException { - return ProgressEngine.calculateProgress(learner, lesson, completedActivity); + return new ProgressEngine().calculateProgress(learner, lesson, completedActivity); } @@ -101,7 +109,7 @@ try { LearnerProgress nextLearnerProgress = calculateProgress(activity, learner, lesson); Activity nextActivity = nextLearnerProgress.getNextActivity(); - ActivityURL activityURL = Utils.generateActivityURL(nextActivity, nextLearnerProgress); + ActivityURL activityURL = Utils.getActivityURL(nextActivity, nextLearnerProgress); url = activityURL.getUrl(); } catch (ProgressException e) {