Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rb7149ecd0947dc6187b527c725ab2f4b6503f375 -r8d7fbb9d04178c47476596b238655bf8ce2214ca Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -r232501e43e69aae1d0c06aace09a057750e41300 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 232501e43e69aae1d0c06aace09a057750e41300) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -81,7 +81,7 @@ - + SELECT DISTINCT {lesson.*} FROM lams_lesson {lesson}, @@ -106,6 +106,24 @@ AND NOT ({lesson}.lesson_state_id = 7) + + + SELECT DISTINCT {lesson.*} + FROM lams_lesson {lesson}, + lams_grouping, + lams_group, + lams_user_group, + lams_learning_design + WHERE ({lesson}.class_grouping_id = lams_grouping.grouping_id) + AND (lams_grouping.staff_group_id = lams_group.group_id) + AND (lams_group.group_id = lams_user_group.group_id) + AND NOT ({lesson}.lesson_state_id = 7) + AND (lams_user_group.user_id = :userId) + AND ({lesson}.learning_design_id = lams_learning_design.learning_design_id) + AND (lams_learning_design.copy_type_id=2) + AND ({lesson}.organisation_id = :organisationId) + + SELECT DISTINCT {lesson.*} @@ -121,7 +139,25 @@ AND (lams_user_group.user_id = :userId) AND ({lesson}.learning_design_id = lams_learning_design.learning_design_id) AND (lams_learning_design.copy_type_id=2) + AND ({lesson}.organisation_id = :organisationId) + + + + SELECT DISTINCT {lesson.*} + FROM lams_lesson {lesson}, + lams_grouping, + lams_group, + lams_user_group, + lams_learning_design + WHERE ({lesson}.class_grouping_id = lams_grouping.grouping_id) + AND (lams_grouping.grouping_id = lams_group.grouping_id) + AND (lams_group.group_id = lams_user_group.group_id) + AND ({lesson}.lesson_state_id IN (3,5)) + AND (lams_user_group.user_id = :userId) + AND ({lesson}.learning_design_id = lams_learning_design.learning_design_id) + AND (lams_learning_design.copy_type_id=2) + Index: lams_common/src/java/org/lamsfoundation/lams/commonContext.xml =================================================================== diff -u -r03392c988a23f5e9129967f8ae692488213632fe -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 03392c988a23f5e9129967f8ae692488213632fe) +++ lams_common/src/java/org/lamsfoundation/lams/commonContext.xml (.../commonContext.xml) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -86,6 +86,7 @@ + Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -r7bf7065d902a3645561f57c779b86721eedc27a5 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -49,12 +49,21 @@ public Lesson getLessonWithJoinFetchedProgress(Long lessonId); /** * Gets all lessons that are active for a learner. + * TODO to be removed when the dummy interface is no longer needed * @param learner a User that identifies the learner. * @return a Set with all active lessons in it. */ public List getActiveLessonsForLearner(User learner); /** + * Gets all lessons that are active for a learner, in a given organisation + * @param learnerId a User that identifies the learner. + * @param organisationId the desired organisation . + * @return a List with all active lessons in it. + */ + public List getActiveLessonsForLearner(final Integer learnerId, final Integer organisationID); + + /** * Saves or Updates a Lesson. * @param lesson the Lesson to save */ @@ -90,6 +99,14 @@ public List getLessonsForMonitoring(final int userID); /** + * Gets all lessons in the given organisation, for which this user is in the staff group. Does not return + * disabled lessons or preview lessons. This is the list of lessons that a user may monitor/moderate/manage. + * @param user a User that identifies the teacher/staff member. + * @return a List with all appropriate lessons in it. + */ + public List getLessonsForMonitoring(final int userID, final int organisationID); + + /** * Returns the all the learners that have started the requested lesson. * * @param lessonId the id of the requested lesson. Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -r7bf7065d902a3645561f57c779b86721eedc27a5 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -92,6 +92,7 @@ /** * Gets all lessons that are active for a learner. + * TODO remove when the dummy interface is no longer needed. Replaced with getActiveLessonsForLearner(user,org) * @param learner a User that identifies the learner. * @return a List with all active lessons in it. */ @@ -103,7 +104,7 @@ lessons = (List)hibernateTemplate.execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { - Query query = session.getNamedQuery("activeLessons"); + Query query = session.getNamedQuery("activeLessonsAllOrganisations"); query.setInteger("userId", learner.getUserId().intValue()); List result = query.list(); return result; @@ -114,6 +115,31 @@ } /** + * Gets all lessons that are active for a learner, in a given organisation + * @param learnerId a User that identifies the learner. + * @param organisationId the desired organisation. + * @return a List with all active lessons in it. + */ + public List getActiveLessonsForLearner(final Integer learnerId, final Integer organisationId) + { + List lessons = null; + + HibernateTemplate hibernateTemplate = new HibernateTemplate(this.getSessionFactory()); + lessons = (List)hibernateTemplate.execute( + new HibernateCallback() { + public Object doInHibernate(Session session) throws HibernateException { + Query query = session.getNamedQuery("activeLessons"); + query.setInteger("userId", learnerId); + query.setInteger("organisationId", organisationId); + List result = query.list(); + return result; + } + } + ); + return lessons; + } + + /** * @see org.lamsfoundation.lams.lesson.dao.ILessonDAO#getActiveLearnerByLesson(long) */ public List getActiveLearnerByLesson(final long lessonId) @@ -177,6 +203,8 @@ /** * Gets all lessons for which this user is in the staff group. Does not return * disabled lessons or preview lessons. This is the list of lessons that a user may monitor/moderate/manage. + * TODO remove once the dummy interface is removed - it is replaced by getLessonsForMonitoring(userId, organisationId) + * TODO remove the matching query in the Hibernate file. * @param user a User that identifies the teacher/staff member. * @return a List with all appropriate lessons in it. */ @@ -188,8 +216,32 @@ lessons = (List)hibernateTemplate.execute( new HibernateCallback() { public Object doInHibernate(Session session) throws HibernateException { + Query query = session.getNamedQuery("lessonsForMonitoringByUser"); + query.setInteger("userId", userID); + List result = query.list(); + return result; + } + } + ); + return lessons; + } + /** + * Gets all lessons in the given organisation, for which this user is in the staff group. Does not return + * disabled lessons or preview lessons. This is the list of lessons that a user may monitor/moderate/manage. + * @param user a User that identifies the teacher/staff member. + * @return a List with all appropriate lessons in it. + */ + public List getLessonsForMonitoring(final int userID, final int organisationID) + { + List lessons = null; + + HibernateTemplate hibernateTemplate = new HibernateTemplate(this.getSessionFactory()); + lessons = (List)hibernateTemplate.execute( + new HibernateCallback() { + public Object doInHibernate(Session session) throws HibernateException { Query query = session.getNamedQuery("lessonsForMonitoring"); query.setInteger("userId", userID); + query.setInteger("organisationId", organisationID); List result = query.list(); return result; } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java =================================================================== diff -u -rcea798b3457c895676bf1cc5ebb3013eee53f505 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision cea798b3457c895676bf1cc5ebb3013eee53f505) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/IUserManagementService.java (.../IUserManagementService.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -383,5 +383,16 @@ * @return UserDTO objects (in a Vector to suit WDDX) */ public Vector getUsersFromOrganisationByRole(Integer organisationID, String roleName); - + + /** Get all the lessons in an organisation that this user can monitor. + * This is a temporary method to support the dummy index page. + * TODO modify/remove when the index page is implemented properly + */ + public List getMonitorLessonsFromOrganisation(Integer userID, Integer organisationID); + /** Get all the lessons in an organisation for which this user is a learner. + * This is a temporary method to support the dummy index page. + * TODO modify/remove when the index page is implemented properly + */ + public List getLearnerLessonsFromOrganisation(Integer userID, Integer organisationID); + } Index: lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java =================================================================== diff -u -rcea798b3457c895676bf1cc5ebb3013eee53f505 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision cea798b3457c895676bf1cc5ebb3013eee53f505) +++ lams_common/src/java/org/lamsfoundation/lams/usermanagement/service/UserManagementService.java (.../UserManagementService.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -32,6 +32,7 @@ import org.apache.log4j.Logger; import org.lamsfoundation.lams.cache.ICacheManager; import org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO; +import org.lamsfoundation.lams.lesson.dao.ILessonDAO; import org.lamsfoundation.lams.usermanagement.AuthenticationMethod; import org.lamsfoundation.lams.usermanagement.Organisation; import org.lamsfoundation.lams.usermanagement.OrganisationType; @@ -91,6 +92,8 @@ protected ILearningDesignDAO learningDesignDAO; + protected ILessonDAO lessonDAO; + protected ICacheManager cacheManager; private String[] userClassParts = null; @@ -154,6 +157,13 @@ this.authenticationMethodDAO = authenticationMethodDAO; } + /** + * @see org.lamsfoundation.lams.usermanagement.service.IUserManagementService#setLessonDAO(org.lamsfoundation.lams.lesson.dao.ILessonDAO) + */ + public void setLessonDAO(ILessonDAO lessonDAO) { + this.lessonDAO = lessonDAO; + } + public void setCacheManager(ICacheManager cacheManager) { this.cacheManager = cacheManager; } @@ -621,4 +631,18 @@ return users; } + /** Get all the lessons in an organisation that this user can monitor. + * This is a temporary method to support the dummy index page. + * TODO modify/remove when the index page is implemented properly + */ + public List getMonitorLessonsFromOrganisation(Integer userID, Integer organisationID) { + return lessonDAO.getLessonsForMonitoring(userID, organisationID); + } + /** Get all the lessons in an organisation for which this user is a learner. + * This is a temporary method to support the dummy index page. + * TODO modify/remove when the index page is implemented properly + */ + public List getLearnerLessonsFromOrganisation(Integer userID, Integer organisationID) { + return lessonDAO.getActiveLessonsForLearner(userID, organisationID); + } } Index: lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -45,6 +45,8 @@ public static final String PARAM_TOOL_CONTENT_ID = "toolContentID"; public static final String PARAM_TOOL_SESSION_ID = "toolSessionID"; public static final String PARAM_ACTIVITY_ID = "activityID"; + public static final String PARAM_COURSE_ID = "courseID"; + public static final String PARAM_CLASS_ID = "classID"; public static final String PARAM_LEARNINGDESIGN_ID = "learningDesignID"; public static final String PARAM_ORGANISATION_ID = "organisationID"; Index: lams_common/test/java/org/lamsfoundation/lams/test/AbstractCommonTestCase.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r8d7fbb9d04178c47476596b238655bf8ce2214ca --- lams_common/test/java/org/lamsfoundation/lams/test/AbstractCommonTestCase.java (.../AbstractCommonTestCase.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/test/java/org/lamsfoundation/lams/test/AbstractCommonTestCase.java (.../AbstractCommonTestCase.java) (revision 8d7fbb9d04178c47476596b238655bf8ce2214ca) @@ -43,7 +43,8 @@ } protected String[] getContextConfigLocation() { - return new String[] {"org/lamsfoundation/lams/localApplicationContext.xml"}; + return new String[] {"org/lamsfoundation/lams/localApplicationContext.xml", + "org/lamsfoundation/lams/lesson/lessonApplicationContext.xml"}; } /**