Index: lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java,v
diff -u -r1.111 -r1.112
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 6 Jul 2015 09:56:21 -0000 1.111
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/AuthoringService.java 23 Jul 2015 00:52:13 -0000 1.112
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java,v
diff -u -r1.45 -r1.46
--- lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 23 Oct 2014 13:16:43 -0000 1.45
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/service/IAuthoringService.java 23 Jul 2015 00:52:13 -0000 1.46
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java,v
diff -u -r1.57 -r1.58
--- lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 3 Nov 2014 13:39:58 -0000 1.57
+++ lams_central/src/java/org/lamsfoundation/lams/authoring/web/AuthoringAction.java 23 Jul 2015 00:52:13 -0000 1.58
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml,v
diff -u -r1.24 -r1.25
--- lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 27 Aug 2014 12:26:33 -0000 1.24
+++ lams_common/conf/hibernate/mappings/org/lamsfoundation/lams/learningdesign/LearningDesign.hbm.xml 23 Jul 2015 00:52:58 -0000 1.25
@@ -151,6 +151,14 @@
+
+
@hibernate.property column ="duration"
Index: lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql,v
diff -u
--- /dev/null 1 Jan 1970 00:00:00 -0000
+++ lams_common/src/java/org/lamsfoundation/lams/dbupdates/patch02040042.sql 23 Jul 2015 00:52:47 -0000 1.1
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java,v
diff -u -r1.40 -r1.41
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 4 Apr 2014 12:34:43 -0000 1.40
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/LearningDesign.java 23 Jul 2015 00:52:47 -0000 1.41
@@ -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
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java,v
diff -u -r1.15 -r1.16
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java 16 Jul 2015 23:31:38 -0000 1.15
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/ILearningDesignDAO.java 23 Jul 2015 00:52:47 -0000 1.16
@@ -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.
*
@@ -77,16 +61,6 @@
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);
-
- /**
* 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 +85,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
===================================================================
RCS file: /usr/local/cvsroot/lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java,v
diff -u -r1.16 -r1.17
--- lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java 16 Jul 2015 23:31:38 -0000 1.16
+++ lams_common/src/java/org/lamsfoundation/lams/learningdesign/dao/hibernate/LearningDesignDAO.java 23 Jul 2015 00:52:47 -0000 1.17
@@ -27,8 +27,10 @@
import java.util.List;
import java.util.Map;
+import org.apache.log4j.Logger;
import org.hibernate.HibernateException;
import org.hibernate.Query;
+import org.lamsfoundation.lams.authoring.web.AuthoringAction;
import org.lamsfoundation.lams.dao.hibernate.BaseDAO;
import org.lamsfoundation.lams.learningdesign.LearningDesign;
import org.lamsfoundation.lams.learningdesign.LearningDesignAccess;
@@ -38,26 +40,19 @@
* @author Manpreet Minhas
*/
public class LearningDesignDAO extends BaseDAO implements ILearningDesignDAO {
-
+ private static Logger log = Logger.getLogger(AuthoringAction.class);
+
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 COUNT_VALID_IN_FOLDER = "SELECT COUNT(*) from " + TABLENAME
- + " where valid_design_flag=true AND workspace_folder_id=?";
-
- private static final String COUNT_ALL_IN_FOLDER = "SELECT COUNT(*) from " + TABLENAME + " where workspace_folder_id=?";
-
-
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";
@@ -66,35 +61,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 = this.getSession().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)
@@ -115,6 +85,7 @@
* @see getLearningDesignsByOriginalDesign#getLearningDesignsByParent(java.lang.Long)
*/
public List getLearningDesignsByOriginalDesign(Long originalDesignID){
+ log.error("getLearningDesignsByOriginalDesign called");
List list = this.getHibernateTemplate().find(FIND_BY_ORIGINAL,originalDesignID);
return list;
}
@@ -131,7 +102,7 @@
@SuppressWarnings("unchecked")
@Override
public List getAccessByUser(Integer userId) {
- return this.getHibernateTemplate().find(ACCESS_BY_USER, userId);
+ return this.getHibernateTemplate().find(ACCESS_BY_USER, userId);
}
@SuppressWarnings("unchecked")
@@ -170,9 +141,19 @@
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;
+ log.debug("Removing learning design "+design);
+ if ( design != null && ! design.getRemoved() ) {
+ design.setRemoved(Boolean.TRUE);
+ update(design);
+ }
+ }
}
\ No newline at end of file