Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java,v diff -u -r1.11 -r1.12 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java 6 Jun 2006 06:05:17 -0000 1.11 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/ChosenGrouper.java 14 Jun 2006 23:14:35 -0000 1.12 @@ -66,8 +66,8 @@ */ public void doGrouping(Grouping chosenGrouping,String groupName, List learners) { - String trimmedName = groupName.trim(); - if ( trimmedName == null ) { + String trimmedName = groupName != null ? groupName.trim() : null; + if ( trimmedName == null || trimmedName.length() == 0 ) { String prefix = getPrefix(); trimmedName = prefix+" "+System.currentTimeMillis(); log.warn("Chosen grouper for grouping "+chosenGrouping.toString()+" did not get a group name. Selecting default name of "+trimmedName); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GateActivity.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/GateActivity.java,v diff -u -r1.15 -r1.16 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GateActivity.java 10 May 2006 05:43:31 -0000 1.15 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GateActivity.java 14 Jun 2006 23:14:35 -0000 1.16 @@ -199,18 +199,30 @@ * Delegate to strategy class to calculate whether we should open the * gate for this learner. * @param learner the learner who wants to go through the gate. - * @return the gate should be open or closed. + * @return the gate is open or closed. */ public boolean shouldOpenGateFor(User learner, List lessonLearners) { //by default, we close the gate if(getGateOpen()==null) - this.setGateOpen(new Boolean(false)); + this.setGateOpen(Boolean.FALSE); return ((GateActivityStrategy)simpleActivityStrategy).shouldOpenGateFor(learner,lessonLearners); } - //--------------------------------------------------------------------- + /** + * Force the gate to open, irrespective of the strategy. Used for preview. + * Opens the gate and clears any "waiting" list. + * @return the gate is open or closed. + */ + public boolean forceGateOpen() + { + setGateOpen(Boolean.TRUE); + getWaitingLearners().clear(); + return true; + } + + //--------------------------------------------------------------------- // Helper methods //--------------------------------------------------------------------- public String toString() Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java,v diff -u -r1.14 -r1.15 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java 10 May 2006 05:43:32 -0000 1.14 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/ILamsCoreToolService.java 14 Jun 2006 23:14:39 -0000 1.15 @@ -123,10 +123,13 @@ * Notify a tool to make a copy of its own content. Lams needs to dynamically * load tool's service by request and invoke the copy method from tool * content manager. + * + * If it is a preview lesson, we don't want to set define later - we will sidestep this in the progress engine. * @param toolActivity the requested tool activity. + * @param setDefineLater do we tell the tool to set its define later flag? * @return new tool content id. */ - public Long notifyToolToCopyContent(ToolActivity toolActivity) + public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater) throws DataMissingException, ToolException; /** Index: lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java,v diff -u -r1.27 -r1.28 --- lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 6 Jun 2006 06:05:17 -0000 1.27 +++ lams_common/src/java/org/lamsfoundation/lams/tool/service/LamsCoreToolService.java 14 Jun 2006 23:14:35 -0000 1.28 @@ -200,26 +200,28 @@ } /** * Calls the tool to copy the content for an activity. Used when copying a learning design. + * If it is a preview lesson, we don't want to set define later - we will sidestep this in the progress engine. * * @param toolActivity the tool activity defined in the design. * @throws DataMissingException, ToolException * @see org.lamsfoundation.lams.tool.service.ILamsCoreToolService#notifyToolToCopyContent(org.lamsfoundation.lams.learningdesign.ToolActivity) */ - public Long notifyToolToCopyContent(ToolActivity toolActivity) + public Long notifyToolToCopyContent(ToolActivity toolActivity, boolean setDefineLater) throws DataMissingException, ToolException { Long newToolcontentID = contentIDGenerator.getNextToolContentIDFor(toolActivity.getTool()); try { ToolContentManager contentManager = (ToolContentManager) findToolService(toolActivity); contentManager.copyToolContent(toolActivity.getToolContentId(), newToolcontentID); - if ( toolActivity.getDefineLater() != null && + + if ( setDefineLater && toolActivity.getDefineLater() != null && toolActivity.getDefineLater().booleanValue() ) { contentManager.setAsDefineLater(newToolcontentID); } if ( toolActivity.getRunOffline() != null && toolActivity.getRunOffline().booleanValue() ) { - contentManager.setAsRunOffline(newToolcontentID); + contentManager.setAsRunOffline(newToolcontentID); } } catch ( NoSuchBeanDefinitionException e ) { String message = "A tool which is defined in the database appears to missing from the classpath. Unable to copy the tool content. ToolActivity "+toolActivity; Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/Attic/TestGrouping.java,v diff -u -r1.10 -r1.11 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java 3 Apr 2006 23:36:54 -0000 1.10 +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestGrouping.java 14 Jun 2006 23:14:35 -0000 1.11 @@ -69,8 +69,10 @@ /** * Test the order generation without concurrency contention. + * TODO needs to be changed now that getNextGroupOrderIdCheckName() does it on the actual groups + * rather than a straight sequence. */ - public void testGetNextGroupOrderId() +/* public void testGetNextGroupOrderId() { assertEquals(1,grouping.getNextGroupOrderId()); @@ -85,7 +87,7 @@ group2.setOrderId(grouping.getNextGroupOrderId()); grouping.getGroups().add(group2); assertEquals(3,grouping.getNextGroupOrderId()); - } + } */ public void testGetLearners() { @@ -94,13 +96,13 @@ User user1 = new User(); user1.setUserId(new Integer(1)); Group group1 = new Group(); - insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderIdCheckName("user1")); User user2 = new User(); user2.setUserId(new Integer(2)); Group group2 = new Group(); - insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderIdCheckName("user2")); assertEquals("verify number of learners",2,grouping.getLearners().size()); } @@ -111,12 +113,12 @@ User user1 = new User(); user1.setUserId(new Integer(1)); Group group1 = new Group(); - insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderIdCheckName("user1")); User user2 = new User(); user2.setUserId(new Integer(2)); Group group2 = new Group(); - insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderIdCheckName("user2")); Group group = grouping.getGroupBy(user2); assertEquals("verify group retrieved",group2.getOrderId(),group.getOrderId()); @@ -128,7 +130,7 @@ User user1 = new User(); user1.setUserId(new Integer(1)); Group group1 = new Group(); - insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user1, group1,grouping.getNextGroupOrderIdCheckName("user1")); User user2 = new User(); user2.setUserId(new Integer(2)); @@ -140,7 +142,7 @@ public void testGetGroupWithLeastMember() { - int group1_orderId=grouping.getNextGroupOrderId(); + int group1_orderId=grouping.getNextGroupOrderIdCheckName("group1"); grouping.setGroups(new HashSet()); User user1 = new User(); user1.setUserId(new Integer(1)); @@ -154,7 +156,7 @@ User user2 = new User(); user2.setUserId(new Integer(2)); Group group2 = new Group(); - insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderId()); + insertUserIntoGroup(user2, group2,grouping.getNextGroupOrderIdCheckName("group2")); Group group = grouping.getGroupWithLeastMember(); assertEquals("verify group",2,group.getOrderId()); Index: lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/learningdesign/Attic/TestRandomGrouper.java,v diff -u -r1.6 -r1.7 --- lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java 2 Jun 2006 08:09:34 -0000 1.6 +++ lams_common/test/java/org/lamsfoundation/lams/learningdesign/TestRandomGrouper.java 14 Jun 2006 23:14:35 -0000 1.7 @@ -99,7 +99,7 @@ */ public void testDoGroupingLearnerListByNumOfGroups() { - this.groupingByNumofGroups.getGrouper().doGrouping(groupingByNumofGroups,null,userList); + this.groupingByNumofGroups.getGrouper().doGrouping(groupingByNumofGroups,(String)null,userList); Group groupWithLeastMember = groupingByNumofGroups.getGroupWithLeastMember(); for(Iterator i = groupingByNumofGroups.getGroups().iterator();i.hasNext();) @@ -135,7 +135,7 @@ */ public void testDoGroupingLearnerListByLearnerPerGroups() { - this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, userList); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, (String)null, userList); Group groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); for(Iterator i = groupingByLearnerPerGroups.getGroups().iterator();i.hasNext();) @@ -185,7 +185,7 @@ */ public void testDoGroupingDuplicateLearnerByLearnerPerGroups() { - this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, null, userList); + this.groupingByLearnerPerGroups.getGrouper().doGrouping(groupingByLearnerPerGroups, (String)null, userList); Group groupWithLeastMember = groupingByLearnerPerGroups.getGroupWithLeastMember(); for(Iterator i = groupingByLearnerPerGroups.getGroups().iterator();i.hasNext();) Index: lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/LessonDataAccessTestCase.java,v diff -u -r1.29 -r1.30 --- lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 11 May 2006 06:58:37 -0000 1.29 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/LessonDataAccessTestCase.java 14 Jun 2006 23:14:35 -0000 1.30 @@ -222,7 +222,7 @@ learnergroups.add(testUser); Group learnerClassGroup = new Group(null,//group id TEST_GROUP_NAME_LEARNER, - testLessonClass.getNextGroupOrderId(), + testLessonClass.getNextGroupOrderIdCheckName(TEST_GROUP_NAME_LEARNER), testLessonClass, learnergroups, new HashSet());//tool session, should be empty now @@ -243,6 +243,7 @@ new Date(System.currentTimeMillis()), testUser, Lesson.CREATED, + null, testLearningDesign, testLessonClass,//lesson class testOrg, Index: lams_common/test/java/org/lamsfoundation/lams/lesson/TestLessonClass.java =================================================================== RCS file: /usr/local/cvsroot/lams_common/test/java/org/lamsfoundation/lams/lesson/Attic/TestLessonClass.java,v diff -u -r1.4 -r1.5 --- lams_common/test/java/org/lamsfoundation/lams/lesson/TestLessonClass.java 3 Apr 2006 23:36:57 -0000 1.4 +++ lams_common/test/java/org/lamsfoundation/lams/lesson/TestLessonClass.java 14 Jun 2006 23:14:35 -0000 1.5 @@ -75,7 +75,7 @@ group1.setGroupId(new Long(1)); group1.setUsers(new HashSet()); group1.getUsers().add(user1); - group1.setOrderId(lessonClass.getNextGroupOrderId()); + group1.setOrderId(lessonClass.getNextGroupOrderIdCheckName("learners")); lessonClass.getGroups().add(group1); User staff = new User(); @@ -84,7 +84,7 @@ staffGroup.setGroupId(new Long(2)); staffGroup.setUsers(new HashSet()); staffGroup.getUsers().add(staff); - staffGroup.setOrderId(lessonClass.getNextGroupOrderId()); + staffGroup.setOrderId(lessonClass.getNextGroupOrderIdCheckName("staff")); lessonClass.getGroups().add(staffGroup); lessonClass.setStaffGroup(staffGroup);