From 725343a82b8dbe7530c64e33c2999df574ae7c8d Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 4 Jul 2013 10:53:09 +0200
Subject: [PATCH] OO-619: for compatibility, set the delivery options for old
 single page, structure node and CP to use the glossary

---
 .../java/org/olat/course/nodes/SPCourseNode.java     | 10 +++++++++-
 .../java/org/olat/course/nodes/STCourseNode.java     | 12 ++++++++++++
 src/main/java/org/olat/ims/cp/CPManagerImpl.java     | 12 +++++++++---
 3 files changed, 30 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/course/nodes/SPCourseNode.java b/src/main/java/org/olat/course/nodes/SPCourseNode.java
index a5007d71b09..7d562995f1b 100644
--- a/src/main/java/org/olat/course/nodes/SPCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/SPCourseNode.java
@@ -209,7 +209,7 @@ public class SPCourseNode extends AbstractAccessableCourseNode {
 			config.set(SPEditController.CONFIG_KEY_DELIVERYOPTIONS, defaultOptions);
 			
 			// new since config version 3
-			config.setConfigurationVersion(3);
+			config.setConfigurationVersion(4);
 		} else {
 			config.remove(NodeEditController.CONFIG_INTEGRATION);
 			int version = config.getConfigurationVersion();
@@ -219,6 +219,14 @@ public class SPCourseNode extends AbstractAccessableCourseNode {
 				config.setBooleanEntry(SPEditController.CONFIG_KEY_ALLOW_RELATIVE_LINKS, Boolean.FALSE.booleanValue());
 				config.setConfigurationVersion(2);
 			}
+			if(version < 4) {
+				if(config.get(SPEditController.CONFIG_KEY_DELIVERYOPTIONS) == null) {
+					DeliveryOptions defaultOptions = DeliveryOptions.defaultWithGlossary();
+					config.set(SPEditController.CONFIG_KEY_DELIVERYOPTIONS, defaultOptions);
+				}
+				config.setConfigurationVersion(4);
+			}
+			
 			//there was a version 3 but all keys new in this version have been removed
 		}
 	}
diff --git a/src/main/java/org/olat/course/nodes/STCourseNode.java b/src/main/java/org/olat/course/nodes/STCourseNode.java
index 7248767997b..32921582ea9 100644
--- a/src/main/java/org/olat/course/nodes/STCourseNode.java
+++ b/src/main/java/org/olat/course/nodes/STCourseNode.java
@@ -565,6 +565,10 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 			// set the default display to peekview in two columns
 			config.setStringValue(STCourseNodeEditController.CONFIG_KEY_DISPLAY_TYPE, STCourseNodeEditController.CONFIG_VALUE_DISPLAY_PEEKVIEW);
 			config.setIntValue(STCourseNodeEditController.CONFIG_KEY_COLUMNS, 2);
+
+			DeliveryOptions defaultOptions = DeliveryOptions.defaultWithGlossary();
+			config.set(SPEditController.CONFIG_KEY_DELIVERYOPTIONS, defaultOptions);
+			
 			config.setConfigurationVersion(3);
 		} else {
 			// update to version 2
@@ -591,6 +595,14 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Assess
 				}
 				config.setConfigurationVersion(3);
 			}
+
+			if (config.getConfigurationVersion() < 4) {
+				if(config.get(SPEditController.CONFIG_KEY_DELIVERYOPTIONS) == null) {
+					DeliveryOptions defaultOptions = DeliveryOptions.defaultWithGlossary();
+					config.set(SPEditController.CONFIG_KEY_DELIVERYOPTIONS, defaultOptions);
+				}
+				config.setConfigurationVersion(4);
+			}
 		}
 	}
 	
diff --git a/src/main/java/org/olat/ims/cp/CPManagerImpl.java b/src/main/java/org/olat/ims/cp/CPManagerImpl.java
index 7acef0e1c75..d57bd5047f8 100644
--- a/src/main/java/org/olat/ims/cp/CPManagerImpl.java
+++ b/src/main/java/org/olat/ims/cp/CPManagerImpl.java
@@ -95,11 +95,17 @@ public class CPManagerImpl extends CPManager {
 		FileResourceManager frm = FileResourceManager.getInstance();
 		File reFolder = frm.getFileResourceRoot(ores);
 		File configXml = new File(reFolder, PACKAGE_CONFIG_FILE_NAME);
+		
+		CPPackageConfig config;
 		if(configXml.exists()) {
-			CPPackageConfig config = (CPPackageConfig)configXstream.fromXML(configXml);
-			return config;
+			config = (CPPackageConfig)configXstream.fromXML(configXml);
+		} else {
+			//set default config
+			config = new CPPackageConfig();
+			config.setDeliveryOptions(DeliveryOptions.defaultWithGlossary());
+			setCPPackageConfig(ores, config);
 		}
-		return null;
+		return config;
 	}
 
 	@Override
-- 
GitLab