Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml =================================================================== diff -u -r8e764cef94c3501df91598521080a8bf2c5160b2 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision 8e764cef94c3501df91598521080a8bf2c5160b2) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -224,7 +224,7 @@ /> - + Index: lams_common/db/sql/insert_test_data.sql =================================================================== diff -u -r2d559a0fbb253139af087ee7de15561510b2397c -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/db/sql/insert_test_data.sql (.../insert_test_data.sql) (revision 2d559a0fbb253139af087ee7de15561510b2397c) +++ lams_common/db/sql/insert_test_data.sql (.../insert_test_data.sql) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -76,7 +76,7 @@ insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, learner_url,author_url,define_later_url,export_portfolio_url,monitor_url) -values(5,'message_board_signature','messageBoardService','Message Board','Message Board Description',5,0,0, +values(5,'message_board_signature','messageBoardService','Message Board','Message Board Description',5,1,0, 'learner_url','author_url','define_later_url','export_portfolio_url','monitor_url'); insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, @@ -86,7 +86,7 @@ insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, learner_url,author_url,define_later_url,export_portfolio_url,monitor_url) -values(7,'chat_signature','chatService','Chat','Chat Description',7,0,0, +values(7,'chat_signature','chatService','Chat','Chat Description',7,1,0, 'learner_url','author_url','define_later_url','export_portfolio_url','monitor_url'); insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, @@ -96,7 +96,7 @@ insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, learner_url,author_url,define_later_url,export_portfolio_url,monitor_url) -values(9,'voting_signature','votingService','Voting','Voting Description',9,0,0, +values(9,'voting_signature','votingService','Voting','Voting Description',9,1,0, 'learner_url','author_url','define_later_url','export_portfolio_url','monitor_url'); insert into lams_tool (tool_id,tool_signature,service_name,tool_display_name,description,default_tool_content_id,supports_grouping_flag,supports_define_later_flag, Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -rd3e6f7950ebe3d12cc3f67bbe471fd6e1f7e6c60 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision d3e6f7950ebe3d12cc3f67bbe471fd6e1f7e6c60) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -388,4 +388,9 @@ public void setTransitionTo(Transition transitionTo) { this.transitionTo = transitionTo; } + + public boolean isToolActivity() + { + return getActivityTypeId().intValue()==TOOL_ACTIVITY_TYPE; + } } \ No newline at end of file Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java =================================================================== diff -u -r1d40a310039a2975dc474f61e9a732f90f86c707 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision 1d40a310039a2975dc474f61e9a732f90f86c707) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Grouping.java (.../Grouping.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -1,6 +1,8 @@ package org.lamsfoundation.lams.learningdesign; import java.io.Serializable; +import java.util.HashSet; +import java.util.Iterator; import java.util.Set; import org.apache.commons.lang.builder.EqualsBuilder; import org.apache.commons.lang.builder.HashCodeBuilder; @@ -26,8 +28,6 @@ /** identifier field */ private Long groupingId; - - /** nullable persistent field */ private Integer maxNumberOfGroups; @@ -40,6 +40,9 @@ /** persistent field */ private Set activities; + /** non-persistent field */ + private Set learners; + /** full constructor */ public Grouping(Long groupingId, Integer groupingTypeId, Set groups, Set activities) { @@ -157,6 +160,10 @@ this.maxNumberOfGroups = maxNumberOfGroups; } + /** + * Return the next group order id. + * @return the next order id. + */ public synchronized int getNextGroupOrderId() { int order =0; @@ -167,4 +174,24 @@ } else return ++order; } + + /** + * Return all the learners who participate this grouping. + * @return the learners set. + */ + public Set getLearners() + { + //verify pre-condition + if(groups==null) + throw new IllegalArgumentException("Fail to get learnings from" + + "a grouping without groups"); + + learners = new HashSet(); + for(Iterator i = groups.iterator();i.hasNext();) + { + Group group = (Group)i.next(); + learners.addAll(group.getUsers()); + } + return learners; + } } Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java =================================================================== diff -u -rd3e6f7950ebe3d12cc3f67bbe471fd6e1f7e6c60 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision d3e6f7950ebe3d12cc3f67bbe471fd6e1f7e6c60) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ToolActivity.java (.../ToolActivity.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -37,10 +37,10 @@ Boolean defineLater, java.util.Date createDateTime, String offlineInstructions, - org.lamsfoundation.lams.learningdesign.LearningLibrary learningLibrary, - org.lamsfoundation.lams.learningdesign.Activity parentActivity, - org.lamsfoundation.lams.learningdesign.LearningDesign learningDesign, - org.lamsfoundation.lams.learningdesign.Grouping grouping, + LearningLibrary learningLibrary, + Activity parentActivity, + LearningDesign learningDesign, + Grouping grouping, Integer activityTypeId, Transition transitionTo, Transition transitionFrom, Index: lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java =================================================================== diff -u -r1d40a310039a2975dc474f61e9a732f90f86c707 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 1d40a310039a2975dc474f61e9a732f90f86c707) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/Lesson.java (.../Lesson.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -255,6 +255,9 @@ .toHashCode(); } + public Set getAllLearners() + { + return lessonClass.getLearners(); + } - } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java =================================================================== diff -u -r7e008c96c3f7a56c3c90cff94b5225865b8d99ba -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 7e008c96c3f7a56c3c90cff94b5225865b8d99ba) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/ILessonDAO.java (.../ILessonDAO.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -55,6 +55,12 @@ * @return LearnerProgess object containing the progress and state data. */ public LearnerProgress getLearnerProgress(User learner, Lesson lesson); + + /** + * Update a requested lesson. + * @param createdLesson + */ + public void updateLesson(Lesson lesson); } Index: lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java =================================================================== diff -u -r7e008c96c3f7a56c3c90cff94b5225865b8d99ba -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 7e008c96c3f7a56c3c90cff94b5225865b8d99ba) +++ lams_common/src/java/org/lamsfoundation/lams/lesson/dao/hibernate/LessonDAO.java (.../LessonDAO.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -123,4 +123,14 @@ return (LearnerProgress) ((getHibernateTemplate().find(queryString, new Object[]{learner, lesson})).get(0));//shoud only ever be one of these } + + /** + * Update the lesson data + * @see org.lamsfoundation.lams.lesson.dao.ILessonDAO#updateLesson(org.lamsfoundation.lams.lesson.Lesson) + */ + public void updateLesson(Lesson lesson) + { + getHibernateTemplate().update(lesson); + } + } Index: lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java =================================================================== diff -u -r432eded2e44dafaf043b7a6acb26e448cb6697a4 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java (.../Tool.java) (revision 432eded2e44dafaf043b7a6acb26e448cb6697a4) +++ lams_common/src/java/org/lamsfoundation/lams/tool/Tool.java (.../Tool.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -21,13 +21,13 @@ private String learnerUrl; /** persistent field */ - private Boolean supportsGrouping; + private boolean supportsGrouping; /** nullable persistent field */ private String authorUrl; /** persistent field */ - private Boolean supportsDefineLater; + private boolean supportsDefineLater; /** nullable persistent field */ private String defineLaterUrl; @@ -54,7 +54,7 @@ private Set activities; /** full constructor */ - public Tool(Long toolId, String learnerUrl, Boolean supportsGrouping, String authorUrl, Boolean supportsDefineLater, String defineLaterUrl, long defaultToolContentId, String toolSignature, String toolDisplayName, String description, String className, String exportPortfolioUrl, Set activities) { + public Tool(Long toolId, String learnerUrl, boolean supportsGrouping, String authorUrl, boolean supportsDefineLater, String defineLaterUrl, long defaultToolContentId, String toolSignature, String toolDisplayName, String description, String className, String exportPortfolioUrl, Set activities) { this.toolId = toolId; this.learnerUrl = learnerUrl; this.supportsGrouping = supportsGrouping; @@ -75,7 +75,7 @@ } /** minimal constructor */ - public Tool(Long toolId, String learnerUrl, Boolean supportsGrouping, Boolean supportsDefineLater, long defaultToolContentId, String toolSignature, String toolDisplayName, String className, String exportPortfolioUrl, Set activities) { + public Tool(Long toolId, String learnerUrl, boolean supportsGrouping, boolean supportsDefineLater, long defaultToolContentId, String toolSignature, String toolDisplayName, String className, String exportPortfolioUrl, Set activities) { this.toolId = toolId; this.learnerUrl = learnerUrl; this.supportsGrouping = supportsGrouping; @@ -125,11 +125,11 @@ * not-null="true" * */ - public Boolean getSupportsGrouping() { + public boolean getSupportsGrouping() { return this.supportsGrouping; } - public void setSupportsGrouping(Boolean supportsGrouping) { + public void setSupportsGrouping(boolean supportsGrouping) { this.supportsGrouping = supportsGrouping; } @@ -154,11 +154,11 @@ * not-null="true" * */ - public Boolean getSupportsDefineLater() { + public boolean getSupportsDefineLater() { return this.supportsDefineLater; } - public void setSupportsDefineLater(Boolean supportsDefineLater) { + public void setSupportsDefineLater(boolean supportsDefineLater) { this.supportsDefineLater = supportsDefineLater; } Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java =================================================================== diff -u -r1d40a310039a2975dc474f61e9a732f90f86c707 -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java (.../TestGrouping.java) (revision 1d40a310039a2975dc474f61e9a732f90f86c707) +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java (.../TestGrouping.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -11,6 +11,9 @@ import java.util.HashSet; +import org.lamsfoundation.lams.usermanagement.User; + + import junit.framework.TestCase; @@ -68,4 +71,34 @@ grouping.getGroups().add(group2); assertEquals(3,grouping.getNextGroupOrderId()); } + + public void testGetLearners() + { + grouping.setGroups(new HashSet()); + + User user1 = new User(); + user1.setUserId(new Integer(1)); + Group group1 = new Group(); + insertUserIntoGroup(user1, group1); + + + User user2 = new User(); + user2.setUserId(new Integer(2)); + Group group2 = new Group(); + insertUserIntoGroup(user2, group2); + + assertEquals("verify number of learners",2,grouping.getLearners().size()); + } + + /** + * @param user1 + * @param group1 + */ + private void insertUserIntoGroup(User user, Group group) + { + group.setUsers(new HashSet()); + group.getUsers().add(user); + group.setOrderId(grouping.getNextGroupOrderId()); + grouping.getGroups().add(group); + } } Index: lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java =================================================================== diff -u -r72352f709cfb1eb543caae62477a0824a134dd5c -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 72352f709cfb1eb543caae62477a0824a134dd5c) +++ lams_common/test/java/org/lamsfoundation/lams/lesson/dao/TestLessonDAO.java (.../TestLessonDAO.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -53,8 +53,19 @@ //assert the data retrieved. super.assertLesson(createdLesson); + } + + public void testUpdateLesson() + { + Lesson createdLesson = this.lessonDao.getLesson(this.testLesson.getLessonId()); + assertEquals("should be created state now",Lesson.CREATED,createdLesson.getLessonStateId()); + createdLesson.setLessonStateId(Lesson.STARTED_STATE); + lessonDao.updateLesson(createdLesson); + + Lesson updatedLesson = lessonDao.getLesson(testLesson.getLessonId()); + + assertEquals("verify the updated lesson state",Lesson.STARTED_STATE,updatedLesson.getLessonStateId()); } - } Index: lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolDAO.java =================================================================== diff -u -r99535fb4e8de85822dfd8f274ed2a37fec63a1df -r2962a623ecfbd3460df3e34aa323e0cdc65438bd --- lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolDAO.java (.../TestToolDAO.java) (revision 99535fb4e8de85822dfd8f274ed2a37fec63a1df) +++ lams_common/test/java/org/lamsfoundation/lams/tool/dao/TestToolDAO.java (.../TestToolDAO.java) (revision 2962a623ecfbd3460df3e34aa323e0cdc65438bd) @@ -52,6 +52,8 @@ assertEquals("verify service name","surveyService",testTool.getServiceName()); assertEquals("verify display name","Survey",testTool.getToolDisplayName()); assertEquals("verify default content id",6,testTool.getDefaultToolContentId()); + assertTrue("verify support grouping",!testTool.getSupportsGrouping()); + assertTrue("verify support define later",!testTool.getSupportsDefineLater()); } }