From 5ffbd92d9a23ac33bbd2a66cd13eb455ce4f6ec0 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Fri, 14 Mar 2014 09:34:18 +0100
Subject: [PATCH] OO-1011: persist new checklist

---
 src/main/java/de/bps/course/nodes/ChecklistCourseNode.java | 3 ++-
 src/main/java/de/bps/olat/modules/cl/ChecklistManager.java | 7 ++++++-
 2 files changed, 8 insertions(+), 2 deletions(-)

diff --git a/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java b/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java
index 5d31af9878c..796e6532d41 100644
--- a/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java
+++ b/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java
@@ -160,7 +160,8 @@ public class ChecklistCourseNode extends AbstractAccessableCourseNode {
 			} else 
 			// this is part of a copied course, the original checklist will be copied
 			if(getModuleConfiguration().get(CONF_CHECKLIST) != null) {
-				Checklist orgChecklist = ChecklistManager.getInstance().loadChecklist((Checklist) getModuleConfiguration().get(ChecklistCourseNode.CONF_CHECKLIST));
+				Checklist confChecklist = (Checklist)getModuleConfiguration().get(ChecklistCourseNode.CONF_CHECKLIST);
+				Checklist orgChecklist = ChecklistManager.getInstance().loadChecklist(confChecklist);
 				checklist = ChecklistManager.getInstance().copyChecklist(orgChecklist);
 			} else {
 				// no checklist available, create new one
diff --git a/src/main/java/de/bps/olat/modules/cl/ChecklistManager.java b/src/main/java/de/bps/olat/modules/cl/ChecklistManager.java
index c0441d85f05..457bde66482 100644
--- a/src/main/java/de/bps/olat/modules/cl/ChecklistManager.java
+++ b/src/main/java/de/bps/olat/modules/cl/ChecklistManager.java
@@ -95,7 +95,12 @@ public class ChecklistManager {
 	 */
 	public Checklist saveChecklist(Checklist cl) {
 		cl.setLastModified(new Date());
-		return DBFactory.getInstance().getCurrentEntityManager().merge(cl);
+		if(cl.getKey() == null) {
+			DBFactory.getInstance().getCurrentEntityManager().persist(cl);
+		} else {
+			cl = DBFactory.getInstance().getCurrentEntityManager().merge(cl);
+		}
+		return cl;
 	}
 	
 	/**
-- 
GitLab