Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java
===================================================================
diff -u -r1a5446e3a1f962f1bb831c1bbaef14acf9d3635c -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 1a5446e3a1f962f1bb831c1bbaef14acf9d3635c)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -349,6 +349,18 @@
learningDesign.setWorkspaceFolder(workspaceFolder);
learningDesign.setUser(user);
+ if (existingLearningDesign == null) {
+ if (keyExists(table, WDDXTAGS.ORIGINAL_USER_ID)) {
+ Integer originalUserID = WDDXProcessor.convertToInteger(table, WDDXTAGS.ORIGINAL_USER_ID);
+ User originalUser = (User) getBaseDAO().find(User.class, originalUserID);
+ learningDesign.setOriginalUser(originalUser);
+ } else {
+ learningDesign.setOriginalUser(user);
+ }
+ } else {
+ learningDesign.setOriginalUser(existingLearningDesign.getOriginalUser());
+ }
+
// Pull out all the existing groups. there isn't an easy way to pull
// them out of the db requires an outer join across
// three objects (learning design -> grouping activity -> grouping) so
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml
===================================================================
diff -u -rf4eb719e023dc891dc5fcf0dff63e0fe274e289e -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision f4eb719e023dc891dc5fcf0dff63e0fe274e289e)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -210,6 +210,11 @@
+
+
+
+
+
Index: lams_common/db/sql/create_lams_11_tables.sql
===================================================================
diff -u -rcb6d628cd53fe3d51e4f67cbaff7390651a048da -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision cb6d628cd53fe3d51e4f67cbaff7390651a048da)
+++ lams_common/db/sql/create_lams_11_tables.sql (.../create_lams_11_tables.sql) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -334,6 +334,7 @@
, read_only_flag TINYINT(4) NOT NULL
, date_read_only DATETIME
, user_id BIGINT(20) NOT NULL
+ , original_user_id BIGINT(20) NOT NULL
, help_text TEXT
, online_instructions TEXT
, offline_instructions TEXT
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql
===================================================================
diff -u -rc4de57fdf30d9a854fbfa3c66710b18b29c71e7e -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql (.../patch02040006.sql) (revision c4de57fdf30d9a854fbfa3c66710b18b29c71e7e)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql (.../patch02040006.sql) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -103,6 +103,9 @@
INSERT INTO lams_configuration (config_key, config_value, description_key, header_name, format, required)
VALUES ('KalturaKDPUiConfId','', 'config.kaltura.kdp.uiconfid', 'config.header.kaltura', 'STRING', 0);
+-- LDEV-2560 Add original author information
+ALTER TABLE lams_learning_design ADD COLUMN original_user_id BIGINT(20) AFTER user_id;
+
COMMIT;
SET AUTOCOMMIT = 1;
set FOREIGN_KEY_CHECKS = 1;
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java
===================================================================
diff -u -rf4eb719e023dc891dc5fcf0dff63e0fe274e289e -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision f4eb719e023dc891dc5fcf0dff63e0fe274e289e)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -116,6 +116,9 @@
/** persistent field */
private User user;
+
+ /** persistent field */
+ private User originalUser;
/** persistent field */
private LearningDesign originalLearningDesign;
@@ -180,6 +183,7 @@
Date createDateTime,
String version,
User user,
+ User originalUser,
LearningDesign originalLearningDesign,
Set childLearningDesigns, Set lessons, Set transitions,
SortedSet activities,
@@ -208,6 +212,7 @@
this.createDateTime = createDateTime != null ? createDateTime : new Date();
this.version = version;
this.user = user;
+ this.originalUser = originalUser;
this.originalLearningDesign = originalLearningDesign;
this.childLearningDesigns = childLearningDesigns;
this.lessons = lessons;
@@ -243,6 +248,7 @@
Date createDateTime,
String version,
User user,
+ User originalUser,
org.lamsfoundation.lams.learningdesign.LearningDesign originalLearningDesign,
Set childLearningDesigns, Set lessons, Set transitions,
SortedSet activities) {
@@ -253,6 +259,7 @@
this.createDateTime = createDateTime != null ? createDateTime : new Date();
this.version = version;
this.user = user;
+ this.originalUser = originalUser;
this.originalLearningDesign = originalLearningDesign;
this.childLearningDesigns = childLearningDesigns;
this.lessons = lessons;
@@ -298,6 +305,7 @@
newDesign.setContentFolderID(design.getContentFolderID());
newDesign.setEditOverrideLock(design.getEditOverrideLock());
newDesign.setEditOverrideUser(design.getEditOverrideUser());
+ newDesign.setOriginalUser(design.getOriginalUser());
return newDesign;
}
@@ -401,6 +409,15 @@
public void setUser(User user) {
this.user = user;
}
+
+ public User getOriginalUser() {
+ return originalUser;
+ }
+
+ public void setOriginalUser(User originalUser) {
+ this.originalUser = originalUser;
+ }
+
/** If this is a lesson type of learning design, then the original learning design was the authoring
* learning design which was copied to make this learning design. The original design may or may not still exist
* in the database. */
@@ -590,6 +607,4 @@
public FloatingActivity getFloatingActivity() {
return floatingActivity;
}
-
-
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java
===================================================================
diff -u -r9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6 -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java (.../DesignDetailDTO.java) (revision 9481bb9c6f8c0e4d6fbed6b230a41c77feda64c6)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java (.../DesignDetailDTO.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -43,6 +43,7 @@
private Boolean editOverrideLock;
private Date dateReadOnly;
private Integer userID;
+ private Integer originalUserID;
private Integer editOverrideUserID;
private String helpText;
private Integer copyTypeID;
@@ -58,7 +59,7 @@
public DesignDetailDTO(Long learningDesignID, Integer learningDesignUIID,
String description, String title, Long firstActivityID,
Boolean validDesign, Boolean readOnly, Boolean editLock,
- Date dateReadOnly, Integer userID, Integer editOverrideUserID, String helpText,
+ Date dateReadOnly, Integer userID, Integer originalUserID, Integer editOverrideUserID, String helpText,
Integer copyTypeID, String version, Integer designVersion, Long parentLearningDesignID,
Integer workspaceFolderID) {
this.learningDesignID = learningDesignID;
@@ -70,6 +71,7 @@
this.readOnly = readOnly;
this.dateReadOnly = dateReadOnly;
this.userID = userID;
+ this.originalUserID = originalUserID;
this.editOverrideUserID = editOverrideUserID;
this.helpText = helpText;
this.copyTypeID = copyTypeID;
@@ -91,6 +93,8 @@
this.editOverrideLock = learningDesign.getEditOverrideLock();
this.dateReadOnly = learningDesign.getDateReadOnly();
this.userID = learningDesign.getUser().getUserId();
+ this.originalUserID = learningDesign.getOriginalUser() == null ? null : learningDesign.getOriginalUser()
+ .getUserId();
this.editOverrideUserID = learningDesign.getEditOverrideUser().getUserId();
this.helpText = learningDesign.getHelpText();
this.copyTypeID = learningDesign.getCopyTypeID();
@@ -174,6 +178,11 @@
public Integer getUserID() {
return userID;
}
+
+ public Integer getOriginalUserID() {
+ return originalUserID;
+ }
+
/**
* @return Returns the editOnFlyUserID.
*/
@@ -212,4 +221,4 @@
public String getContentFolderID() {
return contentFolderID;
}
-}
+}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java
===================================================================
diff -u -r70a60f2862830ca6bd07e2b1252af3d79e4939af -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision 70a60f2862830ca6bd07e2b1252af3d79e4939af)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java (.../LearningDesignDTO.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -59,6 +59,7 @@
private Boolean editOverrideLock;
private Date dateReadOnly;
private Integer userID;
+ private Integer originalUserID;
private Integer editOverrideUserID;
private String editOverrideUserFullName;
private String helpText;
@@ -91,8 +92,8 @@
public LearningDesignDTO(Long learningDesignId, Integer learningDesignUIID, String description, String title,
Long firstActivityID, Integer firstActivityUIID, Long floatingActivityID, Integer floatingActivityUIID,
Integer maxId, Boolean validDesign, Boolean readOnly, Boolean editOverrideLock, Date dateReadOnly,
- Integer userID, Integer editOverrideUserID, String editOverrideUserFullName, String helpText,
- Integer copyTypeID, Date createDateTime, String version, Integer designVersion,
+ Integer userID, Integer originalUserID, Integer editOverrideUserID, String editOverrideUserFullName,
+ String helpText, Integer copyTypeID, Date createDateTime, String version, Integer designVersion,
Long originalLearningDesignID, Integer workspaceFolderID, Long duration, String licenseText,
Long licenseID, Date lastModifiedDateTime, String offlineInstructions, String onlineInstructions) {
super();
@@ -112,6 +113,7 @@
this.offlineInstructions = offlineInstructions;
this.onlineInstructions = onlineInstructions;
this.userID = userID;
+ this.originalUserID = originalUserID;
this.editOverrideUserID = editOverrideUserID;
this.editOverrideUserFullName = editOverrideUserFullName;
this.helpText = helpText;
@@ -158,7 +160,8 @@
this.onlineInstructions = learningDesign.getOnlineInstructions();
this.userID = learningDesign.getUser() != null ? learningDesign.getUser().getUserId() : null;
-
+ this.originalUserID = learningDesign.getOriginalUser() != null ? learningDesign.getOriginalUser().getUserId() : null;
+
this.editOverrideUserID = learningDesign.getEditOverrideUser() != null ? learningDesign.getEditOverrideUser()
.getUserId() : null;
this.editOverrideUserFullName = learningDesign.getEditOverrideUser() != null ? learningDesign
@@ -348,6 +351,10 @@
return userID;
}
+ public Integer getOriginalUserID() {
+ return originalUserID;
+ }
+
/**
* @return Returns the editOnFlyUserID.
*/
@@ -657,6 +664,12 @@
this.userID = userID;
}
+ public void setOriginalUserID(Integer originalUserID) {
+ if (!originalUserID.equals(WDDXTAGS.NUMERIC_NULL_VALUE_INTEGER)) {
+ this.originalUserID = originalUserID;
+ }
+ }
+
/**
* @param userID
* The userID to set.
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java
===================================================================
diff -u -r87e2cccf93ac20d2b8e953cea2cf36c8a8fb5b14 -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 87e2cccf93ac20d2b8e953cea2cf36c8a8fb5b14)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java (.../ExportToolContentService.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -2250,6 +2250,7 @@
ld.setCreateDateTime(new Date());
ld.setLastModifiedDateTime(new Date());
ld.setUser(importer);
+ ld.setOriginalUser(importer);
return ld;
}
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java
===================================================================
diff -u -r91ccb33d157ec327ee85a5e528d3429715e320b5 -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java (.../LD102Importer.java) (revision 91ccb33d157ec327ee85a5e528d3429715e320b5)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java (.../LD102Importer.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -538,6 +538,7 @@
}
ld.setUser(importer);
+ ld.setOriginalUser(importer);
if(folder != null)
ld.setWorkspaceFolder(folder);
Index: lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java
===================================================================
diff -u -r61e7bbf20d65e2ecb5e50f3154e52264003defa1 -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 61e7bbf20d65e2ecb5e50f3154e52264003defa1)
+++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java (.../WDDXTAGS.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -181,6 +181,7 @@
public static final String EDIT_OVERRIDE_LOCK = "editOverrideLock";
public static final String DATE_READ_ONLY = "dateReadOnly";
public static final String USER_ID = "userID";
+ public static final String ORIGINAL_USER_ID = "originalUserID";
public static final String EDIT_OVERRIDE_USER_ID = "editOverrideUserID";
public static final String COPY_TYPE = "copyTypeID";
Index: lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java
===================================================================
diff -u -r009fbce36f45d0929f8007c4bbc798242f57d3af -r097c7143c4edf7a649e785d0f58a1bbf640edd3b
--- lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java (.../FolderContentDTO.java) (revision 009fbce36f45d0929f8007c4bbc798242f57d3af)
+++ lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java (.../FolderContentDTO.java) (revision 097c7143c4edf7a649e785d0f58a1bbf640edd3b)
@@ -58,6 +58,7 @@
public String licenseText; // applicable for designs only
public Boolean readOnly; // applicable for designs only
public String author;
+ public String originalAuthor;
public FolderContentDTO(){
}
@@ -92,7 +93,8 @@
this.versionDetails = null;
this.readOnly = design.getReadOnly();
this.author = design.getUser().getFullName();
- }
+ this.originalAuthor = design.getOriginalUser() == null ? null : design.getOriginalUser().getFullName();
+ }
public FolderContentDTO(WorkspaceFolder workspaceFolder, Integer permissionCode, User user){
this.name = workspaceFolder.getName();
this.description = "Folder";
@@ -219,6 +221,14 @@
public void setAuthor(String author) {
this.author = author;
}
+
+ public String getOriginalAuthor() {
+ return originalAuthor;
+ }
+
+ public void setOriginalAuthor(String originalAuthor) {
+ this.originalAuthor = originalAuthor;
+ }
private String formatLastModifiedDateTime(TimeZone tz) {
if(this.lastModifiedDateTime != null) {
@@ -228,4 +238,4 @@
return null;
}
}
-}
+}
\ No newline at end of file