From 9269c07e9b1e1775d923c16edbc72a03c7fb0b12 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Thu, 5 Apr 2018 09:42:41 +0200
Subject: [PATCH] OO-3419: save the order of the answers in the KPrim editor

---
 .../model/xml/interactions/KPrimAssessmentItemBuilder.java  | 6 ++++++
 .../qti21/ui/editor/interactions/KPrimEditorController.java | 3 +++
 2 files changed, 9 insertions(+)

diff --git a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
index a31ded8e736..571c8dde418 100644
--- a/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
+++ b/src/main/java/org/olat/ims/qti21/model/xml/interactions/KPrimAssessmentItemBuilder.java
@@ -273,6 +273,12 @@ public class KPrimAssessmentItemBuilder extends AssessmentItemBuilder {
 	public List<SimpleAssociableChoice> getKprimChoices() {
 		return matchInteraction.getSimpleMatchSets().get(0).getSimpleAssociableChoices();
 	}
+	
+	public void setKprimChoices(List<SimpleAssociableChoice> choices) {
+		SimpleMatchSet matchSet = matchInteraction.getSimpleMatchSets().get(0);
+		matchSet.getSimpleAssociableChoices().clear();
+		matchSet.getSimpleAssociableChoices().addAll(new ArrayList<>(choices));
+	}
 
 	@Override
 	protected void buildResponseAndOutcomeDeclarations() {
diff --git a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
index 901c4a8293d..c92c183648e 100644
--- a/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/editor/interactions/KPrimEditorController.java
@@ -239,6 +239,7 @@ public class KPrimEditorController extends FormBasicController {
 		
 		//set associations
 		if(!restrictedEdit) {
+			List<SimpleAssociableChoice> choices = new ArrayList<>();
 			for(KprimWrapper choiceWrapper:choiceWrappers) {
 				SimpleAssociableChoice choice = choiceWrapper.getSimpleChoice();
 				Identifier choiceIdentifier = choice.getIdentifier();
@@ -248,7 +249,9 @@ public class KPrimEditorController extends FormBasicController {
 				} else if("wrong".equals(association)) {
 					itemBuilder.setAssociation(choiceIdentifier, QTI21Constants.WRONG_IDENTIFIER);
 				}
+				choices.add(choice);
 			}
+			itemBuilder.setKprimChoices(choices);
 		}
 
 		fireEvent(ureq, new AssessmentItemEvent(AssessmentItemEvent.ASSESSMENT_ITEM_CHANGED, itemBuilder.getAssessmentItem(), QTI21QuestionType.kprim));
-- 
GitLab