Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java =================================================================== diff -u -r3bfbf85ce0639b4cd2957e34a978a22da5e7d66f -r32fa56bf30fec05c4b2cf379518ec2551ed05780 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java (.../ComplexLearnerProgressAction.java) (revision 3bfbf85ce0639b4cd2957e34a978a22da5e7d66f) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java (.../ComplexLearnerProgressAction.java) (revision 32fa56bf30fec05c4b2cf379518ec2551ed05780) @@ -40,6 +40,8 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; +import org.lamsfoundation.lams.learning.service.ICoreLearnerService; +import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ComplexActivity; import org.lamsfoundation.lams.learningdesign.ParallelActivity; @@ -65,7 +67,7 @@ public class ComplexLearnerProgressAction extends Action { private static Logger log = Logger.getLogger(ComplexLearnerProgressAction.class); - + public ActionForward execute(ActionMapping mapping, ActionForm form, HttpServletRequest request, @@ -86,6 +88,7 @@ UserDTO user = (UserDTO) ss.getAttribute(AttributeNames.USER); if (activity.isOptionsActivity() || activity.isBranchingActivity()) { + HashMap startedMap = new HashMap(); HashMap urlMap = new HashMap(); @@ -99,9 +102,11 @@ List users = monitoringService.getLearnersHaveAttemptedActivity(a); startedMap.put(a.getActivityId(), ( users.contains(learner) ? true : false ) ); if (a.isSequenceActivity()) { + request.setAttribute("hasSequenceActivity", true); // map learner progress urls of each activity in the sequence - SequenceActivity sequenceActivity = (SequenceActivity)a; + // make sure have castable object, not a CGLIB class + SequenceActivity sequenceActivity = (SequenceActivity) monitoringService.getActivityById(a.getActivityId(), SequenceActivity.class); Set set = sequenceActivity.getActivities(); Iterator iterator = set.iterator(); while (iterator.hasNext()) {