Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java =================================================================== diff -u -r493680e80db51839c864498a72867965a89b56ff -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 493680e80db51839c864498a72867965a89b56ff) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) @@ -42,7 +42,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.authoring.service.IAuthoringService; -import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ChosenGrouping; import org.lamsfoundation.lams.learningdesign.ComplexActivity; @@ -131,7 +131,7 @@ private ILearningDesignDAO learningDesignDAO; private IGroupingDAO groupingDAO; private IAuthoringService authoringService; - private ILearnerService learnerService; + private ICoreLearnerService learnerService; private ILessonService lessonService; private ILamsCoreToolService lamsCoreToolService; private IUserManagementService userManagementService; @@ -186,7 +186,7 @@ * * @param learnerService */ - public void setLearnerService(ILearnerService learnerService) { + public void setLearnerService(ICoreLearnerService learnerService) { this.learnerService = learnerService; } /** @@ -882,6 +882,14 @@ ToolActivity toolActivity = (ToolActivity) activity; try { ToolSession toolSession = lamsCoreToolService.getToolSessionByActivity(learner,toolActivity); + if ( toolSession == null ) { + // grouped tool's tool session isn't created until the first user in the group reaches that + // point the tool session creation is normally triggered by LoadTooLActivityAction, so we need + // to do it here. Won't happen very often - normally another member of the group will have + // triggered the creation of the tool session. + learnerService.createToolSessionsIfNecessary(toolActivity,progress); + toolSession = lamsCoreToolService.getToolSessionByActivity(learner,toolActivity); + } learnerService.completeToolSession(toolSession.getToolSessionId(),new Long(learner.getUserId().longValue())); if ( log.isDebugEnabled()) { log.debug("Tool activity [" + activity.getActivityId() + "] is completed."); Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java =================================================================== diff -u -rd9c7ddef141d19423b6ab2914d153c2cb748f187 -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java (.../MonitoringServiceProxy.java) (revision d9c7ddef141d19423b6ab2914d153c2cb748f187) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java (.../MonitoringServiceProxy.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) @@ -26,7 +26,7 @@ import javax.servlet.ServletContext; -import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.springframework.web.context.WebApplicationContext; import org.springframework.web.context.support.WebApplicationContextUtils; @@ -63,9 +63,9 @@ * @param servletContext the servletContext for current application * @return learner service object. */ - public static final ILearnerService getLearnerService(ServletContext servletContext) + public static final ICoreLearnerService getLearnerService(ServletContext servletContext) { - return (ILearnerService)getDomainService(servletContext,"learnerService"); + return (ICoreLearnerService)getDomainService(servletContext,"learnerService"); } /** * Retrieve the proper Spring bean from bean factory. Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java =================================================================== diff -u -r843a5e9055e55f5069e0a26eb76ae76c1665814f -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java (.../GateAction.java) (revision 843a5e9055e55f5069e0a26eb76ae76c1665814f) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java (.../GateAction.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) @@ -34,7 +34,7 @@ import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; import org.apache.struts.action.DynaActionForm; -import org.lamsfoundation.lams.learning.service.ILearnerService; +import org.lamsfoundation.lams.learning.service.ICoreLearnerService; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.GateActivity; import org.lamsfoundation.lams.learningdesign.PermissionGateActivity; @@ -93,7 +93,7 @@ // private static Logger log = Logger.getLogger(GateAction.class); private IMonitoringService monitoringService; - private ILearnerService learnerService; + private ICoreLearnerService learnerService; //--------------------------------------------------------------------- // Class level constants - Struts forward //--------------------------------------------------------------------- Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java =================================================================== diff -u -r580e9bb194e76263d8a5ff2132d20dc1876010e8 -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 --- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision 580e9bb194e76263d8a5ff2132d20dc1876010e8) +++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) @@ -39,8 +39,6 @@ import org.apache.struts.action.ActionForm; import org.apache.struts.action.ActionForward; import org.apache.struts.action.ActionMapping; -import org.lamsfoundation.lams.learning.service.ILearnerService; -import org.lamsfoundation.lams.learning.service.LearnerServiceProxy; import org.lamsfoundation.lams.learning.web.util.LearningWebUtil; import org.lamsfoundation.lams.learningdesign.Activity; import org.lamsfoundation.lams.learningdesign.ChosenGrouping; Index: lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/web/TestMonitoringAction.java =================================================================== diff -u -rad683fcaeabe83c702b599c5c866bb7d30cd7191 -rc7dee7dd8e62e6480aaaa0e435eba63a650b84b3 --- lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/web/TestMonitoringAction.java (.../TestMonitoringAction.java) (revision ad683fcaeabe83c702b599c5c866bb7d30cd7191) +++ lams_monitoring/test/java/org/lamsfoundation/lams/monitoring/web/TestMonitoringAction.java (.../TestMonitoringAction.java) (revision c7dee7dd8e62e6480aaaa0e435eba63a650b84b3) @@ -76,8 +76,6 @@ super.setUp(); setConfigFile("/WEB-INF/struts/struts-config.xml"); setRequestPathInfo("/monitoring.do"); - - //learnerService = (ILearnerService)this.wac.getBean("learnerService"); } /*