From 9e30a974224590e15c7092c52513d2c10988c244 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 16 Oct 2019 19:27:38 +0200
Subject: [PATCH] OO-4307: delete assessment mode with lecture block if linked

---
 .../olat/modules/lecture/manager/LectureBlockDAO.java    | 9 +++++++++
 1 file changed, 9 insertions(+)

diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
index 2494b77fb23..0b4e6a9f5c6 100644
--- a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
+++ b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java
@@ -42,6 +42,8 @@ import org.olat.core.commons.persistence.PersistenceHelper;
 import org.olat.core.commons.persistence.QueryBuilder;
 import org.olat.core.id.Identity;
 import org.olat.core.util.StringHelper;
+import org.olat.course.assessment.AssessmentMode;
+import org.olat.course.assessment.manager.AssessmentModeDAO;
 import org.olat.modules.curriculum.CurriculumElement;
 import org.olat.modules.curriculum.CurriculumRoles;
 import org.olat.modules.lecture.LectureBlock;
@@ -78,6 +80,8 @@ public class LectureBlockDAO {
 	private DB dbInstance;
 	@Autowired
 	private GroupDAO groupDao;
+	@Autowired
+	private AssessmentModeDAO assessmentModeDao;
 	
 	public LectureBlock createLectureBlock(RepositoryEntry entry) {
 		LectureBlockImpl block = new LectureBlockImpl();
@@ -126,6 +130,11 @@ public class LectureBlockDAO {
 		LectureBlock reloadedBlock = dbInstance.getCurrentEntityManager()
 			.getReference(LectureBlockImpl.class, lectureBlock.getKey());
 		
+		AssessmentMode assessmentMode = assessmentModeDao.getAssessmentModeByLecture(reloadedBlock);
+		if(assessmentMode != null) {
+			assessmentModeDao.delete(assessmentMode);
+		}
+		
 		//delete lecture block to group
 		String deleteToGroup = "delete from lectureblocktogroup blocktogroup where blocktogroup.lectureBlock.key=:lectureBlockKey";
 		int rows = dbInstance.getCurrentEntityManager()
-- 
GitLab