Index: lams_common/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -0,0 +1,344 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+package org.lamsfoundation.lams.monitoring.service;
+
+import java.util.Date;
+import java.util.List;
+import java.util.Map;
+
+import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.GroupingActivity;
+import org.lamsfoundation.lams.lesson.Lesson;
+import org.lamsfoundation.lams.lesson.service.LessonServiceException;
+import org.lamsfoundation.lams.tool.exception.LamsToolServiceException;
+import org.lamsfoundation.lams.usermanagement.Organisation;
+import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException;
+
+/**
+ * Interface defines all monitoring services needed by presentation tier.
+ *
+ * @author Jacky Fang 2/02/2005
+ * @author Manpreet Minhas
+ */
+public interface IMonitoringService {
+
+ /**
+ * Intialise lesson without creating Learning Design copy, i.e. the original LD will be used.
+ */
+ Lesson initializeLessonWithoutLDcopy(String lessonName, String lessonDescription, long learningDesignID, User user,
+ String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage, Boolean learnerPresenceAvailable,
+ Boolean learnerImAvailable, Boolean liveEditEnabled, Boolean enableLessonNotifications,
+ Boolean forceLearnerRestart, Boolean allowLearnerRestart, Boolean gradebookOnComplete,
+ Integer scheduledNumberDaysToLessonFinish, Lesson precedingLesson);
+
+ /**
+ *
+ * Create new lesson according to the learning design specified by the user. This involves following major steps:
+ *
+ *
+ * 1. Make a runtime copy of static learning design defined in authoring
+ * 2. Go through all the tool activities defined in the learning design, create a runtime copy of all tool's
+ * content.
+ *
+ *
+ * As a runtime design, it is not copied into any folder.
+ *
+ *
+ *
+ * The initialization process doesn't involve the setup of lesson class and organization.
+ *
+ *
+ * @param lessonName
+ * the name of the lesson
+ * @param lessonDescription
+ * the description of the lesson.
+ * @param learningDesignId
+ * the selected learning design
+ * @param organisationId
+ * the copied sequence will be put in the default runtime sequence folder for this org, if such a folder
+ * exists.
+ * @param userId
+ * the user who want to create this lesson.
+ * @param customCSV
+ * the custom comma separated values to be used by toolAdapters
+ * @param enableLessonIntro
+ * display an intro page to the lesson
+ * @param displayDesignImage
+ * display the design image or not
+ * @param enableNotifications
+ * enable "email notifications" link for the current lesson
+ * @param numberDaysToLessonFinish
+ * number of days the lesson will be available to user since he starts it. (lesson finish scheduling
+ * feature)
+ * @return the lesson initialized.
+ */
+ Lesson initializeLesson(String lessonName, String lessonDescription, long learningDesignId, Integer organisationId,
+ Integer userID, String customCSV, Boolean enableLessonIntro, Boolean displayDesignImage,
+ Boolean learnerPresenceAvailable, Boolean learnerImAvailable, Boolean liveEditEnabled,
+ Boolean enableNotifications, Boolean forceLearnerRestart, Boolean allowLearnerRestart,
+ Boolean gradebookOnComplete, Integer numberDaysToLessonFinish, Long precedingLessonId);
+
+ /**
+ * Create new lesson according to the learning design specified by the user, but for a preview session rather than a
+ * normal learning session. The design is not assigned to any workspace folder.
+ */
+ Lesson initializeLessonForPreview(String lessonName, String lessonDescription, long learningDesignId,
+ Integer userID, String customCSV, Boolean learnerPresenceAvailable, Boolean learnerImAvailable,
+ Boolean liveEditEnabled);
+
+ /**
+ * Setup the lesson class and organization for a lesson according to the input from monitoring GUI interface.
+ *
+ *
+ * Pre-condition: This method must be called under the condition of the the new lesson exists (without lesson
+ * class).
+ *
+ *
+ * A lesson class record should be inserted and organization should be setup after execution of this service.
+ *
+ *
+ * @param lessonId
+ * the lesson without lesson class and organization
+ * @param organisation
+ * the organization this lesson belongs to.
+ * @param learnerGroupName
+ * name of learner group
+ * @param organizationUsers
+ * a list of learner will be in this new lessons.
+ * @param staffGroupName
+ * name of staff group
+ * @param staffs
+ * a list of staffs who will be in charge of this lesson.
+ */
+ void createLessonClassForLesson(long lessonId, Organisation organisation, String learnerGroupName,
+ List organizationUsers, String staffGroupName, List staffs, Integer userID)
+ throws UserAccessDeniedException;
+
+ /**
+ * Start the specified the lesson. It must be created before calling this service.
+ *
+ * @param lessonId
+ * the specified the lesson id.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ * @throws LamsToolServiceException
+ * the exception occurred during the lams and tool interaction to start a lesson.
+ */
+ void startLesson(long lessonId, Integer userId) throws UserAccessDeniedException;
+
+ /**
+ * Do any normal initialisation needed for gates and branching. Done both when a lesson is started, or for new
+ * activities added during a Live Edit. Returns a new MaxID for the design if needed. If MaxID is returned, update
+ * the design with this new value and save the whole design (as initialiseSystemActivities has changed the design).
+ */
+ Integer startSystemActivity(Activity activity, Integer currentMaxId, Date lessonStartTime, String lessonName);
+
+ /**
+ * Start a lesson on scheduled datetime.
+ *
+ * @param lessonId
+ * @param startDate
+ * the lesson start date and time.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ * @see org.lamsfoundation.lams.monitoring.service#startLesson(long)
+ */
+ void startLessonOnSchedule(long lessonId, Date startDate, Integer userId) throws UserAccessDeniedException;
+
+ /**
+ * Finish a lesson on scheduled datetime based on days in the lesson runs for
+ *
+ * @param lessonId
+ * @param endDate
+ * number of days since lesson start when the lesson should be closed.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ */
+ void finishLessonOnSchedule(long lessonId, int scheduledNumberDaysToLessonFinish, Integer userId)
+ throws UserAccessDeniedException;
+
+ /**
+ * Finish a lesson on scheduled datetime.
+ *
+ * @param lessonId
+ * @param endDate
+ * number of days since lesson start when the lesson should be closed.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ */
+ void finishLessonOnSchedule(long lessonId, Date endDate, Integer userId)
+ throws UserAccessDeniedException;
+
+ /**
+ *
+ * Teachers sometimes find that there are just too many "old" designs and wish to remove them and never access them
+ * again. This function disables the lesson - it does not remove the contents from the database
+ *
+ *
+ * @param lessonId
+ * the specified the lesson id.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ */
+ void removeLesson(long lessonId, Integer userId) throws SecurityException;
+
+ /**
+ * Removes the lesson and all referenced resources (learning design, tool content etc.) from the database.
+ */
+ void removeLessonPermanently(long lessonId, Integer userId) throws SecurityException;
+
+ /**
+ * Return an activity object based on the requested id.
+ *
+ * @param activityId
+ * id of the activity.
+ * @return the requested activity object.
+ */
+ Activity getActivityById(Long activityId);
+
+ /**
+ * Return an activity object based on the requested id. Where possible, give it the type we want so that it can be
+ * cast properly.
+ *
+ * @param activityId
+ * id of the activity.
+ * @return the requested activity object.
+ */
+ @SuppressWarnings("rawtypes")
+ Activity getActivityById(Long activityId, Class clasz);
+
+ /**
+ * Return an activity object based on the requested id.
+ *
+ * @param activityId
+ * id of the activity.
+ * @return the requested activity object.
+ */
+ GroupingActivity getGroupingActivityById(Long activityID);
+
+ // ---------------------------------------------------------------------
+ // Preview Methods
+ // ---------------------------------------------------------------------
+ /**
+ * Create the lesson class and the staff class for a preview lesson. The lesson is not attached to any organisation.
+ *
+ * @param userID
+ * User ID of the teacher running the preview. Mandatory.
+ * @param lessonID
+ * ID of the lesson
+ */
+ abstract void createPreviewClassForLesson(int userID, long lessonID) throws UserAccessDeniedException;
+
+ /**
+ * Get all the users records where the user has attempted the given activity, but has not completed it yet. Uses the
+ * progress records to determine the users.
+ */
+ List getLearnersAttemptedActivity(Activity activity);
+
+ /**
+ * give the users in all tool sessions for an activity (if it is a tool activity) or it will give all the users who
+ * have attempted an activity that doesn't have any tool sessions, i.e. system activities such as branching.
+ */
+ List getLearnersAttemptedOrCompletedActivity(Activity activity) throws LessonServiceException;
+
+ /**
+ * Get learners who most recently entered finished the lesson.
+ */
+ List getLearnersLatestCompleted(Long lessonId, Integer limit, Integer offset);
+
+ /**
+ * Get learners whose first name, last name or login match any of the tokens from search phrase. Sorts either by
+ * name or, if orderByCompletion is set, by most progressed first. Used mainly by Learners tab in Monitoring
+ * interface.
+ */
+ List getLearnersByMostProgress(Long lessonId, String searchPhrase, Integer limit, Integer offset);
+
+ /**
+ * Get learners who most recently entered the activity.
+ */
+ List getLearnersLatestByActivity(Long activityId, Integer limit, Integer offset);
+
+ /**
+ * Get learners who are at the given activities at the moment.
+ */
+ List getLearnersByActivities(Long[] activityIds, Integer limit, Integer offset, boolean orderAscending);
+
+ /**
+ * Get number of learners whose first name, last name or login match any of the tokens from search phrase.
+ */
+ Integer getCountLearnersFromProgress(Long lessonId, String searchPhrase);
+
+ /**
+ * Get number of learners who are at the given activities at the moment.
+ */
+ Map getCountLearnersCurrentActivities(Long[] activityIds);
+
+ /**
+ * Get number of learners who finished the given lesson.
+ */
+ Integer getCountLearnersCompletedLesson(Long lessonId);
+
+ /** Get Organisation by organisationId */
+ Organisation getOrganisation(Integer organisationId);
+
+ /**
+ * Used in admin to clone lessons using the given lesson Ids (from another group) into the given group. Given staff
+ * and learner ids should already be members of the group.
+ *
+ * @param lessonIds
+ * @param addAllStaff
+ * @param addAllLearners
+ * @param staffIds
+ * @param learnerIds
+ * @param group
+ * @return number of lessons created.
+ * @throws MonitoringServiceException
+ */
+ int cloneLessons(String[] lessonIds, Boolean addAllStaff, Boolean addAllLearners, String[] staffIds,
+ String[] learnerIds, Organisation group) throws MonitoringServiceException;
+
+ /**
+ * Same as cloneLessons method, except it clones only one lesson.
+ *
+ * @param lessonId
+ * @param creatorId
+ * @param addAllStaff
+ * @param addAllLearners
+ * @param staffIds
+ * @param learnerIds
+ * @param group
+ * @return
+ * @throws MonitoringServiceException
+ */
+ Long cloneLesson(Long lessonId, Integer creatorId, Boolean addAllStaff, Boolean addAllLearners, String[] staffIds,
+ String[] learnerIds, Organisation group) throws MonitoringServiceException;
+
+ void removeLearnerContent(Long lessonId, Integer learnerId);
+
+ /**
+ * Get list of users who completed the given lesson.
+ */
+ List getUsersCompletedLesson(Long lessonId, Integer limit, Integer offset, boolean orderAscending);
+}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceException.java
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceException.java (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceException.java (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -0,0 +1,67 @@
+/****************************************************************
+ * Copyright (C) 2005 LAMS Foundation (http://lamsfoundation.org)
+ * =============================================================
+ * License Information: http://lamsfoundation.org/licensing/lams/2.0/
+ *
+ * This program is free software; you can redistribute it and/or modify
+ * it under the terms of the GNU General Public License version 2.0
+ * as published by the Free Software Foundation.
+ *
+ * This program is distributed in the hope that it will be useful,
+ * but WITHOUT ANY WARRANTY; without even the implied warranty of
+ * MERCHANTABILITY or FITNESS FOR A PARTICULAR PURPOSE. See the
+ * GNU General Public License for more details.
+ *
+ * You should have received a copy of the GNU General Public License
+ * along with this program; if not, write to the Free Software
+ * Foundation, Inc., 51 Franklin Street, Fifth Floor, Boston, MA 02110-1301
+ * USA
+ *
+ * http://www.gnu.org/licenses/gpl.txt
+ * ****************************************************************
+ */
+
+
+package org.lamsfoundation.lams.monitoring.service;
+
+/**
+ * Runtime exception that wraps the error condition occurred at monitoring
+ * side.
+ *
+ * @author Jacky Fang
+ * @since 2005-4-14
+ * @version 1.1
+ *
+ */
+public class MonitoringServiceException extends RuntimeException {
+
+ /**
+ *
+ */
+ public MonitoringServiceException() {
+ super();
+ }
+
+ /**
+ * @param message
+ */
+ public MonitoringServiceException(String message) {
+ super(message);
+ }
+
+ /**
+ * @param cause
+ */
+ public MonitoringServiceException(Throwable cause) {
+ super(cause);
+ }
+
+ /**
+ * @param message
+ * @param cause
+ */
+ public MonitoringServiceException(String message, Throwable cause) {
+ super(message, cause);
+ }
+
+}
Index: lams_gradebook/.classpath
===================================================================
diff -u -rf4502360cd44d86d57b095aea5aef7ce663c8b61 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_gradebook/.classpath (.../.classpath) (revision f4502360cd44d86d57b095aea5aef7ce663c8b61)
+++ lams_gradebook/.classpath (.../.classpath) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -4,7 +4,6 @@
-
Index: lams_learning/.classpath
===================================================================
diff -u -rb9b153e3351a6d26dea64756388f144ce8b1ae51 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_learning/.classpath (.../.classpath) (revision b9b153e3351a6d26dea64756388f144ce8b1ae51)
+++ lams_learning/.classpath (.../.classpath) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -20,7 +20,6 @@
-
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/command/CommandWebsocketServer.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_learning/src/java/org/lamsfoundation/lams/learning/command/CommandWebsocketServer.java (.../CommandWebsocketServer.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/command/CommandWebsocketServer.java (.../CommandWebsocketServer.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -18,8 +18,6 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.learning.command.model.Command;
import org.lamsfoundation.lams.learning.service.ILearnerFullService;
-import org.lamsfoundation.lams.learning.service.ILearnerService;
-import org.lamsfoundation.lams.learning.service.LearnerService;
import org.lamsfoundation.lams.util.hibernate.HibernateSessionManager;
import org.lamsfoundation.lams.web.session.SessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
Index: lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_learning/src/java/org/lamsfoundation/lams/learning/service/LearnerService.java (.../LearnerService.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -52,7 +52,6 @@
import org.lamsfoundation.lams.learningdesign.BranchingActivity;
import org.lamsfoundation.lams.learningdesign.ComplexActivity;
import org.lamsfoundation.lams.learningdesign.ConditionGateActivity;
-import org.lamsfoundation.lams.learningdesign.DataFlowObject;
import org.lamsfoundation.lams.learningdesign.GateActivity;
import org.lamsfoundation.lams.learningdesign.Group;
import org.lamsfoundation.lams.learningdesign.GroupUser;
@@ -67,7 +66,6 @@
import org.lamsfoundation.lams.learningdesign.ToolBranchingActivity;
import org.lamsfoundation.lams.learningdesign.Transition;
import org.lamsfoundation.lams.learningdesign.dao.IActivityDAO;
-import org.lamsfoundation.lams.learningdesign.dao.IDataFlowDAO;
import org.lamsfoundation.lams.learningdesign.dao.IGroupUserDAO;
import org.lamsfoundation.lams.learningdesign.dao.IGroupingDAO;
import org.lamsfoundation.lams.learningdesign.dto.ActivityPositionDTO;
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/CloseScheduleGateJob.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/CloseScheduleGateJob.java (.../CloseScheduleGateJob.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/CloseScheduleGateJob.java (.../CloseScheduleGateJob.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -27,7 +27,7 @@
import java.util.Map;
import org.apache.log4j.Logger;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -37,7 +37,6 @@
*
* @author Jacky Fang
* @since 2005-4-12
- * @version 1.1
*/
public class CloseScheduleGateJob extends MonitoringJob {
@@ -51,7 +50,7 @@
*/
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
- IMonitoringService monitoringService = getMonitoringService(context);
+ IMonitoringFullService monitoringService = getMonitoringService(context);
//getting gate id set from scheduler
Map properties = context.getJobDetail().getJobDataMap();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/EmailScheduleMessageJob.java
===================================================================
diff -u -r6f214206866d2d5d96d2c98655707c7588402aef -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/EmailScheduleMessageJob.java (.../EmailScheduleMessageJob.java) (revision 6f214206866d2d5d96d2c98655707c7588402aef)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/EmailScheduleMessageJob.java (.../EmailScheduleMessageJob.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -29,7 +29,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.events.IEventNotificationService;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.usermanagement.User;
import org.lamsfoundation.lams.util.hibernate.HibernateSessionManager;
import org.lamsfoundation.lams.web.util.AttributeNames;
@@ -51,7 +51,7 @@
@SuppressWarnings("rawtypes")
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
- IMonitoringService monitoringService = getMonitoringService(context);
+ IMonitoringFullService monitoringService = getMonitoringService(context);
IEventNotificationService eventNotificationService = getEventNotificationService(context);
Map properties = context.getJobDetail().getJobDataMap();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/FinishScheduleLessonJob.java
===================================================================
diff -u -r621f712588dcf37f4bc18add622143483cdfc267 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/FinishScheduleLessonJob.java (.../FinishScheduleLessonJob.java) (revision 621f712588dcf37f4bc18add622143483cdfc267)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/FinishScheduleLessonJob.java (.../FinishScheduleLessonJob.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -28,7 +28,7 @@
import org.apache.log4j.Logger;
import org.lamsfoundation.lams.monitoring.MonitoringConstants;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -40,7 +40,7 @@
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
- IMonitoringService monitoringService = getMonitoringService(context);
+ IMonitoringFullService monitoringService = getMonitoringService(context);
//getting gate id set from scheduler
Map properties = context.getJobDetail().getJobDataMap();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java
===================================================================
diff -u -r8714ac689fdad46746bbb7f28005ec080d1d4ba6 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java (.../MonitoringJob.java) (revision 8714ac689fdad46746bbb7f28005ec080d1d4ba6)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/MonitoringJob.java (.../MonitoringJob.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -25,7 +25,7 @@
package org.lamsfoundation.lams.monitoring.quartz.job;
import org.lamsfoundation.lams.events.IEventNotificationService;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
import org.quartz.SchedulerContext;
@@ -52,8 +52,8 @@
}
}
- protected IMonitoringService getMonitoringService(JobExecutionContext context) throws JobExecutionException {
- return (IMonitoringService) getService(context, MonitoringJob.MONITORING_SERVICE_NAME);
+ protected IMonitoringFullService getMonitoringService(JobExecutionContext context) throws JobExecutionException {
+ return (IMonitoringFullService) getService(context, MonitoringJob.MONITORING_SERVICE_NAME);
}
protected IEventNotificationService getEventNotificationService(JobExecutionContext context)
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/OpenScheduleGateJob.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/OpenScheduleGateJob.java (.../OpenScheduleGateJob.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/quartz/job/OpenScheduleGateJob.java (.../OpenScheduleGateJob.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -27,7 +27,7 @@
import java.util.Map;
import org.apache.log4j.Logger;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.quartz.JobExecutionContext;
import org.quartz.JobExecutionException;
@@ -37,7 +37,6 @@
*
* @author Jacky Fang
* @since 2005-4-12
- * @version 1.1
*
*/
public class OpenScheduleGateJob extends MonitoringJob {
@@ -52,7 +51,7 @@
*/
@Override
protected void executeInternal(JobExecutionContext context) throws JobExecutionException {
- IMonitoringService monitoringService = getMonitoringService(context);
+ IMonitoringFullService monitoringService = getMonitoringService(context);
//getting gate id set from scheduler
Map properties = context.getJobDetail().getJobDataMap();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java
===================================================================
diff -u
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java (revision 0)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringFullService.java (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -0,0 +1,363 @@
+package org.lamsfoundation.lams.monitoring.service;
+
+import java.io.IOException;
+import java.util.Collection;
+import java.util.Date;
+import java.util.LinkedHashMap;
+import java.util.List;
+import java.util.Set;
+import java.util.SortedSet;
+
+import org.lamsfoundation.lams.events.EmailNotificationArchive;
+import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.GateActivity;
+import org.lamsfoundation.lams.learningdesign.Group;
+import org.lamsfoundation.lams.lesson.LearnerProgress;
+import org.lamsfoundation.lams.lesson.service.LessonServiceException;
+import org.lamsfoundation.lams.monitoring.dto.ContributeActivityDTO;
+import org.lamsfoundation.lams.tool.exception.LamsToolServiceException;
+import org.lamsfoundation.lams.usermanagement.User;
+import org.lamsfoundation.lams.usermanagement.exception.UserAccessDeniedException;
+import org.lamsfoundation.lams.util.ExcelCell;
+import org.lamsfoundation.lams.util.MessageService;
+
+/**
+ * Contains methods intended for internal usage by lams_monitoring.
+ *
+ * @author Andrey Balan
+ */
+public interface IMonitoringFullService extends IMonitoringService {
+
+ /** Get the message service, which gives access to the I18N text */
+ MessageService getMessageService();
+
+ /**
+ * Set whether or not the learner presence button is available in monitor. Checks that the user is a staff member of
+ * this lesson before updating.
+ *
+ * @param lessonId
+ * @param userId
+ * @param learnerPresenceAvailable
+ * @return new value for learnerPresenceAvailable. Normally will be same as input parameter, will only be different
+ * if the value cannot be updated for some reason.
+ */
+ Boolean togglePresenceAvailable(long lessonId, Integer userId, Boolean learnerPresenceAvailable);
+
+ /**
+ * Set whether or not the learner IM button is available in monitor. Checks that the user is a staff member of this
+ * lesson before updating.
+ *
+ * @param lessonId
+ * @param userId
+ * @param learnerImPresenceAvailable
+ * @return new value for learnerPresenceImAvailable. Normally will be same as input parameter, will only be
+ * different if the value cannot be updated for some reason.
+ */
+ Boolean togglePresenceImAvailable(long lessonId, Integer userId, Boolean learnerPresenceImAvailable);
+
+ /**
+ * Set whether or not the live edit is available in monitor. Checks that the user is a staff member of this lesson
+ * before updating.
+ *
+ * @param lessonId
+ * @param userId
+ * @param liveEditEnabled
+ * @return new value for liveEditEnabled. Normally will be same as input parameter, will only be different if the
+ * value cannot be updated for some reason.
+ */
+ Boolean toggleLiveEditEnabled(long lessonId, Integer userId, Boolean liveEditEnabled);
+
+ /** Set whether or not to display the gradebook activity scores at the end of a lesson */
+ Boolean toggleGradebookOnComplete(long lessonId, Integer userId, Boolean gradebookOnComplete);
+
+ String forceCompleteActivitiesByUser(Integer learnerId, Integer requesterId, long lessonId, Long activityId,
+ boolean removeLearnerContent);
+
+ /**
+ * Archive the specified lesson. When archived, the data is retained but the learners cannot access the details.
+ *
+ * @param lessonId
+ * the specified the lesson id.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ */
+ void archiveLesson(long lessonId, Integer userId) throws UserAccessDeniedException;
+
+ /**
+ * Unarchive the specified the lesson. Reverts back to its previous state.
+ *
+ * @param lessonId
+ * the specified the lesson id.
+ */
+ void unarchiveLesson(long lessonId, Integer userId);
+
+ /**
+ * Suspend lesson now! A lesson can only be suspended if it is started. The purpose of suspending is to hide the lesson from learners
+ * temporarily.
+ *
+ * @param lessonId
+ * the lesson ID which will be suspended.
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ * @param clearScheduleDetails
+ * should it remove any triggers set up to suspend the lesson and clear the schedule date field. true if user suspending right now,
+ * false if this is being called by the trigger
+ */
+ void suspendLesson(long lessonId, Integer userId, boolean removeTriggers) throws UserAccessDeniedException;
+
+ /**
+ * Unsuspend a lesson, which state must be Lesson.SUSPEND_STATE. Returns the lesson back to its previous state.
+ * Otherwise an exception will be thrown.
+ *
+ * @param lessonId
+ * @param userId
+ * checks that the user is a staff member for this lesson
+ */
+ void unsuspendLesson(long lessonId, Integer userId) throws UserAccessDeniedException;
+
+
+ /**
+ * Set the gate to open to let all the learners through. This learning service is triggerred by the system
+ * scheduler. Will return true GateActivity (or subclass) object, rather than a hibernate proxy. This is needed so
+ * that the class can be returned to the web layer for proper handling.
+ *
+ * @param gate
+ * the id of the gate we need to open.
+ */
+ GateActivity openGate(Long gateId);
+
+ /**
+ * Allows a single learner to pass the gate.
+ *
+ * @param gateId
+ * @param userId
+ * @return
+ */
+ GateActivity openGateForSingleUser(Long gateId, Integer[] userIds);
+
+ /**
+ * Set the gate to closed.
+ *
+ * @param gate
+ * the id of the gate we need to close.
+ */
+ GateActivity closeGate(Long gateId);
+
+ /** Update the schedule gate date/time */
+ GateActivity scheduleGate(Long gateId, Date schedulingDatetime, Integer userId);
+
+ /**
+ * Returns users by search type criteria. It's sorted by first and last user names.
+ *
+ * @param searchType
+ * one of 11 constants from MonitoringConstants
defining search type
+ * @param lessonId
+ * @param lessonIds
+ * @param activityId
+ * @param xDaystoFinish
+ * @param orgId
+ * @return
+ */
+ Collection getUsersByEmailNotificationSearchType(int searchType, Long lessonId, String[] lessonIds,
+ Long activityId, Integer xDaystoFinish, Integer orgId);
+
+ /**
+ * This method returns the url associated with the activity in the monitoring enviornment. This is the URL that
+ * opens up when the user/teacher clicks on the activity in the monitoring enviornment and then selects a learner OR
+ * in the LEARNER tab when a learner's activity is clicked.
+ *
+ * This is also known as the learner progress url.
+ *
+ * @param lessonID
+ * The lesson_id of the Lesson for which the information has to be fetched.
+ * @param activityID
+ * The activity_id of the activity for which the URL is required
+ * @param learnerID
+ * The user_id of the Learner for whom the URL is being fetched
+ * @param requesterID
+ * The user_id of the user who is requesting the url
+ * @throws IOException
+ * @throws LamsToolServiceException
+ */
+ String getLearnerActivityURL(Long lessonID, Long activityID, Integer learnerUserID, Integer requestingUserId)
+ throws IOException, LamsToolServiceException;
+
+ /**
+ * This method returns the monitor url for the given activity
+ *
+ * @param lessonID
+ * The lesson_id of the Lesson for which the information has to be fetched.
+ * @param activityID
+ * The activity_id of the Activity whose URL will be returned
+ * @param userID
+ * The user id of the user requesting the url.
+ * @throws IOException
+ */
+ String getActivityMonitorURL(Long lessonID, Long activityID, String contentFolderID, Integer userID)
+ throws IOException, LamsToolServiceException;
+
+ /* Supports the Chosen Groupings and Branching */
+ /**
+ * Get all the active learners in the lesson who are not in a group or in a branch.
+ *
+ * If the activity is a grouping activity, then set useCreatingGrouping = true to base the list on the create
+ * grouping. Otherwise leave it false and it will use the grouping applied to the activity - this is used for
+ * branching activities.
+ *
+ * @param activityID
+ * @param lessonID
+ * @param useCreateGrouping
+ * true/false for GroupingActivities, always false for non-GroupingActivities
+ * @return Sorted set of Users, sorted by surname
+ */
+ SortedSet getClassMembersNotGrouped(Long lessonID, Long activityID, boolean useCreateGrouping);
+
+ /**
+ * Add a new group to a grouping activity. If name already exists or the name is blank, does not add a new group. If
+ * the activity is a grouping activity, then set useCreatingGrouping = true to base the list on the create grouping.
+ * Otherwise leave it false and it will use the grouping applied to the activity - this is used for branching
+ * activities.
+ *
+ * If it is a teacher chosen branching activity and the grouping doesn't exist, it creates one.
+ *
+ * @param activityID
+ * id of the grouping activity
+ * @param name
+ * group name
+ * @throws LessonServiceException
+ * , MonitoringServiceException
+ */
+ abstract Group addGroup(Long activityID, String name, boolean overrideMaxNumberOfGroups)
+ throws LessonServiceException, MonitoringServiceException;
+
+ /**
+ * Remove a group to from a grouping activity. If the group does not exists then nothing happens. If the group is
+ * already used (e.g. a tool session exists) then it throws a LessonServiceException.
+ *
+ * If the activity is a grouping activity, then set useCreatingGrouping = true to base the list on the create
+ * grouping. Otherwise leave it false and it will use the grouping applied to the activity - this is used for
+ * branching activities.
+ *
+ * If it is a teacher chosen branching activity and the grouping doesn't exist, it creates one.
+ *
+ * @param activityID
+ * id of the grouping activity
+ * @param name
+ * group name
+ * @throws LessonServiceException
+ **/
+ abstract void removeGroup(Long activityID, Long groupID) throws LessonServiceException;
+
+ /**
+ * Add learners to a group. Doesn't necessarily check if the user is already in another group.
+ */
+ abstract void addUsersToGroup(Long activityID, Long groupID, String learnerIDs[]) throws LessonServiceException;
+
+ /**
+ * Add learners to a group based on their logins. Doesn't necessarily check if the user is already in another group.
+ */
+ abstract int addUsersToGroupByLogins(Long activityID, String groupName, Set logins) throws LessonServiceException;
+
+ /**
+ * Remove a user to a group. If the user is not in the group, then nothing is changed.
+ *
+ * @throws LessonServiceException
+ */
+ abstract void removeUsersFromGroup(Long activityID, Long groupID, String learnerIDs[])
+ throws LessonServiceException;
+
+ /**
+ * Creates groups for branches, if they do not already exist.
+ */
+ void createChosenBranchingGroups(Long branchingActivityID);
+
+ /**
+ * Remove learners from a branch. Assumes there should only be one group for this branch. Use for Teacher Chosen
+ * Branching. Don't use for Group Based Branching as there could be more than one group for the branch.
+ *
+ * @param sequenceActivityID
+ * Activity id of the sequenceActivity representing this branch
+ * @param learnerIDs
+ * the IDS of the learners to be added.
+ */
+ void removeUsersFromBranch(Long sequenceActivityID, String learnerIDs[]) throws LessonServiceException;
+
+ /**
+ * Has anyone started this branch / branching activity ? Irrespective of the groups. Used to determine if a branch
+ * mapping can be removed.
+ */
+ boolean isActivityAttempted(Activity activity) throws LessonServiceException;
+
+ /**
+ * Match group(s) to a branch. Doesn't necessarily check if the group is already assigned to another branch. Use for
+ * Group Based Branching.
+ *
+ * @param sequenceActivityID
+ * Activity id of the sequenceActivity representing this branch
+ * @param learnerIDs
+ * the IDS of the learners to be added.
+ */
+ void addGroupToBranch(Long sequenceActivityID, String groupIDs[]) throws LessonServiceException;
+
+ /**
+ * Remove group / branch mapping. Cannot be done if any users in the group have started the branch. Used for group
+ * based branching in define later.
+ *
+ * @param sequenceActivityID
+ * Activity id of the sequenceActivity representing this branch
+ * @param learnerIDs
+ * the IDS of the learners to be added.
+ */
+ void removeGroupFromBranch(Long sequenceActivityID, String groupIDs[]) throws LessonServiceException;
+
+ /**
+ * Get all the groups that exist for the related grouping activity that have not been allocated to a branch.
+ *
+ * @param branchingActivityID
+ * Activity id of the branchingActivity
+ */
+ SortedSet getGroupsNotAssignedToBranch(Long branchingActivityID) throws LessonServiceException;
+
+ /**
+ * Generate an email containing the progress details for individual activities in a lesson.
+ *
+ * @return String[] {subject, email body}
+ */
+ String[] generateLessonProgressEmail(Long lessonId, Integer userId);
+
+ /**
+ * Save information about an email notification sent to learners.
+ */
+ void archiveEmailNotification(Integer organisationId, Long lessonId, Integer searchType, String body,
+ Set recipients);
+
+ /**
+ * Gets archived notifications for the given organisation.
+ */
+ List getArchivedEmailNotifications(Integer organisationId);
+
+ /**
+ * Gets archived notifications for the given lesson.
+ */
+ List getArchivedEmailNotifications(Long lessonId);
+
+ /**
+ * Gets pages recipients of the given archived email notification.
+ */
+ List getArchivedEmailNotificationRecipients(Long emailNotificationUid, Integer limit, Integer offset);
+
+ /**
+ * Exports the given email notification to Excel sheet
+ */
+ LinkedHashMap exportArchivedEmailNotification(Long emailNotificationUid);
+
+ /**
+ * Set a groups name
+ */
+ void setGroupName(Long groupID, String name);
+
+ /** Get the record of the learner's progress for a particular lesson */
+ LearnerProgress getLearnerProgress(Integer learnerId, Long lessonId);
+
+ List getAllContributeActivityDTO(Long lessonID);
+}
Fisheye: Tag 4338c54ef39ccdab47dc95d28deec40f23059633 refers to a dead (removed) revision in file `lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/IMonitoringService.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringService.java (.../MonitoringService.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -785,8 +785,25 @@
return newMaxId;
}
- @Override
- public ScheduleGateActivity runGateScheduler(ScheduleGateActivity scheduleGate, Date schedulingStartTime,
+ /**
+ *
+ * Runs the system scheduler to start the scheduling for opening gate and closing gate. It invlovs a couple of steps
+ * to start the scheduler:
+ *
+ * 1. Initialize the resource needed by scheduling job by setting them into the job data map.
+ * 2. Create customized triggers for the scheduling.
+ * 3. start the scheduling job
+ *
+ * @param scheduleGate
+ * the gate that needs to be scheduled.
+ * @param schedulingStartTime
+ * the time on which the gate open should be based if an offset is used. For starting a lesson, this is
+ * the lessonStartTime. For live edit, it is now.
+ * @param lessonName
+ * the name lesson incorporating this gate - used for the description of the Quartz job. Optional.
+ * @returns An updated gate, that should be saved by the calling code.
+ */
+ private ScheduleGateActivity runGateScheduler(ScheduleGateActivity scheduleGate, Date schedulingStartTime,
String lessonName) {
if (MonitoringService.log.isDebugEnabled()) {
MonitoringService.log.debug("Running scheduler for gate " + scheduleGate.getActivityId() + "...");
@@ -904,12 +921,6 @@
}
return gateActivity;
}
-
- public void finishLesson(long lessonId, Integer userId) {
- securityService.isLessonMonitor(lessonId, userId, "finish lesson", true);
- Lesson requestedLesson = lessonDAO.getLesson(new Long(lessonId));
- setLessonState(requestedLesson, Lesson.FINISHED_STATE);
- }
@Override
public void archiveLesson(long lessonId, Integer userId) {
Fisheye: Tag 4338c54ef39ccdab47dc95d28deec40f23059633 refers to a dead (removed) revision in file `lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceException.java'.
Fisheye: No comparison available. Pass `N' to diff?
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java (.../MonitoringServiceProxy.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/service/MonitoringServiceProxy.java (.../MonitoringServiceProxy.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -55,8 +55,8 @@
* the servletContext for current application
* @return monitoring service object.
*/
- public static final IMonitoringService getMonitoringService(ServletContext servletContext) {
- return (IMonitoringService) MonitoringServiceProxy.getDomainService(servletContext, "monitoringService");
+ public static final IMonitoringFullService getMonitoringService(ServletContext servletContext) {
+ return (IMonitoringFullService) MonitoringServiceProxy.getDomainService(servletContext, "monitoringService");
}
/**
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/BranchingAction.java (.../BranchingAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -47,6 +47,7 @@
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.monitoring.dto.BranchDTO;
import org.lamsfoundation.lams.monitoring.dto.BranchingDTO;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.User;
@@ -88,7 +89,7 @@
long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
long activityId = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
BranchingActivity activity = (BranchingActivity) monitoringService.getActivityById(activityId,
BranchingActivity.class);
@@ -165,7 +166,7 @@
* @return String of xml with all needed language elements
*/
protected String getLanguageXML() {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
MessageService messageService = monitoringService.getMessageService();
ArrayList languageCollection = new ArrayList();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java (.../ComplexLearnerProgressAction.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/ComplexLearnerProgressAction.java (.../ComplexLearnerProgressAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -47,6 +47,7 @@
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.lesson.LearnerProgress;
import org.lamsfoundation.lams.monitoring.dto.ContributeActivityDTO;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
@@ -56,10 +57,6 @@
/**
* @author jliew
- *
- *
- *
- *
*/
public class ComplexLearnerProgressAction extends Action {
@@ -73,7 +70,7 @@
Long lessonID = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, false);
Integer userID = WebUtil.readIntParam(request, AttributeNames.PARAM_USER_ID, false);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Activity activity = monitoringService.getActivityById(activityID);
@@ -197,7 +194,7 @@
* @param parentContributeActivityDTO
* @throws IOException
*/
- private void processSequenceChildren(Long lessonID, Integer userID, IMonitoringService monitoringService,
+ private void processSequenceChildren(Long lessonID, Integer userID, IMonitoringFullService monitoringService,
UserDTO user, HashMap statusMap, HashMap urlMap, LearnerProgress learnerProgress,
SequenceActivity sequenceActivity, ContributeActivityDTO parentContributeActivityDTO,
List subActivities) throws IOException {
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java (.../EmailNotificationsAction.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailNotificationsAction.java (.../EmailNotificationsAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -59,6 +59,7 @@
import org.lamsfoundation.lams.monitoring.MonitoringConstants;
import org.lamsfoundation.lams.monitoring.dto.EmailScheduleMessageJobDTO;
import org.lamsfoundation.lams.monitoring.quartz.job.EmailScheduleMessageJob;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.security.ISecurityService;
@@ -156,7 +157,7 @@
return null;
}
- IMonitoringService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
+ IMonitoringFullService monitoringService = MonitoringServiceProxy.getMonitoringService(getServlet().getServletContext());
// getting the organisation
Organisation org = monitoringService.getOrganisation(orgId);
@@ -254,7 +255,7 @@
*/
public ActionForward showArchivedEmails(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException, SchedulerException {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID, true);
boolean isLessonNotifications = (lessonId != null);
@@ -287,7 +288,7 @@
public ActionForward getArchivedRecipients(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws JSONException, IOException {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Long emailNotificationUid = WebUtil.readLongParam(request, "emailNotificationUid");
@@ -356,7 +357,7 @@
boolean isLessonNotifications = (lessonId != null);
Integer organisationId = WebUtil.readIntParam(request, AttributeNames.PARAM_ORGANISATION_ID, true);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
getUserManagementService();
Scheduler scheduler = getScheduler();
@@ -419,7 +420,7 @@
*/
public ActionForward exportArchivedNotification(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Long emailNotificationUid = WebUtil.readLongParam(request, "emailNotificationUid");
@@ -465,7 +466,7 @@
public ActionForward emailUsers(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws IOException, ServletException, JSONException {
JSONObject JSONObject = new JSONObject();
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
String emailBody = WebUtil.readStrParam(request, "emailBody");
@@ -579,7 +580,7 @@
}
}
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
int searchType = (Integer) map.get("searchType");
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailProgressAction.java
===================================================================
diff -u -r8714ac689fdad46746bbb7f28005ec080d1d4ba6 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailProgressAction.java (.../EmailProgressAction.java) (revision 8714ac689fdad46746bbb7f28005ec080d1d4ba6)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/EmailProgressAction.java (.../EmailProgressAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -44,7 +44,7 @@
import org.apache.tomcat.util.json.JSONObject;
import org.lamsfoundation.lams.events.IEventNotificationService;
import org.lamsfoundation.lams.monitoring.quartz.job.EmailProgressMessageJob;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.security.ISecurityService;
import org.lamsfoundation.lams.usermanagement.dto.UserDTO;
import org.lamsfoundation.lams.util.DateUtil;
@@ -77,7 +77,7 @@
private static final String JOB_PREFIX_NAME = "emailProgressMessageJob:";
private static IEventNotificationService eventNotificationService;
- private static IMonitoringService monitoringService;
+ private static IMonitoringFullService monitoringService;
private static ISecurityService securityService;
// ---------------------------------------------------------------------
@@ -294,11 +294,11 @@
return eventNotificationService;
}
- private IMonitoringService getMonitoringService() {
+ private IMonitoringFullService getMonitoringService() {
if (EmailProgressAction.monitoringService == null) {
WebApplicationContext ctx = WebApplicationContextUtils
.getRequiredWebApplicationContext(getServlet().getServletContext());
- EmailProgressAction.monitoringService = (IMonitoringService) ctx.getBean("monitoringService");
+ EmailProgressAction.monitoringService = (IMonitoringFullService) ctx.getBean("monitoringService");
}
return EmailProgressAction.monitoringService;
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java
===================================================================
diff -u -rcad6ecebe29a61651bdf8c7500a6a17471c65970 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java (.../GateAction.java) (revision cad6ecebe29a61651bdf8c7500a6a17471c65970)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GateAction.java (.../GateAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -52,7 +52,7 @@
import org.lamsfoundation.lams.learningdesign.ScheduleGateActivity;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.ILessonService;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceException;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.User;
@@ -87,7 +87,7 @@
// ---------------------------------------------------------------------
// private static Logger log = Logger.getLogger(GateAction.class);
- private IMonitoringService monitoringService;
+ private IMonitoringFullService monitoringService;
private ILearnerService learnerService;
private ILessonService lessonService;
// ---------------------------------------------------------------------
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupBasedBranchingAJAXAction.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupBasedBranchingAJAXAction.java (.../GroupBasedBranchingAJAXAction.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupBasedBranchingAJAXAction.java (.../GroupBasedBranchingAJAXAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -41,6 +41,7 @@
import org.lamsfoundation.lams.learningdesign.Group;
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
import org.lamsfoundation.lams.lesson.service.LessonServiceException;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.util.WebUtil;
@@ -53,21 +54,9 @@
*
*
* @author Fiona Malikoff
- *
- *
- *
- *
- *
- *
- *
- *
- *
- *
*/
public class GroupBasedBranchingAJAXAction extends BranchingAction {
- //---------------------------------------------------------------------
-
private static final String GROUPED_SELECTION_SCREEN = "groupedSelection";
public static final String PARAM_BRANCH_ID = "branchID";
public static final String PARAM_MAY_DELETE = "mayDelete";
@@ -84,7 +73,7 @@
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
BranchingActivity activity = (BranchingActivity) monitoringService.getActivityById(activityID,
BranchingActivity.class);
@@ -123,7 +112,7 @@
// get the branching data and sort it.
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
BranchingActivity activity = (BranchingActivity) monitoringService.getActivityById(activityID);
@@ -175,7 +164,7 @@
// get the grouping data and sort it.
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
SortedSet groups = monitoringService.getGroupsNotAssignedToBranch(activityID);
String groupOutput = buildGroupString(groups);
@@ -195,7 +184,7 @@
HttpServletResponse response) throws IOException, ServletException {
Long branchID = WebUtil.readLongParam(request, PARAM_BRANCH_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
SequenceActivity branch = (SequenceActivity) monitoringService.getActivityById(branchID);
@@ -245,7 +234,7 @@
if (groups != null) {
String[] groupsSplit = groups.split(",");
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
monitoringService.addGroupToBranch(branchID, groupsSplit);
}
@@ -270,7 +259,7 @@
if (groups != null) {
String[] groupsSplit = groups.split(",");
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
monitoringService.removeGroupFromBranch(branchID, groupsSplit);
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java
===================================================================
diff -u -rf4502360cd44d86d57b095aea5aef7ce663c8b61 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision f4502360cd44d86d57b095aea5aef7ce663c8b61)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingAJAXAction.java (.../GroupingAJAXAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -51,6 +51,7 @@
import org.lamsfoundation.lams.learningdesign.Grouping;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.lesson.service.LessonServiceException;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.security.ISecurityService;
@@ -79,8 +80,6 @@
*/
public class GroupingAJAXAction extends LamsDispatchAction {
- // ---------------------------------------------------------------------
-
private static final String CHOSEN_GROUPING_SCREEN = "chosenGrouping";
private static final String VIEW_GROUPS_SCREEN = "viewGroups";
private static final String PARAM_ACTIVITY_TITLE = "title";
@@ -112,7 +111,7 @@
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
Long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Activity activity = monitoringService.getActivityById(activityID);
@@ -222,7 +221,7 @@
String[] members = StringUtils.isBlank(membersParam) ? null : membersParam.split(",");
// remove users from current group
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
if (members != null) {
Activity activity = monitoringService.getActivityById(activityID);
@@ -303,7 +302,7 @@
*/
public ActionForward saveAsCourseGrouping(ActionMapping mapping, ActionForm form, HttpServletRequest request,
HttpServletResponse response) throws JSONException, IOException {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
IUserManagementService userManagementService = MonitoringServiceProxy
.getUserManagementService(getServlet().getServletContext());
@@ -362,7 +361,7 @@
if (LamsDispatchAction.log.isDebugEnabled()) {
LamsDispatchAction.log.debug("Renaming group " + groupID + " to \"" + name + "\"");
}
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
monitoringService.setGroupName(groupID, name);
}
@@ -402,7 +401,7 @@
response.setContentType("application/json;charset=utf-8");
Long activityID = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
Long groupID = WebUtil.readLongParam(request, AttributeNames.PARAM_GROUP_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
boolean result = true;
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingUploadAJAXAction.java
===================================================================
diff -u -r33308a6a7d7b29a01697f0274baaccbf9dca6bb3 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingUploadAJAXAction.java (.../GroupingUploadAJAXAction.java) (revision 33308a6a7d7b29a01697f0274baaccbf9dca6bb3)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/GroupingUploadAJAXAction.java (.../GroupingUploadAJAXAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -65,7 +65,7 @@
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.service.ILessonService;
-import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.security.ISecurityService;
import org.lamsfoundation.lams.usermanagement.Organisation;
@@ -149,7 +149,7 @@
Set learners = lesson.getLessonClass().getLearners();
// check for any groups already exist in this grouping
Long activityId = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Activity activity = monitoringService.getActivityById(activityId);
Grouping grouping = activity.isChosenBranchingActivity() ? activity.getGrouping()
@@ -368,7 +368,7 @@
private JSONObject saveLessonGrouping(HttpServletResponse response, Long activityId, Hashtable fileElements)
throws JSONException, IOException {
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Map> groups = new HashMap>();
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java
===================================================================
diff -u -rfe122f9f7ac40f3a3696a7c69043fc34df7994d4 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision fe122f9f7ac40f3a3696a7c69043fc34df7994d4)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/MonitoringAction.java (.../MonitoringAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -76,6 +76,7 @@
import org.lamsfoundation.lams.lesson.service.ILessonService;
import org.lamsfoundation.lams.monitoring.MonitoringConstants;
import org.lamsfoundation.lams.monitoring.dto.ContributeActivityDTO;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.security.ISecurityService;
@@ -132,7 +133,7 @@
private static ISecurityService securityService;
- private static IMonitoringService monitoringService;
+ private static IMonitoringFullService monitoringService;
private static IUserManagementService userManagementService;
@@ -1297,7 +1298,7 @@
long activityBid = WebUtil.readLongParam(request, "activityB");
boolean result = false;
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
Activity precedingActivity = monitoringService.getActivityById(activityBid);
@@ -1421,11 +1422,11 @@
return MonitoringAction.lessonService;
}
- private IMonitoringService getMonitoringService() {
+ private IMonitoringFullService getMonitoringService() {
if (MonitoringAction.monitoringService == null) {
WebApplicationContext ctx = WebApplicationContextUtils
.getRequiredWebApplicationContext(getServlet().getServletContext());
- MonitoringAction.monitoringService = (IMonitoringService) ctx.getBean("monitoringService");
+ MonitoringAction.monitoringService = (IMonitoringFullService) ctx.getBean("monitoringService");
}
return MonitoringAction.monitoringService;
}
Index: lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/SequenceAction.java
===================================================================
diff -u -r3399163940c61c9132223c758d274486e57ff9b7 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/SequenceAction.java (.../SequenceAction.java) (revision 3399163940c61c9132223c758d274486e57ff9b7)
+++ lams_monitoring/src/java/org/lamsfoundation/lams/monitoring/web/SequenceAction.java (.../SequenceAction.java) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -35,6 +35,7 @@
import org.apache.struts.action.ActionForward;
import org.apache.struts.action.ActionMapping;
import org.lamsfoundation.lams.learningdesign.SequenceActivity;
+import org.lamsfoundation.lams.monitoring.service.IMonitoringFullService;
import org.lamsfoundation.lams.monitoring.service.IMonitoringService;
import org.lamsfoundation.lams.monitoring.service.MonitoringServiceProxy;
import org.lamsfoundation.lams.usermanagement.User;
@@ -46,9 +47,6 @@
* The action servlet that provides the support for the Sequence activities. At present, this is only a basic view
* screen that lists the user's in the sequence.
*
- *
- *
- *
* @author Fiona Malikoff
*/
public class SequenceAction extends LamsDispatchAction {
@@ -65,7 +63,7 @@
long lessonId = WebUtil.readLongParam(request, AttributeNames.PARAM_LESSON_ID);
long activityId = WebUtil.readLongParam(request, AttributeNames.PARAM_ACTIVITY_ID);
- IMonitoringService monitoringService = MonitoringServiceProxy
+ IMonitoringFullService monitoringService = MonitoringServiceProxy
.getMonitoringService(getServlet().getServletContext());
SequenceActivity activity = (SequenceActivity) monitoringService.getActivityById(activityId,
SequenceActivity.class);
Index: lams_tool_images/.classpath
===================================================================
diff -u -rf4502360cd44d86d57b095aea5aef7ce663c8b61 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_tool_images/.classpath (.../.classpath) (revision f4502360cd44d86d57b095aea5aef7ce663c8b61)
+++ lams_tool_images/.classpath (.../.classpath) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -5,7 +5,6 @@
-
Index: lams_tool_kaltura/.classpath
===================================================================
diff -u -rf4502360cd44d86d57b095aea5aef7ce663c8b61 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_tool_kaltura/.classpath (.../.classpath) (revision f4502360cd44d86d57b095aea5aef7ce663c8b61)
+++ lams_tool_kaltura/.classpath (.../.classpath) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -16,7 +16,6 @@
-
Index: lams_tool_leader/.classpath
===================================================================
diff -u -rf4502360cd44d86d57b095aea5aef7ce663c8b61 -r4338c54ef39ccdab47dc95d28deec40f23059633
--- lams_tool_leader/.classpath (.../.classpath) (revision f4502360cd44d86d57b095aea5aef7ce663c8b61)
+++ lams_tool_leader/.classpath (.../.classpath) (revision 4338c54ef39ccdab47dc95d28deec40f23059633)
@@ -16,7 +16,6 @@
-