diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java index dfd7214e8799b882404dbfa1113c383e1fe9450b..9bcf898dff005ce16892d4a8084e9f0f2d0eb42d 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java @@ -250,7 +250,7 @@ public abstract class GTAAbstractController extends BasicController implements G resetTask(ureq, task); - nodeLog(); + nodeLog(task); collapsedContents(task); } @@ -460,7 +460,7 @@ public abstract class GTAAbstractController extends BasicController implements G return assignedTask; } - protected void nodeLog() { + protected void nodeLog(@SuppressWarnings("unused") Task assignedTask) { if(businessGroupTask) { String groupLog = courseEnv.getAuditManager().getUserNodeLog(gtaNode, assessedGroup); if(StringHelper.containsNonWhitespace(groupLog)) { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index 455ddba3a8525b37de9ad41e48e6ce13219c5318..cb2ab1c652f3282c69023290240167cf4b0fed27 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -67,6 +67,7 @@ import org.olat.course.nodes.gta.model.TaskDefinition; import org.olat.course.nodes.gta.ui.events.SubmitEvent; import org.olat.course.nodes.gta.ui.events.TaskMultiUserEvent; import org.olat.course.nodes.ms.MSCourseNodeRunController; +import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.Role; @@ -696,17 +697,34 @@ public class GTAParticipantController extends GTAAbstractController implements A } @Override - protected void nodeLog() { - if(businessGroupTask) { - String userLog = courseEnv.getAuditManager().getUserNodeLog(gtaNode, getIdentity()); - if(StringHelper.containsNonWhitespace(userLog)) { - mainVC.contextPut("userLog", userLog); + protected void nodeLog(Task assignedTask) { + if(isResultVisible(assignedTask)) { + if(businessGroupTask) { + String userLog = courseEnv.getAuditManager().getUserNodeLog(gtaNode, getIdentity()); + if(StringHelper.containsNonWhitespace(userLog)) { + mainVC.contextPut("userLog", userLog); + } else { + mainVC.contextRemove("userLog"); + } } else { - mainVC.contextRemove("userLog"); + super.nodeLog(assignedTask); + } + } else { + mainVC.contextRemove("userLog"); + } + } + + private boolean isResultVisible(Task assignedTask) { + boolean isVisible = false; + if(config.getBooleanSafe(GTACourseNode.GTASK_GRADING)) { + if (assignedTask != null && (assignedTask.getTaskStatus() == TaskProcess.grading || assignedTask.getTaskStatus() == TaskProcess.graded)) { + AssessmentEvaluation eval = gtaNode.getUserScoreEvaluation(getAssessedUserCourseEnvironment()); + isVisible = eval.getUserVisible() == null || eval.getUserVisible().booleanValue(); } } else { - super.nodeLog(); + isVisible = true; } + return isVisible; } private TaskDefinition getTaskDefinition(Task task) { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GroupAssessmentController.java b/src/main/java/org/olat/course/nodes/gta/ui/GroupAssessmentController.java index f06428c9fdf921cf91b26703c5033230379c2a73..2f46d0611d6fefd54a3a4550bae44f0b51cadd4a 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GroupAssessmentController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GroupAssessmentController.java @@ -382,7 +382,7 @@ public class GroupAssessmentController extends FormBasicController { } } - if(withScore || withPassed || withPassed) { + if(withScore || withPassed) { Boolean userVisible = scoreEval.getUserVisible(); if(userVisible == null) { userVisible = Boolean.TRUE; diff --git a/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java b/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java index 62a6a3c6447130d7050c22f6167263ade5258de3..8338c9eddffa271d6bce27d39d09cca2158adaf6 100644 --- a/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java +++ b/src/main/java/org/olat/modules/forms/ui/EvaluationFormExecutionController.java @@ -33,6 +33,7 @@ import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FormLink; import org.olat.core.gui.components.form.flexible.impl.FormBasicController; import org.olat.core.gui.components.form.flexible.impl.FormEvent; +import org.olat.core.gui.components.form.flexible.impl.elements.FormSubmit; import org.olat.core.gui.components.link.Link; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.Event; @@ -80,7 +81,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple private final Map<String, EvaluationFormElementHandler> handlerMap = new HashMap<>(); private final List<ExecutionFragment> fragments = new ArrayList<>(); private FormLink saveLink; - private FormLink doneLink; + private FormSubmit doneLink; private DialogBoxController confirmDoneCtrl; private PageFragmentsElementImpl fragmentsEl; @@ -197,8 +198,7 @@ public class EvaluationFormExecutionController extends FormBasicController imple boolean anonymous = !notAnonymous; flc.contextPut("anonymous", Boolean.valueOf(showDoneButton && anonymous)); - doneLink = uifactory.addFormLink("save.as.done", "save.as.done", null, flc, Link.BUTTON); - doneLink.setPrimary(true); + doneLink = uifactory.addFormSubmitButton("save.as.done", "save.as.done", formLayout); saveLink = uifactory.addFormLink("save.intermediate", "save.intermediate", null, flc, Link.BUTTON); showHideButtons(); }