Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java,v diff -u -r1.84 -r1.85 --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java 26 Jul 2009 22:19:13 -0000 1.84 +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java 10 Jan 2012 15:42:06 -0000 1.85 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml,v diff -u -r1.20 -r1.21 --- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 10 Feb 2009 01:52:21 -0000 1.20 +++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 10 Jan 2012 15:42:02 -0000 1.21 @@ -210,6 +210,11 @@ + + + + + Index: lams_common/db/sql/create_lams_11_tables.sql =================================================================== RCS file: /usr/local/cvsroot/lams_common/db/sql/create_lams_11_tables.sql,v diff -u -r1.160 -r1.161 --- lams_common/db/sql/create_lams_11_tables.sql 5 Dec 2011 16:04:24 -0000 1.160 +++ lams_common/db/sql/create_lams_11_tables.sql 10 Jan 2012 15:42:02 -0000 1.161 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql 3 Jan 2012 18:56:54 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040006.sql 10 Jan 2012 15:42:02 -0000 1.17 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java,v diff -u -r1.36 -r1.37 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 10 Feb 2009 01:52:21 -0000 1.36 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 10 Jan 2012 15:42:02 -0000 1.37 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java,v diff -u -r1.10 -r1.11 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java 9 May 2007 01:07:23 -0000 1.10 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/DesignDetailDTO.java 10 Jan 2012 15:42:02 -0000 1.11 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java,v diff -u -r1.37 -r1.38 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java 11 Mar 2009 01:08:32 -0000 1.37 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dto/LearningDesignDTO.java 10 Jan 2012 15:42:02 -0000 1.38 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java,v diff -u -r1.110 -r1.111 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 5 May 2011 15:23:47 -0000 1.110 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/ExportToolContentService.java 10 Jan 2012 15:42:02 -0000 1.111 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java,v diff -u -r1.26 -r1.27 --- lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java 21 May 2007 08:20:46 -0000 1.26 +++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/service/LD102Importer.java 10 Jan 2012 15:42:02 -0000 1.27 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java,v diff -u -r1.37 -r1.38 --- lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java 2 Jul 2009 13:06:09 -0000 1.37 +++ lams_common/src/java/org/lamsfoundation/lams/util/wddx/WDDXTAGS.java 10 Jan 2012 15:42:02 -0000 1.38 @@ -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 =================================================================== RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java,v diff -u -r1.16 -r1.17 --- lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 1 Oct 2010 20:36:29 -0000 1.16 +++ lams_common/src/java/org/lamsfoundation/lams/workspace/dto/FolderContentDTO.java 10 Jan 2012 15:42:02 -0000 1.17 @@ -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