Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java
===================================================================
diff -u -rc46a8e8187c1ca4e546ed2952192e63606d95c68 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision c46a8e8187c1ca4e546ed2952192e63606d95c68)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java (.../AuthoringService.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -378,14 +378,6 @@
}
/**
- * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningDesigns()
- */
- @Override
- public List getAllLearningDesigns() {
- return learningDesignDAO.getAllLearningDesigns();
- }
-
- /**
* @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningLibraries()
*/
@Override
@@ -1719,19 +1711,6 @@
}
/**
- * (non-Javadoc)
- *
- * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningDesignDetails()
- */
- @Override
- public String getAllLearningDesignDetails() throws IOException {
- Iterator iterator = getAllLearningDesigns().iterator();
- ArrayList arrayList = createDesignDetailsPacket(iterator);
- FlashMessage flashMessage = new FlashMessage("getAllLearningDesignDetails", arrayList);
- return flashMessage.serializeMessage();
- }
-
- /**
* This is a utility method used by the method getAllLearningDesignDetails
to pack the required
* information in a data transfer object.
*
@@ -1751,19 +1730,6 @@
/**
* (non-Javadoc)
*
- * @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getLearningDesignsForUser(java.lang.Long)
- */
- @Override
- public String getLearningDesignsForUser(Long userID) throws IOException {
- List list = learningDesignDAO.getLearningDesignByUserId(userID);
- ArrayList arrayList = createDesignDetailsPacket(list.iterator());
- FlashMessage flashMessage = new FlashMessage("getLearningDesignsForUser", arrayList);
- return flashMessage.serializeMessage();
- }
-
- /**
- * (non-Javadoc)
- *
* @see org.lamsfoundation.lams.authoring.service.IAuthoringService#getAllLearningLibraryDetails()
*/
@Override
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java
===================================================================
diff -u -r1367c68bda1ff51ded26c5220a9a059fa67235f5 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision 1367c68bda1ff51ded26c5220a9a059fa67235f5)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java (.../IAuthoringService.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -153,11 +153,6 @@
throws UserException, LearningDesignException, WorkspaceFolderException, IOException;
/**
- * @return List Returns the list of all the available LearningDesign's
- */
- public List getAllLearningDesigns();
-
- /**
* @return List Returns a list of all available Learning Libraries
*/
public List getAllLearningLibraries();
@@ -222,14 +217,6 @@
throws IOException;
/**
- * This method returns a list of all available Learning Designs in WDDX format.
- *
- * @return String The required list in WDDX format
- * @throws IOException
- */
- public String getAllLearningDesignDetails() throws IOException;
-
- /**
* Saves the LearningDesign to the database. Will update if already saved. Used when a design is run.
*
* @param learningDesign
@@ -238,16 +225,6 @@
public void saveLearningDesign(LearningDesign learningDesign);
/**
- * Returns a list of LearningDesign's in WDDX format, belonging to the given user
- *
- * @param user
- * The user_id of the User for whom the designs are to be fetched
- * @return The requested list of LearningDesign's in WDDX format
- * @throws IOException
- */
- public String getLearningDesignsForUser(Long userID) throws IOException;
-
- /**
* This method returns a list of all available system libraries in WDDX format.
*
* @return String The required information in WDDX format
Index: lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java
===================================================================
diff -u -r4ab4ba6ef63a831648ca63ca4d91edd4c0fba55f -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision 4ab4ba6ef63a831648ca63ca4d91edd4c0fba55f)
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java (.../AuthoringAction.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -276,33 +276,6 @@
}
- public ActionForward getLearningDesignsForUser(ActionMapping mapping, ActionForm form, HttpServletRequest request,
- HttpServletResponse response) throws ServletException, IOException {
- String wddxPacket;
- IAuthoringService authoringService = getAuthoringService();
- try {
- Long userID = new Long(getUserId());
-
- wddxPacket = authoringService.getLearningDesignsForUser(userID);
- } catch (Exception e) {
- wddxPacket = handleException(e, "getLearningDesignsForUser", authoringService, true).serializeMessage();
- }
- return outputPacket(mapping, request, response, wddxPacket, "details");
- }
-
- public ActionForward getAllLearningDesignDetails(ActionMapping mapping, ActionForm form,
- HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
- String wddxPacket;
- IAuthoringService authoringService = getAuthoringService();
- try {
- wddxPacket = authoringService.getAllLearningDesignDetails();
- } catch (Exception e) {
- wddxPacket = handleException(e, "getAllLearningDesignDetails", authoringService, true).serializeMessage();
- }
- AuthoringAction.log.debug("getAllLearningDesignDetails: returning " + wddxPacket);
- return outputPacket(mapping, request, response, wddxPacket, "details");
- }
-
public ActionForward getAllLearningLibraryDetails(ActionMapping mapping, ActionForm form,
HttpServletRequest request, HttpServletResponse response) throws ServletException, IOException {
String wddxPacket;
Index: lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml
===================================================================
diff -u -rc7798d2b81a0595194a5e905ef6c33e372ad8007 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision c7798d2b81a0595194a5e905ef6c33e372ad8007)
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml (.../LearningDesign.hbm.xml) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -151,6 +151,14 @@
+
+
@hibernate.property column ="duration"
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql
===================================================================
diff -u
--- lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql (revision 0)
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -0,0 +1,12 @@
+-- Turn off autocommit, so nothing is committed if there is an error
+
+SET AUTOCOMMIT = 0;
+SET FOREIGN_KEY_CHECKS=0;
+
+-- LDEV-3491 Mark designs as removed without deleting the record
+ALTER TABLE lams_learning_design ADD COLUMN removed TINYINT(1) NOT NULL DEFAULT 0;
+
+-- If there were no errors, commit and restore autocommit to on
+SET FOREIGN_KEY_CHECKS=0;
+COMMIT;
+SET AUTOCOMMIT = 1;
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java
===================================================================
diff -u -r0144e9d0f7fc574a887933024183a8a9049bc414 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision 0144e9d0f7fc574a887933024183a8a9049bc414)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java (.../LearningDesign.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -156,7 +156,10 @@
/** persistent field*/
private Date lastModifiedDateTime;
-
+
+ /** persistent field*/
+ private Boolean removed;
+
/* If the values for createDateTime and/or lastModifiedDateTime
* are null, then it will default to the current datetime.
*/
@@ -219,6 +222,7 @@
this.editOverrideLock = editOverrideLock;
this.editOverrideUser = editOverrideUser;
this.designVersion = designVersion;
+ this.removed = Boolean.FALSE;
}
/** default constructor */
@@ -228,6 +232,7 @@
this.lastModifiedDateTime = new Date();
this.editOverrideLock = false;
this.designVersion = new Integer(1);
+ this.removed = Boolean.FALSE;
}
/** minimal constructor */
@@ -259,6 +264,7 @@
this.lastModifiedDateTime = new Date();
this.editOverrideLock = false;
this.designVersion = new Integer(1);
+ this.removed = Boolean.FALSE;
}
/** Create a new learning design based on an existing learning design. If setOriginalDesign is true, then set the input design
* as the original design in the copied design - this is used when runtime copies of a design are created. It is not used
@@ -297,6 +303,7 @@
newDesign.setEditOverrideLock(design.getEditOverrideLock());
newDesign.setEditOverrideUser(design.getEditOverrideUser());
newDesign.setOriginalUser(design.getOriginalUser());
+ newDesign.setRemoved(design.getRemoved());
return newDesign;
}
@@ -593,4 +600,11 @@
public FloatingActivity getFloatingActivity() {
return floatingActivity;
}
+ public Boolean getRemoved() {
+ return removed;
+ }
+ public void setRemoved(Boolean removed) {
+ this.removed = removed;
+ }
+
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java
===================================================================
diff -u -r423c4fff74f1672a86716d95ab5c4dc4b75ab1c2 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java (.../ILearningDesignDAO.java) (revision 423c4fff74f1672a86716d95ab5c4dc4b75ab1c2)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java (.../ILearningDesignDAO.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -28,7 +28,7 @@
import org.lamsfoundation.lams.dao.IBaseDAO;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.LearningDesignAccess;
-;
+
/**
* @author Manpreet Minhas
*/
@@ -39,24 +39,8 @@
* @return LearningDesign populated LearningDesign object
*/
public LearningDesign getLearningDesignById(Long learningDesignId);
- /**
- * @param title
- * @return LearningDesign populated LearningDesign object
- */
- public LearningDesign getLearningDesignByTitle(String title);
/**
- * @return List of all Learning designs
- */
- public List getAllLearningDesigns();
-
- /**
- * @param userID
- * @return List of learning designs with given userID
- */
- public List getLearningDesignByUserId(Long userID);
-
- /**
* This method returns a list of all designs that are valid in
* the given workspaceFolder.
*
@@ -76,17 +60,16 @@
*/
public List getAllLearningDesignsInFolder(Integer workspaceFolderID);
+ /** This method returns a List of Learning Designs with given
+ * original_learning_design_id
+ *
+ * @param originalDesignID The original_learning_design_id
+ * @return List The List of all corresponding Learning designs with
+ * given original_learning_design_id
+ */
+ public List getLearningDesignsByOriginalDesign(Long originalDesignID);
+
/**
- * This method returns a List of Learning Designs with given
- * original_learning_design_id
- *
- * @param originalDesignID The original_learning_design_id
- * @return List The List of all corresponding Learning designs with
- * given original_learning_design_id
- */
- public List getLearningDesignsByOriginalDesign(Long originalDesignID);
-
- /**
* Get the titles of all the learning designs with the given prefix in the given folder.
*/
public List getLearningDesignTitlesByWorkspaceFolder(Integer workspaceFolderID, String prefix);
@@ -111,4 +94,5 @@
* Count how many learning designs exist in a given folder.
*/
public long countAllLearningDesigns(Integer workspaceFolderID, boolean validDesignsOnly);
+
}
\ No newline at end of file
Index: lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java
===================================================================
diff -u -r423c4fff74f1672a86716d95ab5c4dc4b75ab1c2 -rb8ac974ec0363f4fe59a224e41093f99243927d5
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java (.../LearningDesignDAO.java) (revision 423c4fff74f1672a86716d95ab5c4dc4b75ab1c2)
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java (.../LearningDesignDAO.java) (revision b8ac974ec0363f4fe59a224e41093f99243927d5)
@@ -42,18 +42,16 @@
public class LearningDesignDAO extends LAMSBaseDAO implements ILearningDesignDAO {
private static final String TABLENAME ="lams_learning_design";
- private static final String FIND_BY_USERID = "from " + TABLENAME +" in class " + LearningDesign.class.getName()+ " where user_id =?";
-
private static final String VALID_IN_FOLDER ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+
- " where valid_design_flag=true AND workspace_folder_id=?";
+ " where valid_design_flag=true AND workspace_folder_id=? AND removed=0";
private static final String ALL_IN_FOLDER ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+
- " where workspace_folder_id=?";
+ " where workspace_folder_id=? AND removed=0";
private static final String FIND_BY_ORIGINAL ="from " + TABLENAME +" in class " + LearningDesign.class.getName()+
- " where original_learning_design_id=?";
+ " where original_learning_design_id=? AND removed=0";
private static final String FIND_LD_NAMES_IN_FOLDER = "select title from " + LearningDesign.class.getName()+
- " where workspace_folder_id=? and title like ?";
+ " where workspace_folder_id=? AND title like ? AND removed=0";
private static final String ACCESS_BY_USER = "from " + LearningDesignAccess.class.getName()
+ " as a where a.userId = ? order by a.accessDate desc";
@@ -62,35 +60,10 @@
* @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getLearningDesignById(java.lang.Long)
*/
public LearningDesign getLearningDesignById(Long learningDesignId) {
- return (LearningDesign)super.find(LearningDesign.class,learningDesignId);
+ LearningDesign design = (LearningDesign) super.find(LearningDesign.class,learningDesignId);
+ return design != null && ! design.getRemoved() ? design : null;
}
-
- /*
- * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getLearningDesignByTitle(java.lang.String)
- */
- public LearningDesign getLearningDesignByTitle(String title) {
- return (LearningDesign) super.find(LearningDesign.class,title);
- }
-
- /*
- * @see org.lamsfoundation.lams.learningdesign.dao.interfaces.ILearningDesignDAO#getAllLearningDesigns()
- */
- public List getAllLearningDesigns() {
- return super.findAll(LearningDesign.class);
- }
- public List getLearningDesignByUserId(Long userID){
- if ( userID != null ) {
- try{
- Query query = getSessionFactory().getCurrentSession().createQuery(FIND_BY_USERID);
- query.setLong(0,userID.longValue());
- return query.list();
- }catch(HibernateException he){
- }
- }
- return null;
- }
-
/**
* (non-Javadoc)
* @see org.lamsfoundation.lams.learningdesign.dao.ILearningDesignDAO#getAllValidLearningDesignsInFolder(java.lang.Integer)
@@ -166,9 +139,18 @@
public long countAllLearningDesigns(Integer workspaceFolderID, boolean validDesignsOnly) {
Map properties = new HashMap();
properties.put("workspaceFolder.workspaceFolderId", workspaceFolderID);
+ properties.put("removed", Boolean.FALSE);
if ( validDesignsOnly )
properties.put("validDesign", Boolean.valueOf(validDesignsOnly));
return countByProperties(LearningDesign.class, properties);
}
+ /** Overrides the standard delete to merely mark as removed in the database. */
+ public void delete(Object object) {
+ LearningDesign design = (LearningDesign) object;
+ if ( design != null && ! design.getRemoved() ) {
+ design.setRemoved(Boolean.TRUE);
+ update(design);
+ }
+ }
}
\ No newline at end of file