Index: lams_build/lib/lams/lams.jar =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision d66ffc2bf657d1fe25183aa727b110ed42048d59) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -859,6 +859,9 @@ if (keyExists(activityDetails, WDDXTAGS.GROUPING_SUPPORT_TYPE)) activity.setGroupingSupportType(WDDXProcessor.convertToInteger(activityDetails,WDDXTAGS.GROUPING_SUPPORT_TYPE)); + if (keyExists(activityDetails, WDDXTAGS.STOP_AFTER_ACTIVITY)) + activity.setStopAfterActivity(WDDXProcessor.convertToBoolean(activityDetails,WDDXTAGS.STOP_AFTER_ACTIVITY)); + return activity; } Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision d66ffc2bf657d1fe25183aa727b110ed42048d59) +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/Activity.hbm.xml (.../Activity.hbm.xml) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -87,6 +87,7 @@ + Index: lams_common/db/model/lams_11.clay =================================================================== diff -u -r5c85f79ac6eb2d698a970dfc662f027e4f642141 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 5c85f79ac6eb2d698a970dfc662f027e4f642141) +++ lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -699,6 +699,19 @@ + + + + + + + + + + + + + Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== diff -u -r5c85f79ac6eb2d698a970dfc662f027e4f642141 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 5c85f79ac6eb2d698a970dfc662f027e4f642141) +++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -522,6 +522,7 @@ , start_ycoord INT(11) , end_xcoord INT(11) , end_ycoord INT(11) + , stop_after_activity TINYINT NOT NULL DEFAULT 0 , PRIMARY KEY (activity_id) , INDEX (learning_library_id) , CONSTRAINT FK_lams_learning_activity_7 FOREIGN KEY (learning_library_id) Index: lams_common/db/sql/updatescripts/alter_21_branching.sql =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision d66ffc2bf657d1fe25183aa727b110ed42048d59) +++ lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -28,7 +28,9 @@ ,ADD COLUMN start_xcoord INT(11) ,ADD COLUMN start_ycoord INT(11) ,ADD COLUMN end_xcoord INT(11) -,ADD COLUMN end_ycoord INT(11); +,ADD COLUMN end_ycoord INT(11) +,ADD COLUMN stop_after_activity TINYINT NOT NULL DEFAULT 0 +; INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING_CHOSEN'); Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision d66ffc2bf657d1fe25183aa727b110ed42048d59) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Activity.java (.../Activity.java) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -209,6 +209,12 @@ * is set up, schedule gates are scheduled, etc. Used to detect which activities * need to be initialised for live edit. */ private Boolean initialised; + + /** If stopAfterActivity is true, then the progress engine should "end" the lesson at this point. + * Used to arbitrarily stop somewhere in a design, such as at the end of the branch. The normal + * final activity of a design does not necessarily have this set - the progress engine will just + * stop when it runs out of transitions to follow. */ + private Boolean stopAfterActivity; //--------------------------------------------------------------------- // Object constructors //--------------------------------------------------------------------- @@ -259,13 +265,15 @@ this.languageFile = languageFile; this.readOnly = false; this.initialised = false; + this.stopAfterActivity = false; } /** default constructor */ public Activity() { this.grouping = null; this.createDateTime = new Date(); //default value is set to when the object is created this.readOnly = false; this.initialised = false; + this.stopAfterActivity = false; } /** minimal constructor */ @@ -291,6 +299,8 @@ this.transitionTo = transitionTo; this.transitionFrom = transitionFrom; this.readOnly = false; + this.initialised = false; + this.stopAfterActivity = false; } public static Activity getActivityInstance(int activityType) @@ -564,7 +574,7 @@ } /** - * @return Returns the initialised. + * @return Returns the initialised flag. */ public Boolean isInitialised() { return initialised; @@ -576,6 +586,19 @@ this.initialised = initialised; } + /** + * @return Returns the stopAfterActivity flag. + */ + public Boolean isStopAfterActivity() { + return stopAfterActivity; + } + /** + * @param readOnly The stopAfterActivity to set. + */ + public void setStopAfterActivity(Boolean stopAfterActivity) { + this.stopAfterActivity = stopAfterActivity; + } + public String toString() { return new ToStringBuilder(this) .append("activityId", activityId) Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java =================================================================== diff -u -r5c85f79ac6eb2d698a970dfc662f027e4f642141 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 5c85f79ac6eb2d698a970dfc662f027e4f642141) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/AuthoringActivityDTO.java (.../AuthoringActivityDTO.java) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -192,6 +192,12 @@ * need to be initialised for live edit. */ private Boolean initialised; + /** If stopAfterActivity is true, then the progress engine should "end" the lesson at this point. + * Used to arbitrarily stop somewhere in a design, such as at the end of the branch. The normal + * final activity of a design does not necessarily have this set - the progress engine will just + * stop when it runs out of transitions to follow. */ + private Boolean stopAfterActivity; + /* Server will send Grouping objects as an array (in the Groupings array) * rather than being part of the GroupingActivity. For the groupings array * see LearningDesignDTO. @@ -236,7 +242,8 @@ Integer createGroupingUIID, Long libraryActivityID, Boolean applyGrouping,Integer groupingSupportType, Integer groupingType,GroupingDTO groupingDTO, - Boolean readOnly, Boolean initialised, Integer firstActivityUIID, + Boolean readOnly, Boolean initialised, Boolean stopAfterActivity, + Integer firstActivityUIID, Integer startXCoord, Integer startYCoord, Integer endXCoord, Integer endYCoord) { super(); this.activityID = activityID; @@ -281,6 +288,7 @@ //this.groupingDTO = groupingDTO; this.readOnly = readOnly; this.initialised = initialised; + this.stopAfterActivity=stopAfterActivity; // Sequence Activity field this.firstActivityUIID = firstActivityUIID; // Branching Activity fields @@ -330,7 +338,7 @@ this.groupingSupportType = activity.getGroupingSupportType(); this.readOnly = activity.getReadOnly(); this.initialised = activity.isInitialised(); - + this.stopAfterActivity = activity.isStopAfterActivity(); } @@ -675,6 +683,9 @@ public Boolean getInitialised() { return initialised; } + public Boolean getStopAfterActivity() { + return stopAfterActivity; + } /** * @return Returns the applyGrouping. */ @@ -1018,6 +1029,9 @@ public void setInitialised(Boolean initialised) { this.initialised = initialised; } + public void setStopAfterActivity(Boolean stopAfterActivity) { + this.stopAfterActivity = stopAfterActivity; + } public void setFirstActivityUIID(Integer firstActivityUIID) { if(!firstActivityUIID.equals(WDDXTAGS.NUMERIC_NULL_VALUE_LONG)) this.firstActivityUIID = firstActivityUIID; Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java =================================================================== diff -u -rd66ffc2bf657d1fe25183aa727b110ed42048d59 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision d66ffc2bf657d1fe25183aa727b110ed42048d59) +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -1811,6 +1811,11 @@ act.setDescription(actDto.getDescription()); act.setHelpText(actDto.getHelpText()); act.setLanguageFile(actDto.getLanguageFile()); + + // added in 2.1 - will be missing from earlier import files. + if ( actDto.getStopAfterActivity() != null ) + act.setStopAfterActivity(actDto.getStopAfterActivity()); + //do not need set so far // act.setLearningDesign(); Index: lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java =================================================================== diff -u -r87b20aa68aff94feca9cc3aee00d40c2781aa009 -r725717c8db7287e639f58135c179133d18e85adb --- lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 87b20aa68aff94feca9cc3aee00d40c2781aa009) +++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 725717c8db7287e639f58135c179133d18e85adb) @@ -94,6 +94,7 @@ public static final String APPLY_GROUPING = "applyGrouping"; public static final String GROUPING_SUPPORT_TYPE = "groupingSupportType"; + public static final String STOP_AFTER_ACTIVITY = "stopAfterActivity"; /** OptionsActivity specific tags*/ public static final String MAX_OPTIONS="maxOptions";