From a7cebc624d6d58d6905d6ecd1c3bcb4fc14a32c8 Mon Sep 17 00:00:00 2001
From: uhensler <urs.hensler@frentix.com>
Date: Mon, 1 Apr 2019 15:38:28 +0200
Subject: [PATCH] OO-4003: Right state of up/down buttons in MC and SC
 questions in read-only mode

---
 .../editor/interactions/MultipleChoiceEditorController.java | 6 ++++--
 .../editor/interactions/SingleChoiceEditorController.java   | 6 ++++--
 2 files changed, 8 insertions(+), 4 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
index 35af34e86e3..dd4494a895e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/MultipleChoiceEditorController.java
@@ -351,11 +351,13 @@ public class MultipleChoiceEditorController extends FormBasicController {
 		newChoice.getFlowStatics().add(firstChoiceText);
 		
 		wrapAnswer(ureq, newChoice);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
 	private void doRemoveSimpleChoice(SimpleChoiceWrapper choiceWrapper) {
 		choiceWrappers.remove(choiceWrapper);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
@@ -383,8 +385,8 @@ public class MultipleChoiceEditorController extends FormBasicController {
 		int numOfChoices = choiceWrappers.size();
 		for(int i=0; i<numOfChoices; i++) {
 			SimpleChoiceWrapper choiceWrapper = choiceWrappers.get(i);
-			choiceWrapper.getUp().setEnabled(i != 0);
-			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1));
+			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit && !readOnly);
+			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit && !readOnly);
 		}
 	}
 
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
index 04cf8247194..de0b24ea14b 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/SingleChoiceEditorController.java
@@ -335,11 +335,13 @@ public class SingleChoiceEditorController extends FormBasicController {
 		ChoiceInteraction interaction = itemBuilder.getChoiceInteraction();
 		SimpleChoice newChoice = AssessmentItemFactory.createSimpleChoice(interaction, translate("new.answer"), "sc");
 		wrapAnswer(ureq, newChoice);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
 	private void doRemoveSimpleChoice(SimpleChoiceWrapper choiceWrapper) {
 		choiceWrappers.remove(choiceWrapper);
+		recalculateUpDownLinks();
 		flc.setDirty(true);
 	}
 	
@@ -367,8 +369,8 @@ public class SingleChoiceEditorController extends FormBasicController {
 		int numOfChoices = choiceWrappers.size();
 		for(int i=0; i<numOfChoices; i++) {
 			SimpleChoiceWrapper choiceWrapper = choiceWrappers.get(i);
-			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit);
-			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit);
+			choiceWrapper.getUp().setEnabled(i != 0 && !restrictedEdit && !readOnly);
+			choiceWrapper.getDown().setEnabled(i < (numOfChoices - 1) && !restrictedEdit && !readOnly);
 		}
 	}
 
-- 
GitLab