From 54d8de6f634e47e4474afdfbddfa98d67530e239 Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Thu, 5 Mar 2020 13:54:14 +0100
Subject: [PATCH] OO-4207: Option to calculate the learning progress is not
 permanently persisted

---
 .../ui/NodeAccessSettingsController.java      | 23 ++++++++-----------
 1 file changed, 9 insertions(+), 14 deletions(-)

diff --git a/src/main/java/org/olat/course/nodeaccess/ui/NodeAccessSettingsController.java b/src/main/java/org/olat/course/nodeaccess/ui/NodeAccessSettingsController.java
index 4ef052676fd..d453b0daef1 100644
--- a/src/main/java/org/olat/course/nodeaccess/ui/NodeAccessSettingsController.java
+++ b/src/main/java/org/olat/course/nodeaccess/ui/NodeAccessSettingsController.java
@@ -202,19 +202,6 @@ public class NodeAccessSettingsController extends FormBasicController {
 		boolean changedToDurationType = CompletionType.duration.equals(completionType)
 				&& !CompletionType.duration.equals(courseConfig.getCompletionType());
 		
-		if (changedToDurationType) {
-			doConfirmCompletionTypeDuration(ureq);
-		} else {
-			if(CourseFactory.isCourseEditSessionOpen(courseEntry.getOlatResource().getResourceableId())) {
-				showWarning("error.course.locked");
-				initCompletionTypeFromConfig();
-				return;
-			}
-			saveCompletionTypeAndCloseEditSession(completionType);
-		}
-	}
-
-	private void doConfirmCompletionTypeDuration(UserRequest ureq) {
 		OLATResourceable courseOres = courseEntry.getOlatResource();
 		if(CourseFactory.isCourseEditSessionOpen(courseOres.getResourceableId())) {
 			showWarning("error.course.locked");
@@ -223,6 +210,14 @@ public class NodeAccessSettingsController extends FormBasicController {
 		}
 		
 		CourseFactory.openCourseEditSession(courseOres.getResourceableId());
+		if (changedToDurationType) {
+			doConfirmCompletionTypeDuration(ureq);
+		} else {
+			saveCompletionTypeAndCloseEditSession(completionType);
+		}
+	}
+
+	private void doConfirmCompletionTypeDuration(UserRequest ureq) {
 		durationConfirmationCtrl = new DurationConfirmationController(ureq, getWindowControl());
 		listenTo(durationConfirmationCtrl);
 		
@@ -232,7 +227,6 @@ public class NodeAccessSettingsController extends FormBasicController {
 		listenTo(cmc);
 	}
 	
-	
 	private void doSetCompletionTypeDuration(Integer duration) {
 		ICourse course = CourseFactory.loadCourse(courseEntry);
 		
@@ -267,6 +261,7 @@ public class NodeAccessSettingsController extends FormBasicController {
 			courseConfig.setCompletionType(completionType);
 			logActivity(completionType);
 		}
+		CourseFactory.setCourseConfig(courseEntry.getOlatResource().getResourceableId(), courseConfig);
 		CourseFactory.closeCourseEditSession(courseEntry.getOlatResource().getResourceableId(), false);
 	}
 
-- 
GitLab