From 53ee0908517855ca4c5bd1d8fa9d2e97c455f102 Mon Sep 17 00:00:00 2001
From: gnaegi <none@none>
Date: Mon, 9 Dec 2013 16:40:24 +0100
Subject: [PATCH] OO-852 make more robust with invalid data, reset comment on
 empty string according to spec

---
 .../org/olat/course/assessment/bulk/DataStepForm.java  | 10 +++++++++-
 .../assessment/bulk/_i18n/LocalStrings_de.properties   |  4 ++--
 .../assessment/bulk/_i18n/LocalStrings_en.properties   |  2 +-
 .../course/assessment/manager/BulkAssessmentTask.java  |  4 ++--
 4 files changed, 14 insertions(+), 6 deletions(-)

diff --git a/src/main/java/org/olat/course/assessment/bulk/DataStepForm.java b/src/main/java/org/olat/course/assessment/bulk/DataStepForm.java
index 44df63fcb12..66bfd8d98de 100644
--- a/src/main/java/org/olat/course/assessment/bulk/DataStepForm.java
+++ b/src/main/java/org/olat/course/assessment/bulk/DataStepForm.java
@@ -358,10 +358,16 @@ public class DataStepForm extends StepFormBasicController {
 		}
 
 		BulkAssessmentRow row = new BulkAssessmentRow();
-		row.setAssessedId(values[0]);
+		String identifyer = values[0];
+		identifyer.trim();
+		if (!StringHelper.containsNonWhitespace(identifyer)) {
+			identifyer = "-";
+		}
+		row.setAssessedId(identifyer);
 
 		if(valuesLength > 1) {
 			String scoreStr = values[1];
+			scoreStr= scoreStr.trim();
 			Float score;
 			if (StringHelper.containsNonWhitespace(scoreStr)) {
 				try {
@@ -379,6 +385,7 @@ public class DataStepForm extends StepFormBasicController {
 
 		if(valuesLength > 2) {
 			String passedStr = values[2];
+			passedStr= passedStr.trim();
 			Boolean passed;
 			if ("y".equalsIgnoreCase(passedStr)
 					|| "yes".equalsIgnoreCase(passedStr)
@@ -407,6 +414,7 @@ public class DataStepForm extends StepFormBasicController {
 					commentStr += "," + values[i];					
 				}				
 			}			
+			commentStr= commentStr.trim();
 			
 			if(commentStr.isEmpty()) {
 				// ignore empty values
diff --git a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
index d3cff00ef06..b3e4f398adf 100644
--- a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_de.properties
@@ -21,8 +21,8 @@ bulk.action.wrong.float=falsches Zahlenformat
 bulk.action.no.coursenodes=Sie haben keinen für die Massenbewertung geeigneten Kursbaustein. Folgende Typen von Kursbausteinen sind geeignet: $org.olat.course.nodes\:title_ms, $org.olat.course.nodes\:title_ta und $org.olat.course.nodes\:title_projectbroker
 bulk.assessment.error=Eine unerwartete Fehler ist während die Massenbewertung aufgetretten.
 bulk.assessment.error.title=Nicht alle Bewertung k\u00F6nnte erfolgreich abgelegt werden
-bulk.assessment.error.feedback=Hier ist die Liste von Probleme:\n{0}
-bulk.assessment.done=Massenbewertung ist fertig.
+bulk.assessment.error.feedback=Es sind Probleme aufgetreten. Die folgenden Daten wurden nicht importiert. Die restlichen Daten wurden trotzdem ausgeführt:<p>{0}
+bulk.assessment.done=Die Massenbewertung ist fertig.
 bulk.assessment.enlisted=Die Massenbewertung ist gespeichert und wird zu einem sp\u00E4teren Zeitpunkt bearbeitet.
 form.step2.error=Es wurden keine Bewertungsdaten eingegeben.
 form.step3.delimiter.tab=$org.olat.course.assessment\:form.step3.delimiter.tab
diff --git a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_en.properties
index fd484f07d0e..e3caf951086 100644
--- a/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/course/assessment/bulk/_i18n/LocalStrings_en.properties
@@ -16,7 +16,7 @@ bulk.action.wrong.float=Wrong format
 bulk.assessment.done=Bulk assessment is ready
 bulk.assessment.enlisted=Bulk assessment is saved and will be executed at the scheduled time.
 bulk.assessment.error=An unexpected error occurred during the bulk assessment
-bulk.assessment.error.feedback=The list of issues\:\r\n{0}
+bulk.assessment.error.feedback=Errors occurred during import. The following data has not been excluded from the import. The other data has been imported nevertheless.<p>{0}
 bulk.assessment.error.title=Not all evaluations could be successfully stored
 bulk.wizard.title=Bulk assessment
 bulk.wizard.desc=With the tool "Bulk assessment" you can submit assessment data such as score, status, comments or return files for multiple course members in one step. 
diff --git a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
index 2b6e45b4be7..23b81d6a09b 100644
--- a/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
+++ b/src/main/java/org/olat/course/assessment/manager/BulkAssessmentTask.java
@@ -340,9 +340,9 @@ public class BulkAssessmentTask implements LongRunnable, TaskAwareRunnable {
 			IdentityEnvironment ienv = new IdentityEnvironment(identity, studentRoles);
 			UserCourseEnvironment uce = new UserCourseEnvironmentImpl(ienv, course.getCourseEnvironment());
 			
-			//update comment
+			//update comment, empty string will reset comment
 			String userComment = row.getComment();
-			if(hasUserComment && userComment != null && !userComment.equals("")){
+			if(hasUserComment && userComment != null){
 				// Update userComment in db
 				courseNode.updateUserUserComment(userComment, uce, coachIdentity);
 				//LD: why do we have to update the efficiency statement?
-- 
GitLab