Index: lams_build/lib/lams/lams-monitoring.jar =================================================================== diff -u -rf4c79beeec8eea50e99a8d2cde21c27d45aa446d -r7bf7065d902a3645561f57c779b86721eedc27a5 Binary files differ Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rc658ae28364ada9c016296c8d56359472d1d131d -r7bf7065d902a3645561f57c779b86721eedc27a5 Binary files differ Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml =================================================================== diff -u -rc9c56707245e3ad1149bf1a5338eb251c96c75d2 -r7bf7065d902a3645561f57c779b86721eedc27a5 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision c9c56707245e3ad1149bf1a5338eb251c96c75d2) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/lesson/Lesson.hbm.xml (.../Lesson.hbm.xml) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) @@ -81,6 +81,23 @@ + + + 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) + + SELECT DISTINCT {lesson.*} Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -rb4cabf232f0083ce244e3c7c3676e04737955ef6 -r7bf7065d902a3645561f57c779b86721eedc27a5 --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision b4cabf232f0083ce244e3c7c3676e04737955ef6) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) @@ -438,6 +438,7 @@ this.getLessonName(), this.getLessonDescription(), this.lessonStateId, + this.organisation!=null?this.organisation.getOrganisationId():null, this.createDateTime, this.startDateTime); } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r7bf7065d902a3645561f57c779b86721eedc27a5 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) @@ -82,6 +82,14 @@ public List getLessonsCreatedByUser(Integer userID); /** + * 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. + * @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); + + /** * 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 -r34b959260a0f8f8285793a4481a95ca3580eabc5 -r7bf7065d902a3645561f57c779b86721eedc27a5 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 34b959260a0f8f8285793a4481a95ca3580eabc5) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) @@ -175,6 +175,29 @@ } /** + * 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. + * @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) + { + 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); + List result = query.list(); + return result; + } + } + ); + return lessons; + } + /** * Get all the preview lessons more with the creation date before the given date. * * @param startDate UTC date Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java =================================================================== diff -u -rb4cabf232f0083ce244e3c7c3676e04737955ef6 -r7bf7065d902a3645561f57c779b86721eedc27a5 --- lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision b4cabf232f0083ce244e3c7c3676e04737955ef6) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dto/LessonDTO.java (.../LessonDTO.java) (revision 7bf7065d902a3645561f57c779b86721eedc27a5) @@ -47,6 +47,7 @@ private String lessonName; private String lessonDescription; private Integer lessonStateID; + private Integer organisationID; private Date createDateTime; private Date startDateTime; @@ -60,13 +61,15 @@ String lessonName, String lessonDescription, Integer lessonStateId, + Integer organisationId, Date createDateTime, Date startDateTime) { this.lessonID = lessonId; this.lessonName = lessonName; this.lessonDescription = lessonDescription; this.lessonStateID = lessonStateId; + this.organisationID = organisationId; this.createDateTime = createDateTime; this.startDateTime = startDateTime; @@ -128,8 +131,12 @@ sb.append("lessonName='" + getLessonName()+"';"); sb.append("lessonDescription='" + getLessonDescription() + "'; "); sb.append("lessonStateID='" + getLessonStateID() + "'; "); + sb.append("organisationID='" + getOrganisationID() + "'; "); sb.append("createDateTime='" + getCreateDateTime() + "'; "); sb.append("startDateTime='" + getStartDateTime() + "'; "); return sb.toString(); } + public Integer getOrganisationID() { + return organisationID; + } }