diff --git a/src/main/java/org/olat/course/run/CourseRuntimeController.java b/src/main/java/org/olat/course/run/CourseRuntimeController.java index a18734e8254707a7012a94bde3d6bddd2583de1f..47e0615b398ed966d7d61095f8af037cc5bd3016 100644 --- a/src/main/java/org/olat/course/run/CourseRuntimeController.java +++ b/src/main/java/org/olat/course/run/CourseRuntimeController.java @@ -303,6 +303,7 @@ public class CourseRuntimeController extends RepositoryEntryRuntimeController im } else { uce.setCourseReadOnly(Boolean.FALSE); } + uce.getScoreAccounting().evaluateAll(true); } courseRightsCache = new HashMap<>(); diff --git a/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java b/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java index 78bbeb407204a94526829022c02f1179a22df036..c0b17d34646dbe1b43d2eab7e448b8366ad57918 100644 --- a/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java +++ b/src/main/java/org/olat/course/run/scoring/AssessmentAccounting.java @@ -134,7 +134,13 @@ public class AssessmentAccounting implements ScoreAccounting { private AssessmentEntry getOrCreateAssessmentEntry(CourseNode courseNode) { AssessmentEntry entry = identToEntry.get(courseNode.getIdent()); if (entry == null) { - entry = getAssessmentManager().createAssessmentEntry(courseNode, getIdentity(), null); + entry = getAssessmentManager().getAssessmentEntry(courseNode, getIdentity()); + if (entry == null) { + entry = getAssessmentManager().createAssessmentEntry(courseNode, getIdentity(), null); + } + identToEntry.put(entry.getSubIdent(), entry); + AssessmentEvaluation assessmentEvaluation = getAssessmentEvaluation(courseNode); + courseNodeToEval.put(courseNode, assessmentEvaluation); } return entry; }