From ae3ea56fd447614f371f15cb7a8ba2431340e336 Mon Sep 17 00:00:00 2001
From: srosse <none@none>
Date: Tue, 6 Jun 2017 10:05:17 +0200
Subject: [PATCH] OO-2801: create an empty task if it doesn't exist

---
 .../gta/ui/GTACoachedParticipantGradingController.java   | 9 ++++++++-
 1 file changed, 8 insertions(+), 1 deletion(-)

diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java
index 604d425ccd9..1449359418b 100644
--- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java
+++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantGradingController.java
@@ -39,6 +39,7 @@ import org.olat.course.assessment.ui.tool.AssessmentIdentityCourseNodeController
 import org.olat.course.nodes.GTACourseNode;
 import org.olat.course.nodes.gta.GTAManager;
 import org.olat.course.nodes.gta.Task;
+import org.olat.course.nodes.gta.TaskList;
 import org.olat.course.nodes.gta.TaskProcess;
 import org.olat.course.nodes.ms.MSCourseNodeRunController;
 import org.olat.course.run.scoring.AssessmentEvaluation;
@@ -158,7 +159,13 @@ public class GTACoachedParticipantGradingController extends BasicController {
 		
 		AssessmentEvaluation scoreEval = gtaNode.getUserScoreEvaluation(assessedUserCourseEnv);
 		if(scoreEval.getAssessmentStatus() == AssessmentEntryStatus.done) {
-			assignedTask = gtaManager.updateTask(assignedTask, TaskProcess.graded, gtaNode);
+			if(assignedTask == null) {
+				RepositoryEntry courseEntry = coachCourseEnv.getCourseEnvironment().getCourseGroupManager().getCourseEntry();
+				TaskList taskList = gtaManager.createIfNotExists(courseEntry, gtaNode);
+				assignedTask = gtaManager.createTask(null, taskList, TaskProcess.graded, null, assessedIdentity, gtaNode);
+			} else {
+				assignedTask = gtaManager.updateTask(assignedTask, TaskProcess.graded, gtaNode);
+			}
 			fireEvent(ureq, Event.CHANGED_EVENT);
 		}
 	}
-- 
GitLab