From f8cc9352565eb1a51d4d45a706ed3fb4d69ab3cf Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Wed, 15 Apr 2020 12:31:08 +0200
Subject: [PATCH] OO-4441: fix rs unassign unassigned assignment

---
 .../ui/GradingAssignmentsListController.java  | 21 ++++++++++++-------
 .../ui/_i18n/LocalStrings_de.properties       |  1 +
 .../ui/_i18n/LocalStrings_en.properties       |  1 +
 3 files changed, 15 insertions(+), 8 deletions(-)

diff --git a/src/main/java/org/olat/modules/grading/ui/GradingAssignmentsListController.java b/src/main/java/org/olat/modules/grading/ui/GradingAssignmentsListController.java
index 678c091d279..6eb3df4004f 100644
--- a/src/main/java/org/olat/modules/grading/ui/GradingAssignmentsListController.java
+++ b/src/main/java/org/olat/modules/grading/ui/GradingAssignmentsListController.java
@@ -883,16 +883,21 @@ public class GradingAssignmentsListController extends FormBasicController implem
 	
 	private void doUnassign(UserRequest ureq, List<GradingAssignmentRow> rows) {
 		List<GradingAssignment> assignments = rows.stream()
+				.filter(GradingAssignmentRow::hasGrader)
 				.map(GradingAssignmentRow::getAssignment)
 				.collect(Collectors.toList());
-		confirmUnassignGraderCtrl = new ConfirmUnassignGraderController(ureq, getWindowControl(), assignments);
-		listenTo(confirmUnassignGraderCtrl);
-
-		String gradersNames = getGradersNames(rows);
-		String title = translate("confirm.unassign.grader.title", new String[] { gradersNames });
-		cmc = new CloseableModalController(getWindowControl(), "close", confirmUnassignGraderCtrl.getInitialComponent(), true, title);
-		listenTo(cmc);
-		cmc.activate();
+		if(assignments.isEmpty()) {
+			showWarning("warning.atleastone.assignment.with.grader");
+		} else {
+			confirmUnassignGraderCtrl = new ConfirmUnassignGraderController(ureq, getWindowControl(), assignments);
+			listenTo(confirmUnassignGraderCtrl);
+	
+			String gradersNames = getGradersNames(rows);
+			String title = translate("confirm.unassign.grader.title", new String[] { gradersNames });
+			cmc = new CloseableModalController(getWindowControl(), "close", confirmUnassignGraderCtrl.getInitialComponent(), true, title);
+			listenTo(cmc);
+			cmc.activate();
+		}
 	}
 	
 	private void doBatchExtendDeadline(UserRequest ureq) {
diff --git a/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_de.properties
index 328f4045cf9..4c141f48800 100644
--- a/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_de.properties
@@ -177,4 +177,5 @@ user.assigned.tests=Zugewiesene Tests
 warning.assignement.deactivated=Der Test war zur\u00FCckgesetzt und kann nicht mehr korrigiert werden.
 warning.atleastone=Bitte w\u00E4hlen Sie mindestens ein Korrektur.
 warning.atleastone.assignment=Bitte w\u00E4hlen Sie mindestens eine zugewiese Korrektur.
+warning.atleastone.assignment.with.grader=Bitte w\u00E4hlen Sie mindestens eine zugewiese Korrektur mit einem Korrektor.
 working.days=Arbeitstage (Montag - Freitag)
diff --git a/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_en.properties
index 55ed495ba98..5f137016ac1 100644
--- a/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/grading/ui/_i18n/LocalStrings_en.properties
@@ -174,4 +174,5 @@ user.assigned.tests=Assigned tests
 warning.assignement.deactivated=The test was reseted and cannot be corrected anymore.
 warning.atleastone=Please, choose at least one assignment.
 warning.atleastone.assignment=Please, choose at least one assignment.
+warning.atleastone.assignment.with.grader=Please, choose at least one assignment with a grader.
 working.days=working days (monday - friday)
-- 
GitLab