From cba01108800909af4fa4afafed85cab73d42f795 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 23 Aug 2016 14:57:45 +0200
Subject: [PATCH] OO-1593: allow D&D on assessment test node if only one test
 part

---
 .../qti21/ui/editor/AssessmentTestComposerController.java   | 6 +++++-
 .../ui/editor/AssessmentTestEditorAndComposerTreeModel.java | 4 +++-
 .../ims/qti21/ui/editor/_i18n/LocalStrings_de.properties    | 2 +-
 3 files changed, 9 insertions(+), 3 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
index de81eb6ab3c..4030b22fc14 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestComposerController.java
@@ -486,7 +486,8 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 				}
 				
 			} else if(droppedObject instanceof AssessmentSection
-					&& (targetObject instanceof AssessmentSection || targetObject instanceof TestPart)) {
+					&& (targetObject instanceof AssessmentSection || targetObject instanceof TestPart
+							|| (targetObject instanceof AssessmentTest && ((AssessmentTest)targetObject).getTestParts().size() == 1))) {
 				AssessmentSection droppedSection = (AssessmentSection)droppedObject;
 				if(droppedSection.getParentSection() != null) {
 					droppedSection.getParentSection().getSectionParts().remove(droppedSection);
@@ -499,6 +500,9 @@ public class AssessmentTestComposerController extends MainLayoutBasicController
 				} else if(targetObject instanceof TestPart) {
 					TestPart targetTestPart = (TestPart)targetObject;
 					targetTestPart.getAssessmentSections().add(droppedSection);
+				} else if(targetObject instanceof AssessmentTest) {
+					TestPart targetTestPart = ((AssessmentTest)targetObject).getTestParts().get(0);
+					targetTestPart.getAssessmentSections().add(droppedSection);
 				}
 			}
 		} else {
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestEditorAndComposerTreeModel.java b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestEditorAndComposerTreeModel.java
index 4b37cfad016..741e2c8459b 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestEditorAndComposerTreeModel.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/AssessmentTestEditorAndComposerTreeModel.java
@@ -144,7 +144,9 @@ public class AssessmentTestEditorAndComposerTreeModel extends GenericTreeModel i
 	public boolean isNodeDroppable(TreeNode node) {
 		if(node == null) return false;
 		Object uobject = node.getUserObject();
-		return uobject instanceof AssessmentSection || uobject instanceof TestPart || uobject instanceof AssessmentItemRef;
+		return uobject instanceof AssessmentSection || uobject instanceof TestPart
+				|| uobject instanceof AssessmentItemRef
+				|| (uobject instanceof AssessmentTest && ((AssessmentTest)uobject).getTestParts().size() == 1);
 	}
 
 	@Override
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
index d1ec0954b0b..167c6c91a10 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/_i18n/LocalStrings_de.properties
@@ -88,7 +88,7 @@ form.testPart.navigationMode.linear=Linear
 form.testPart.navigationMode.nonlinear=Nicht linear
 form.unkown=Unbekannt
 item.session.control.allow.comment=Kommentar erlauben
-item.session.control.allow.review=Review erlauben
+item.session.control.allow.review=R\u00FCckblick erlauben
 item.session.control.attempts=Versuch
 item.session.control.show.solution=L\u00F6sung anzeigen
 max.score=Maximal erreichbare Punktzahl
-- 
GitLab