Index: lams_build/lib/lams/lams.jar
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
Binary files differ
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -877,17 +877,6 @@
}
private void buildBranchingActivity(BranchingActivity branchingActivity,Hashtable activityDetails)
throws WDDXProcessorConversionException, ObjectExtractorException {
- /**
- * read the createBranchingUUID, get the Branching Object, and set CreateBranching to that object
- */
- //Integer createBranchingUIID = WDDXProcessor.convertToInteger(activityDetails,WDDXTAGS.CREATE_BRANCHINGS_UIID);
-
- // Get Branching object
-
- // doesn't extend SystemToolActivity class??
- //SystemTool systemTool = systemToolDAO.getSystemToolByID(SystemTool.BRANCHING);
- //branchingActivity.setSystemTool(systemTool);
-
}
private void buildGroupingActivity(GroupingActivity groupingActivity,Hashtable activityDetails)
throws WDDXProcessorConversionException, ObjectExtractorException {
@@ -1167,20 +1156,29 @@
Integer entryUIID = WDDXProcessor.convertToInteger(details, WDDXTAGS.GROUP_BRANCH_ACTIVITY_ENTRY_UIID);
Integer groupUIID = WDDXProcessor.convertToInteger(details, WDDXTAGS.GROUP_UIID);
Integer sequenceActivityUIID=WDDXProcessor.convertToInteger(details,WDDXTAGS.GROUP_BRANCH_SEQUENCE_ACTIVITY_UIID);
-
+ Integer branchingActivityUIID=WDDXProcessor.convertToInteger(details,WDDXTAGS.GROUP_BRANCH_ACTIVITY_UIID);
+
Group group = groups.get(groupUIID);
if ( group == null ) {
throw new WDDXProcessorConversionException("Group listed in the branch mapping list is missing. Mapping entry UUID "+entryUIID+" groupUIID "+groupUIID);
}
Activity sequenceActivity = newActivityMap.get(sequenceActivityUIID);
- if ( sequenceActivity == null || ! sequenceActivity.isSequenceActivity() ) {
- throw new WDDXProcessorConversionException("Activity listed in the branch mapping list is missing. Mapping entry UUID "+entryUIID+" sequenceActivityUIID "+sequenceActivityUIID);
+ if ( sequenceActivity == null ) {
+ throw new WDDXProcessorConversionException("Sequence Activity listed in the branch mapping list is missing. Mapping entry UUID "+entryUIID+" sequenceActivityUIID "+sequenceActivityUIID);
}
if ( ! sequenceActivity.isSequenceActivity() ) {
throw new WDDXProcessorConversionException("Activity listed in the branch mapping list is not a sequence activity. Mapping entry UUID "+entryUIID+" sequenceActivityUIID "+sequenceActivityUIID);
}
+ Activity branchingActivity = newActivityMap.get(branchingActivityUIID);
+ if ( branchingActivity == null ) {
+ throw new WDDXProcessorConversionException("Branching Activity listed in the branch mapping list is missing. Mapping entry UUID "+entryUIID+" branchingActivityUIID "+branchingActivityUIID);
+ }
+ if ( ! branchingActivity.isBranchingActivity() ) {
+ throw new WDDXProcessorConversionException("Activity listed in the branch mapping list is not a branching activity. Mapping entry UUID "+entryUIID+" branchingActivityUIID "+branchingActivityUIID);
+ }
+
GroupBranchActivityEntry entry = null;
// does it exist already? Check on the ID field as the UIID field may not have
@@ -1200,6 +1198,7 @@
group.getBranchActivities().add(entry);
}
entry.setBranchSequenceActivity((SequenceActivity)sequenceActivity);
+ entry.setBranchingActivity((BranchingActivity)branchingActivity);
entry.setGroup(group);
return entry;
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.hbm.xml
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.hbm.xml (.../GroupBranchActivityEntry.hbm.xml) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.hbm.xml (.../GroupBranchActivityEntry.hbm.xml) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -32,10 +32,17 @@
- @hibernate.column name="activity_id"
+ @hibernate.column name="sequence_activity_id"
-
+
+
+
+
+ @hibernate.column name="branch_activity_id"
+
+
+
Index: lams_common/db/model/lams_11.clay
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/db/model/lams_11.clay (.../lams_11.clay) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -5308,8 +5308,8 @@
-
+
@@ -5321,8 +5321,8 @@
-
+
@@ -5344,7 +5344,7 @@
-
+
@@ -5357,6 +5357,19 @@
+
+
+
+
+
+
+
+
+
+
+
+
+
@@ -5365,8 +5378,8 @@
-
+
@@ -5377,13 +5390,20 @@
-
+
-
+
+
+
+
+
+
+
+
Index: lams_common/db/sql/create_lams_11_tables.sql
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -558,17 +558,22 @@
entry_id BIGINT(20) NOT NULL AUTO_INCREMENT
, entry_ui_id INT(11)
, group_id BIGINT(20) NOT NULL
- , activity_id BIGINT(20) NOT NULL
- , UNIQUE UQ_lams_group_activity (activity_id, group_id)
+ , sequence_activity_id BIGINT(20) NOT NULL
+ , branch_activity_id BIGINT(20) NOT NULL
+ , UNIQUE UQ_lams_group_activity (group_id, branch_activity_id)
, PRIMARY KEY (entry_id)
, INDEX (group_id)
, CONSTRAINT FK_lams_group_activity_1 FOREIGN KEY (group_id)
REFERENCES lams_group (group_id)
- , INDEX (activity_id)
- , CONSTRAINT FK_lams_group_activity_2 FOREIGN KEY (activity_id)
+ , INDEX (sequence_activity_id)
+ , CONSTRAINT FK_lams_branch_map_sequence FOREIGN KEY (sequence_activity_id)
REFERENCES lams_learning_activity (activity_id)
+ , INDEX (branch_activity_id)
+ , CONSTRAINT FK_lams_branch_map_branch FOREIGN KEY (branch_activity_id)
+ REFERENCES lams_learning_activity (activity_id)
)TYPE=InnoDB;
+
CREATE TABLE lams_lesson (
lesson_id BIGINT(20) NOT NULL AUTO_INCREMENT
, learning_design_id BIGINT(20) NOT NULL
Index: lams_common/db/sql/updatescripts/alter_21_branching.sql
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/db/sql/updatescripts/alter_21_branching.sql (.../alter_21_branching.sql) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -8,15 +8,19 @@
entry_id BIGINT(20) NOT NULL AUTO_INCREMENT
, entry_ui_id INT(11)
, group_id BIGINT(20) NOT NULL
- , activity_id BIGINT(20) NOT NULL
- , UNIQUE UQ_lams_group_activity (activity_id, group_id)
+ , sequence_activity_id BIGINT(20) NOT NULL
+ , branch_activity_id BIGINT(20) NOT NULL
+ , UNIQUE UQ_lams_group_activity (group_id, branch_activity_id)
, PRIMARY KEY (entry_id)
, INDEX (group_id)
, CONSTRAINT FK_lams_group_activity_1 FOREIGN KEY (group_id)
REFERENCES lams_group (group_id)
- , INDEX (activity_id)
- , CONSTRAINT FK_lams_group_activity_2 FOREIGN KEY (activity_id)
+ , INDEX (sequence_activity_id)
+ , CONSTRAINT FK_lams_branch_map_sequence FOREIGN KEY (sequence_activity_id)
REFERENCES lams_learning_activity (activity_id)
+ , INDEX (branch_activity_id)
+ , CONSTRAINT FK_lams_branch_map_branch FOREIGN KEY (branch_activity_id)
+ REFERENCES lams_learning_activity (activity_id)
)TYPE=InnoDB;
INSERT INTO lams_learning_activity_type VALUES (10, 'BRANCHING_CHOSEN');
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java (.../Group.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/Group.java (.../Group.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -259,7 +259,7 @@
* @hibernate.collection-key
* column="group_id"
* @hibernate.collection-one-to-many
- * class="org.lamsfoundation.lams.learningdesign.GroupBranchActivity"
+ * class="org.lamsfoundation.lams.learningdesign.GroupBranchActivityEntry"
*
*/
public Set getBranchActivities() {
@@ -349,11 +349,12 @@
newGrouping, null, null, null);
if ( this.getBranchActivities() != null && this.getBranchActivities().size() > 0) {
+ newGroup.setBranchActivities(new HashSet());
Iterator iter = this.getBranchActivities().iterator();
while ( iter.hasNext() ) {
GroupBranchActivityEntry oldEntry = (GroupBranchActivityEntry) iter.next();
GroupBranchActivityEntry newEntry = new GroupBranchActivityEntry(null,
- oldEntry.getEntryUIID(), newGroup, oldEntry.getBranchSequenceActivity());
+ oldEntry.getEntryUIID(), newGroup, oldEntry.getBranchSequenceActivity(), oldEntry.getBranchingActivity());
newGroup.getBranchActivities().add(newEntry);
}
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.java
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.java (.../GroupBranchActivityEntry.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/GroupBranchActivityEntry.java (.../GroupBranchActivityEntry.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -54,16 +54,20 @@
/** persistent field */
private SequenceActivity branchSequenceActivity;
- //---------------------------------------------------------------------
+ /** persistent field */
+ private BranchingActivity branchingActivity;
+
+ //---------------------------------------------------------------------
// Object creation Methods
//---------------------------------------------------------------------
/** full constructor */
- public GroupBranchActivityEntry(Long entryId, Integer entryUIID, Group group, SequenceActivity branchSequenceActivity) {
+ public GroupBranchActivityEntry(Long entryId, Integer entryUIID, Group group, SequenceActivity branchSequenceActivity, BranchingActivity branchingActivity) {
this.entryId = entryId;
this.entryUIID = entryUIID;
this.group = group;
this.branchSequenceActivity = branchSequenceActivity;
+ this.branchingActivity = branchingActivity;
}
/** default constructor */
@@ -116,7 +120,7 @@
/**
* @hibernate.many-to-one
* not-null="true"
- * @hibernate.column name="activity_id"
+ * @hibernate.column name="sequence_activity_id"
*
*/
public org.lamsfoundation.lams.learningdesign.SequenceActivity getBranchSequenceActivity() {
@@ -127,6 +131,20 @@
this.branchSequenceActivity = branchSequenceActivity;
}
+ /**
+ * @hibernate.many-to-one
+ * not-null="true"
+ * @hibernate.column name="branch_activity_id"
+ *
+ */
+ public org.lamsfoundation.lams.learningdesign.BranchingActivity getBranchingActivity() {
+ return this.branchingActivity;
+ }
+
+ public void setBranchingActivity(org.lamsfoundation.lams.learningdesign.BranchingActivity branchingActivity) {
+ this.branchingActivity = branchingActivity;
+ }
+
public String toString() {
return new ToStringBuilder(this)
.append("entryId", getEntryId())
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupBranchActivityEntryDTO.java
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupBranchActivityEntryDTO.java (.../GroupBranchActivityEntryDTO.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/GroupBranchActivityEntryDTO.java (.../GroupBranchActivityEntryDTO.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -43,6 +43,7 @@
private Integer entryUIID;
private Integer groupUIID;
private Integer sequenceActivityUIID;
+ private Integer branchingActivityUIID;
//---------------------------------------------------------------------
// Object creation Methods
@@ -54,6 +55,7 @@
this.entryUIID = gba.getEntryUIID();
this.groupUIID = gba.getGroup().getGroupUIID();
this.sequenceActivityUIID = gba.getBranchSequenceActivity().getActivityUIID();
+ this.branchingActivityUIID = gba.getBranchingActivity().getActivityUIID();
}
public Long getEntryID() {
@@ -88,4 +90,12 @@
this.entryUIID = entryUIID;
}
+ public Integer getBranchingActivityUIID() {
+ return branchingActivityUIID;
+ }
+
+ public void setBranchingActivityUIID(Integer branchingActivityUIID) {
+ this.branchingActivityUIID = branchingActivityUIID;
+ }
+
}
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java
===================================================================
diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/ILessonService.java (.../ILessonService.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -28,6 +28,7 @@
import java.util.List;
import org.lamsfoundation.lams.learningdesign.Activity;
+import org.lamsfoundation.lams.learningdesign.Grouping;
import org.lamsfoundation.lams.learningdesign.GroupingActivity;
import org.lamsfoundation.lams.lesson.Lesson;
import org.lamsfoundation.lams.lesson.dto.LessonDTO;
@@ -99,13 +100,21 @@
public void performGrouping(Long lessonId, GroupingActivity groupingActivity, User learner) throws LessonServiceException;
/**
- * Perform grouping for all the learners who have started the lesson, based on the grouping activity.
- * Currently used for chosen grouping.
- * @param lessonId lesson id (mandatory)
- * @param groupName group name (mandatory)
- * @param groupingActivityId the activity that has create grouping. (mandatory)
+ * Perform the grouping, setting the given list of learners as one group.
+ * @param groupingActivity the activity that has create grouping. (mandatory)
+ * @param groupName (optional)
+ * @param learners to form one group (mandatory)
*/
- public void performGrouping(GroupingActivity groupingActivity, String groupName, List learners) throws LessonServiceException;
+ public void performGrouping(GroupingActivity groupingActivity, String groupName, List learners) throws LessonServiceException;
+
+ /**
+ * Perform the grouping, setting the given list of learners as one group. Used in suitations
+ * where there is a grouping but no grouping activity (e.g. in branching).
+ * @param groupingActivity the activity that has create grouping. (mandatory)
+ * @param groupName (optional)
+ * @param learners to form one group (mandatory)
+ */
+ public void performGrouping(Grouping grouping, String groupName, List learners) throws LessonServiceException;
/**
* Perform grouping for all the learners who have started the lesson, based on the grouping activity.
Index: lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java
===================================================================
diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6)
+++ lams_common/src/java/org/lamsfoundation/lams/lesson/service/LessonService.java (.../LessonService.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -206,13 +206,26 @@
}
/**
- * Perform the grouping, setting the given list of learners as one group. Not used initially.
+ * Perform the grouping, setting the given list of learners as one group.
* @param groupingActivity the activity that has create grouping. (mandatory)
- * @param learners to form one group
+ * @param groupName (optional)
+ * @param learners to form one group (mandatory)
*/
public void performGrouping(GroupingActivity groupingActivity, String groupName, List learners) throws LessonServiceException {
Grouping grouping = groupingActivity.getCreateGrouping();
+ performGrouping(grouping, groupName, learners);
+ }
+
+ /**
+ * Perform the grouping, setting the given list of learners as one group. Used in suitations
+ * where there is a grouping but no grouping activity (e.g. in branching).
+ * @param groupingActivity the activity that has create grouping. (mandatory)
+ * @param groupName (optional)
+ * @param learners to form one group (mandatory)
+ */
+ public void performGrouping(Grouping grouping, String groupName, List learners) throws LessonServiceException {
+
if ( grouping != null && grouping.isChosenGrouping() ) {
Grouper grouper = grouping.getGrouper();
if ( grouper != null ) {
@@ -225,7 +238,7 @@
groupingDAO.update(grouping);
}
} else {
- String error = "The method performChosenGrouping supports only grouping methods where the supplied list should be used as a single group (currently only ChosenGrouping). Called with a groupingActivity with the wrong grouper "+groupingActivity.getActivityId();
+ String error = "The method performChosenGrouping supports only grouping methods where the supplied list should be used as a single group (currently only ChosenGrouping). Called with wrong grouper "+grouping;
log.error(error);
throw new LessonServiceException(error);
}
Index: lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java
===================================================================
diff -u -r11914f2354254e0e92e2a271453ba2f0e8a35fdc -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 11914f2354254e0e92e2a271453ba2f0e8a35fdc)
+++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -135,6 +135,7 @@
public static final String GROUP_BRANCH_ACTIVITY_ENTRY_ID = "entryID";
public static final String GROUP_BRANCH_ACTIVITY_ENTRY_UIID = "entryUIID";
public static final String GROUP_BRANCH_SEQUENCE_ACTIVITY_UIID = "sequenceActivityUIID";
+ public static final String GROUP_BRANCH_ACTIVITY_UIID = "branchActivityUIID";
/** Transition specific tags */
public static final String TRANSITION_ID ="transitionID";
Index: lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java
===================================================================
diff -u -r6563149ab60daa42a7f37c0486e1cd248cacb200 -r4ca1b4e69d135a796d7db5eab3206e24e9503619
--- lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 6563149ab60daa42a7f37c0486e1cd248cacb200)
+++ lams_common/src/java/org/lamsfoundation/lams/web/util/AttributeNames.java (.../AttributeNames.java) (revision 4ca1b4e69d135a796d7db5eab3206e24e9503619)
@@ -50,6 +50,7 @@
public static final String PARAM_DEST_ACTIVITY_ID = "destActivityID";
public static final String PARAM_ACTIVITY_ID = "activityID";
public static final String PARAM_CONTENT_FOLDER_ID = "contentFolderID";
+ public static final String PARAM_TITLE = "title";
public static final String PARAM_COURSE_ID = "courseID";
public static final String PARAM_CLASS_ID = "classID";
@@ -58,6 +59,7 @@
public static final String PARAM_LEARNINGDESIGN_ID = "learningDesignID";
public static final String PARAM_ORGANISATION_ID = "organisationID";
+ public static final String PARAM_LEARNER_PROGRESS_ID = "progressID";
public static final String PARAM_LESSON_ID = "lessonID";
public static final String PARAM_DIRECTORY_NAME = "directoryName";
public static final String PARAM_FILENAME = "filename";