diff --git a/src/main/java/de/bps/course/nodewizard/CopyStructureWizardStepRunnerCallback.java b/src/main/java/de/bps/course/nodewizard/CopyStructureWizardStepRunnerCallback.java index 673842e32151dc7b6f114b6e33b0624aa091378e..51c9ba700fc6e733979806be6f11f56f04523763 100644 --- a/src/main/java/de/bps/course/nodewizard/CopyStructureWizardStepRunnerCallback.java +++ b/src/main/java/de/bps/course/nodewizard/CopyStructureWizardStepRunnerCallback.java @@ -36,6 +36,7 @@ import org.olat.core.util.nodes.INode; import org.olat.core.util.vfs.VFSContainer; import org.olat.course.CourseFactory; import org.olat.course.export.CourseFragmentEnvironmentMapper; +import org.olat.course.learningpath.manager.LearningPathNodeAccessProvider; import org.olat.course.nodes.CourseNode; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.tree.CourseEditorTreeModel; @@ -144,6 +145,9 @@ public class CopyStructureWizardStepRunnerCallback implements StepRunnerCallback cncc.configure(); cncc.updateNodeReferences(); + if (LearningPathNodeAccessProvider.TYPE.equals(process.getTargetCourse().getCourseConfig().getNodeAccessType().getType())) { + cncc.clearLearningPathIncompatibleSettings(); + } } diff --git a/src/main/java/de/bps/course/nodewizard/coursenode/AbstractCourseNodeCopyConfigurator.java b/src/main/java/de/bps/course/nodewizard/coursenode/AbstractCourseNodeCopyConfigurator.java index f4dc3440be729ca215789e1299c4fc4b329a8c14..bd111dcee32c62788b45cfdf6e495ca0545a35bd 100644 --- a/src/main/java/de/bps/course/nodewizard/coursenode/AbstractCourseNodeCopyConfigurator.java +++ b/src/main/java/de/bps/course/nodewizard/coursenode/AbstractCourseNodeCopyConfigurator.java @@ -157,4 +157,13 @@ public class AbstractCourseNodeCopyConfigurator implements ICourseNodeCopyConfig return condition; } + @Override + public void clearLearningPathIncompatibleSettings() { + // Precondition access / visibility are no longer used in the learning path node access course type + targetCourseNode.getPreConditionVisibility().setExpertMode(false); + targetCourseNode.getPreConditionVisibility().clearEasyConfig(); + targetCourseNode.getPreConditionAccess().setExpertMode(false); + targetCourseNode.getPreConditionAccess().clearEasyConfig(); + } + } diff --git a/src/main/java/de/bps/course/nodewizard/coursenode/BCCourseNodeCopyConfigurator.java b/src/main/java/de/bps/course/nodewizard/coursenode/BCCourseNodeCopyConfigurator.java index 5113fa4432ac6aae094e127ce2196c5ea1cfb70a..6fc32690d297286a6fa85a93f05f3dfab7bc6eb3 100644 --- a/src/main/java/de/bps/course/nodewizard/coursenode/BCCourseNodeCopyConfigurator.java +++ b/src/main/java/de/bps/course/nodewizard/coursenode/BCCourseNodeCopyConfigurator.java @@ -62,4 +62,10 @@ public class BCCourseNodeCopyConfigurator extends AbstractCourseNodeCopyConfigur targetFolderNodeDir.mkdirs(); FileUtils.copyDirContentsToDir(srcFolderNodeDir, targetFolderNodeDir, false, ""); } + + @Override + public void clearLearningPathIncompatibleSettings() { + super.clearLearningPathIncompatibleSettings(); + ((BCCourseNode) this.srcCourseNode).removeCustomPreconditions(); + } } diff --git a/src/main/java/de/bps/course/nodewizard/coursenode/ICourseNodeCopyConfigurator.java b/src/main/java/de/bps/course/nodewizard/coursenode/ICourseNodeCopyConfigurator.java index cd07669f74187d7b2baeb1fb555f717eb75617f1..42684e933025ee837ad1245277db853cb420c118 100644 --- a/src/main/java/de/bps/course/nodewizard/coursenode/ICourseNodeCopyConfigurator.java +++ b/src/main/java/de/bps/course/nodewizard/coursenode/ICourseNodeCopyConfigurator.java @@ -30,4 +30,5 @@ public interface ICourseNodeCopyConfigurator { void updateNodeReferences(); + void clearLearningPathIncompatibleSettings(); }