Index: lams_build/lib/lams/lams-central.jar =================================================================== diff -u -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7 -ra0ef65af815f042f01af7135248a0c5d39f734fd Binary files differ Index: lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java =================================================================== diff -u -r01459a4ea9a98edcb76c8a9b8f1a30c9e5e07806 -ra0ef65af815f042f01af7135248a0c5d39f734fd --- lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision 01459a4ea9a98edcb76c8a9b8f1a30c9e5e07806) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/ObjectExtractor.java (.../ObjectExtractor.java) (revision a0ef65af815f042f01af7135248a0c5d39f734fd) @@ -212,15 +212,15 @@ } } - if (keyExists(table, WDDXTAGS.PARENT_DESIGN_ID)) + if (keyExists(table, WDDXTAGS.ORIGINAL_DESIGN_ID)) { - Long parentLearningDesignID = WDDXProcessor.convertToLong(table,WDDXTAGS.PARENT_DESIGN_ID); + Long parentLearningDesignID = WDDXProcessor.convertToLong(table,WDDXTAGS.ORIGINAL_DESIGN_ID); if( parentLearningDesignID != null ){ LearningDesign parent = learningDesignDAO.getLearningDesignById(parentLearningDesignID); - learningDesign.setParentLearningDesign(parent); + learningDesign.setOriginalLearningDesign(parent); } else - learningDesign.setParentLearningDesign(null); + learningDesign.setOriginalLearningDesign(null); } Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java =================================================================== diff -u -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7 -ra0ef65af815f042f01af7135248a0c5d39f734fd --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision a0ef65af815f042f01af7135248a0c5d39f734fd) @@ -239,7 +239,8 @@ return flashMessage.serializeMessage(); } public LearningDesign copyLearningDesign(Long originalDesignID,Integer copyType, - Integer userID, Integer workspaceFolderID)throws UserException, LearningDesignException, + Integer userID, Integer workspaceFolderID, boolean setOriginalDesign) + throws UserException, LearningDesignException, WorkspaceFolderException, IOException{ LearningDesign originalDesign = learningDesignDAO.getLearningDesignById(originalDesignID); @@ -254,24 +255,15 @@ if(workspaceFolder==null) throw new WorkspaceFolderException("No such WorkspaceFolder with workspace_folder_id of:" + workspaceFolderID + " exists"); - return copyLearningDesign(originalDesign,copyType,user,workspaceFolder); + return copyLearningDesign(originalDesign,copyType,user,workspaceFolder, setOriginalDesign); } - /** - * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#copyLearningDesign(org.lamsfoundation.lams.learningdesign.LearningDesign, java.lang.Integer, org.lamsfoundation.lams.usermanagement.User) - */ - public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user){ - Integer userId = user.getUserId(); - WorkspaceFolder runSequencesFolder = workspaceFolderDAO.getRunSequencesFolderForUser(userId); - return copyLearningDesign(originalLearningDesign,copyType,user, runSequencesFolder); - } - /** * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#copyLearningDesign(org.lamsfoundation.lams.learningdesign.LearningDesign, java.lang.Integer, org.lamsfoundation.lams.usermanagement.User, org.lamsfoundation.lams.usermanagement.WorkspaceFolder) */ - public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user, WorkspaceFolder workspaceFolder) + public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user, WorkspaceFolder workspaceFolder, boolean setOriginalDesign) { - LearningDesign newLearningDesign = LearningDesign.createLearningDesignCopy(originalLearningDesign,copyType); + LearningDesign newLearningDesign = LearningDesign.createLearningDesignCopy(originalLearningDesign,copyType, setOriginalDesign); newLearningDesign.setUser(user); newLearningDesign.setWorkspaceFolder(workspaceFolder); learningDesignDAO.insert(newLearningDesign); @@ -280,6 +272,7 @@ updateDesignTransitions(originalLearningDesign,newLearningDesign); return newLearningDesign; } + /** * Calculates the First activity of the LearningDesign. *

Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java =================================================================== diff -u -rb31438f14603ef90bb73d6a0621a6b3e10f01ba7 -ra0ef65af815f042f01af7135248a0c5d39f734fd --- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision b31438f14603ef90bb73d6a0621a6b3e10f01ba7) +++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision a0ef65af815f042f01af7135248a0c5d39f734fd) @@ -55,7 +55,8 @@ /** * Create a copy of learning design as per the requested learning design - * and saves it in the default workspacefolder. + * and saves it in the given workspacefolder. Does not set the original + * learning design field, so it should not be used for creating lesson learning designs. * * @param originalLearningDesign The source learning design id. * @param copyType purpose of copying the design. Can have one of the follwing values @@ -65,14 +66,16 @@ *

  • LearningDesign.COPY_TYPE_PREVIEW (for previewing purposes)
  • * * @param user The user who has sent this request(author/teacher) + * @param setOriginalDesign If true, then sets the originalLearningDesign field in the new design * @return LearningDesign The new copy of learning design. */ - public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user); - public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user, WorkspaceFolder workspaceFolder); + public LearningDesign copyLearningDesign(LearningDesign originalLearningDesign,Integer copyType,User user, WorkspaceFolder workspaceFolder, boolean setOriginalDesign); + /** * Create a copy of learning design as per the requested learning design * and saves it in the given workspacefolder. Designed to be called when user tries - * to copy a learning design using the Flash interface. + * to copy a learning design using the Flash interface. Does not set the original + * learning design field, so it should not be used for creating lesson learning designs. * * @param originalLearningDesingID the source learning design id. * @param copyType purpose of copying the design. Can have one of the follwing values @@ -83,10 +86,11 @@ * * @param userID The user_id of the user who has sent this request(author/teacher) * @param workspaceFolderID The workspacefolder where this copy of the design would be saved + * @param setOriginalDesign If true, then sets the originalLearningDesign field in the new design * @return new LearningDesign */ public LearningDesign copyLearningDesign(Long originalLearningDesignID,Integer copyType, - Integer userID, Integer workspaceFolder)throws UserException, LearningDesignException, + Integer userID, Integer workspaceFolder, boolean setOriginalDesign)throws UserException, LearningDesignException, WorkspaceFolderException, IOException; /** * @return List Returns the list of all the available LearningDesign's Index: lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java =================================================================== diff -u -race87cf4f3dd13e79dc1bc653ad042942557c8dd -ra0ef65af815f042f01af7135248a0c5d39f734fd --- lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision ace87cf4f3dd13e79dc1bc653ad042942557c8dd) +++ lams_central/src/java/org/lamsfoundation/lams/workspace/service/WorkspaceManagementService.java (.../WorkspaceManagementService.java) (revision a0ef65af815f042f01af7135248a0c5d39f734fd) @@ -295,19 +295,8 @@ } else { - List list = learningDesignDAO.getLearningDesignsByParent(learningDesignID); - if(list==null || list.size()==0){ - folder.getLearningDesigns().remove(learningDesign); - learningDesign.setWorkspaceFolder(null); - } - else - { - isDeleteSuccessful = false; - flashMessage = new FlashMessage(MSG_KEY_DELETE, - "Cannot delete design with learning_design_id of:" + learningDesignID + - " as it is a PARENT.", - FlashMessage.ERROR); - } + folder.getLearningDesigns().remove(learningDesign); + learningDesign.setWorkspaceFolder(null); } } } @@ -607,7 +596,7 @@ try { LearningDesign ld = authoringService.copyLearningDesign(designID, copyType != null ? copyType : new Integer(LearningDesign.COPY_TYPE_NONE), - userID, targetFolderID); + userID, targetFolderID, false); message = new FlashMessage(MSG_KEY_COPY,ld.getLearningDesignId()); } catch ( Exception e ) { @@ -682,7 +671,7 @@ LearningDesign design = (LearningDesign)iterator.next(); authoringService.copyLearningDesign(design, new Integer(LearningDesign.COPY_TYPE_NONE), - user,targetWorkspaceFolder); + user,targetWorkspaceFolder, false); } } } @@ -800,16 +789,8 @@ " as it is READ ONLY.", FlashMessage.ERROR); }else{ - List list = learningDesignDAO.getLearningDesignsByParent(learningDesignID); - if(list==null || list.size()==0){ - learningDesignDAO.delete(learningDesign); - flashMessage = new FlashMessage(MSG_KEY_DELETE,"Learning Design deleted: "+ learningDesignID); - } - else - flashMessage = new FlashMessage(MSG_KEY_DELETE, - "Cannot delete design with learning_design_id of:" + learningDesignID + - " as it is a PARENT.", - FlashMessage.ERROR); + learningDesignDAO.delete(learningDesign); + flashMessage = new FlashMessage(MSG_KEY_DELETE,"Learning Design deleted: "+ learningDesignID); } }else flashMessage = FlashMessage.getUserNotAuthorized(MSG_KEY_DELETE,userID); Index: lams_central/test/java/org/lamsfoundation/lams/authoring/service/TestAuthoringService.java =================================================================== diff -u -r8773d184c34809bac6172def0c7ad0fc26fe515b -ra0ef65af815f042f01af7135248a0c5d39f734fd --- lams_central/test/java/org/lamsfoundation/lams/authoring/service/TestAuthoringService.java (.../TestAuthoringService.java) (revision 8773d184c34809bac6172def0c7ad0fc26fe515b) +++ lams_central/test/java/org/lamsfoundation/lams/authoring/service/TestAuthoringService.java (.../TestAuthoringService.java) (revision a0ef65af815f042f01af7135248a0c5d39f734fd) @@ -216,7 +216,7 @@ +"2005-2-7T1:0:23" +"Test Learning Design title" +"" - +"-111111" + +"-111111" +"1" +"string__value" +"-111111"