From 496376702931fe0fafae90b102e054e0a7e848a3 Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Mon, 6 Jul 2020 09:26:10 +0200
Subject: [PATCH] OO-4780: wording save and next in correction workflow

---
 .../java/org/olat/ims/qti21/AssessmentTestHelper.java     | 4 +++-
 .../CorrectionAssessmentItemListController.java           | 4 ++--
 .../CorrectionIdentityAssessmentItemController.java       | 8 ++++++--
 .../CorrectionIdentityAssessmentItemListController.java   | 2 +-
 ...rectionIdentityAssessmentItemNavigationController.java | 5 +++--
 .../qti21/ui/assessment/_i18n/LocalStrings_de.properties  | 3 ++-
 .../qti21/ui/assessment/_i18n/LocalStrings_en.properties  | 3 ++-
 .../qti21/ui/assessment/_i18n/LocalStrings_fr.properties  | 1 +
 8 files changed, 20 insertions(+), 10 deletions(-)

diff --git a/src/main/java/org/olat/ims/qti21/AssessmentTestHelper.java b/src/main/java/org/olat/ims/qti21/AssessmentTestHelper.java
index 876423142d6..4addfebcbbc 100644
--- a/src/main/java/org/olat/ims/qti21/AssessmentTestHelper.java
+++ b/src/main/java/org/olat/ims/qti21/AssessmentTestHelper.java
@@ -66,7 +66,9 @@ public class AssessmentTestHelper {
 					.getItemRefsBySystemIdMap().get(currentItem.getItemSystemId());
 			
 			AssessmentItemRef itemRef = null;
-			if(itemRefs.size() == 1) {
+			if(itemRefs == null) {
+				// itemRef stay null
+			} else if(itemRefs.size() == 1) {
 				itemRef = itemRefs.get(0);
 			} else {
 				Identifier itemId = itemKey.getIdentifier();
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 b521ef164b2..f7b1ab00af9 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
@@ -92,7 +92,7 @@ import uk.ac.ed.ph.jqtiplus.state.TestSessionState;
 
 /**
  * A table with the list of assessment items of the test
- * with statistics about the users wo answered (or not answered)
+ * with statistics about the users who answered (or not answered)
  * every assessment item.
  * 
  * 
@@ -471,7 +471,7 @@ public class CorrectionAssessmentItemListController extends FormBasicController
 
 				identityItemCtrl = new CorrectionIdentityAssessmentItemNavigationController(ureq, getWindowControl(),
 						model.getTestEntry(), model.getResolvedAssessmentTest(), itemCorrection, listEntry,
-						selectedItemSessions, model);
+						selectedItemSessions, model, true);
 				listenTo(identityItemCtrl);
 				updatePreviousNext();
 				
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java
index 57aec451872..5e1b0e3fb25 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemController.java
@@ -80,6 +80,7 @@ public class CorrectionIdentityAssessmentItemController extends FormBasicControl
 	private final URI assessmentObjectUri;
 	private final ResourcesMapper resourcesMapper;
 	
+	private final boolean pageIdentity;
 	private CorrectionOverviewModel model;
 	private final RepositoryEntry testEntry;
 	private AssessmentItemCorrection itemCorrection;
@@ -96,7 +97,8 @@ public class CorrectionIdentityAssessmentItemController extends FormBasicControl
 	public CorrectionIdentityAssessmentItemController(UserRequest ureq, WindowControl wControl,
 			RepositoryEntry testEntry, ResolvedAssessmentTest resolvedAssessmentTest,
 			AssessmentItemCorrection itemCorrection, AssessmentItemListEntry assessmentEntry,
-			List<? extends AssessmentItemListEntry> assessmentEntryList, CorrectionOverviewModel model) {
+			List<? extends AssessmentItemListEntry> assessmentEntryList, CorrectionOverviewModel model,
+			boolean pageIdentity) {
 		super(ureq, wControl, "correction_identity_assessment_item");
 
 		FileResourceManager frm = FileResourceManager.getInstance();
@@ -105,6 +107,7 @@ public class CorrectionIdentityAssessmentItemController extends FormBasicControl
 		
 		this.model = model;
 		this.testEntry = testEntry;
+		this.pageIdentity = pageIdentity;
 		this.itemCorrection = itemCorrection;
 		this.assessmentEntry = assessmentEntry;
 		this.assessmentEntryList = assessmentEntryList;
@@ -146,7 +149,8 @@ public class CorrectionIdentityAssessmentItemController extends FormBasicControl
 		
 		uifactory.addFormCancelButton("cancel", formLayout, ureq, getWindowControl());
 		uifactory.addFormSubmitButton("save", formLayout);
-		saveNextQuestionButton = uifactory.addFormLink("save.next", formLayout, Link.BUTTON);
+		String saveNextI18n = pageIdentity ? "save.next.identity" : "save.next";
+		saveNextQuestionButton = uifactory.addFormLink("save.next", saveNextI18n, null, formLayout, Link.BUTTON);
 		saveBackOverviewButton = uifactory.addFormLink("save.back", formLayout, Link.BUTTON);
 	}
 	
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemListController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemListController.java
index 11b122f920d..880a412ee28 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemListController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemListController.java
@@ -378,7 +378,7 @@ public class CorrectionIdentityAssessmentItemListController extends FormBasicCon
 				AssessmentItem assessmentItem = resolvedAssessmentItem.getRootNodeLookup().extractIfSuccessful();
 				identityItemCtrl = new CorrectionIdentityAssessmentItemNavigationController(ureq, getWindowControl(),
 						model.getTestEntry(), model.getResolvedAssessmentTest(), itemCorrection, row,
-						tableModel.getObjects(), model);
+						tableModel.getObjects(), model, false);
 				listenTo(identityItemCtrl);
 				stackPanel.pushController(assessmentItem.getTitle(), identityItemCtrl);
 				updatePreviousNext();
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemNavigationController.java b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemNavigationController.java
index 83164aeaecf..255dd92abc7 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemNavigationController.java
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/CorrectionIdentityAssessmentItemNavigationController.java
@@ -62,13 +62,14 @@ public class CorrectionIdentityAssessmentItemNavigationController extends BasicC
 	public CorrectionIdentityAssessmentItemNavigationController(UserRequest ureq, WindowControl wControl,
 			RepositoryEntry testEntry, ResolvedAssessmentTest resolvedAssessmentTest,
 			AssessmentItemCorrection itemCorrection, AssessmentItemListEntry assessmentEntry,
-			List<? extends AssessmentItemListEntry> assessmentEntryList, CorrectionOverviewModel model) {
+			List<? extends AssessmentItemListEntry> assessmentEntryList, CorrectionOverviewModel model,
+			boolean pageIdentity) {
 		super(ureq, wControl);
 		
 		mainVC = createVelocityContainer("corrections_navigation");
 		
 		itemCtrl = new CorrectionIdentityAssessmentItemController(ureq, wControl,
-				testEntry, resolvedAssessmentTest, itemCorrection, assessmentEntry, assessmentEntryList, model);
+				testEntry, resolvedAssessmentTest, itemCorrection, assessmentEntry, assessmentEntryList, model, pageIdentity);
 		listenTo(itemCtrl);
 		mainVC.put("items", itemCtrl.getInitialComponent());
 		
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
index 6a3f065cfde..7bc4ad66669 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_de.properties
@@ -27,10 +27,11 @@ previous.item=Vorherige Frage
 previous.user=Vorheriger Benutzer
 save.back=Speichern und zur \u00DCbersicht
 save.next=Speichern und n\u00E4chste Frage
+save.next.identity=Speichern und n\u00E4chster Teilnehmer
 save.tests=Als endg\u00FCltiges Resultat speichern
 score=Punkte
 show.rubric=Beschreibung anzeigen
-show.rubric.with.title=Beschreibung f\u00FCr "<b>{0}</b>" anzeigen
+show.rubric.with.title=Beschreibung f\u00FCr "<strong>{0}</strong>" anzeigen
 status=Status
 table.header.action=<i class='o_icon o_icon_actions o_icon-lg'> </i>
 table.header.answered=Beantwortet
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_en.properties
index 324458ba524..aba768c0bce 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_en.properties
@@ -27,10 +27,11 @@ previous.item=Previous question
 previous.user=Previous user
 save.back=Save and back to overview
 save.next=Save and next question
+save.next.identity=Save and next participant
 save.tests=Save results as completed
 score=Score
 show.rubric=Show description
-show.rubric.with.title=Show description for "<b>{0}</b>"
+show.rubric.with.title=Show description for "<strong>{0}</strong>"
 status=Status
 table.header.action=<i class\='o_icon o_icon_actions o_icon-lg'> </i>
 table.header.answered=Answered
diff --git a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_fr.properties
index 7d64ab911dd..1a05859013a 100644
--- a/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/ims/qti21/ui/assessment/_i18n/LocalStrings_fr.properties
@@ -27,6 +27,7 @@ previous.item=Question pr\u00E9c\u00E9dente
 previous.user=Utilisateur pr\u00E9c\u00E9dent
 save.back=Sauver et retourner \u00E0 l'aper\u00E7u
 save.next=Sauver et question suivante
+save.next.identity=Sauver et participant suivant
 save.tests=Sauver les r\u00E9sultats d\u00E9finitifs
 score=R\u00E9sultats
 show.rubric=Montrer la description
-- 
GitLab