From f689b4511d469aae7b8404a037d37a39243cc351 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Thu, 7 Feb 2019 08:22:56 +0100
Subject: [PATCH] OO-3861: fix correction workflow with sub selection of
 questions

---
 ...orrectionAssessmentItemListController.java | 28 +++++++++++--------
 1 file changed, 16 insertions(+), 12 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionAssessmentItemListController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionAssessmentItemListController.java
index 79698c6bf3e..08e2c1a3624 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionAssessmentItemListController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionAssessmentItemListController.java
@@ -398,18 +398,22 @@ public class CorrectionAssessmentItemListController extends FormBasicController
 		List<AssessmentItemListEntry> reorderItemSessions = new ArrayList<>(assessedIdentities.size());
 		for(Identity assessedIdentity:assessedIdentities) {
 			AssessmentTestSession testSession = model.getLastSessions().get(assessedIdentity);
-			if(testSession != null) {
-				AssessmentItemSession itemSession = testToItemSession.get(testSession);
-	
-				String title;
-				if(anonymous) {
-					title = translate("number.assessed.identity", new String[] { Integer.toString(count++)} );
-				} else {
-					title = userManager.getUserDisplayName(assessedIdentity);
-				}
-				AssessmentItemListEntry entry = new AssessmentItemListEntry(assessedIdentity, testSession, itemSession, itemRef, title, "o_icon_user");
-				if(filter.test(entry)) {
-					reorderItemSessions.add(entry);
+			TestSessionState testSessionState = model.getTestSessionStates().get(assessedIdentity);
+			if(testSession != null && testSessionState != null) {
+				List<TestPlanNode> nodes = testSessionState.getTestPlan().getNodes(itemRef.getIdentifier());
+				if(nodes != null) {
+					AssessmentItemSession itemSession = testToItemSession.get(testSession);
+		
+					String title;
+					if(anonymous) {
+						title = translate("number.assessed.identity", new String[] { Integer.toString(count++)} );
+					} else {
+						title = userManager.getUserDisplayName(assessedIdentity);
+					}
+					AssessmentItemListEntry entry = new AssessmentItemListEntry(assessedIdentity, testSession, itemSession, itemRef, title, "o_icon_user");
+					if(filter.test(entry)) {
+						reorderItemSessions.add(entry);
+					}
 				}
 			}
 		}
-- 
GitLab