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 5fc2b39eb2b76b19079422e6bc116eb801acc61b..0aef28ff39e1d62b51ce9fad336da15df121da76 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 @@ -608,21 +608,26 @@ public class GTAParticipantController extends GTAAbstractController implements A * @return If the solutions are visible to the user */ private boolean showSolutions(DueDate availableDate) { - + boolean show = false; boolean optional = gtaNode.isOptional(); - File submitDirectory; - if(GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) { - submitDirectory = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedGroup); + if(config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT)) { + File submitDirectory; + if(GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE))) { + submitDirectory = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedGroup); + } else { + submitDirectory = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedIdentity); + } + + if(availableDate == null && optional + && (gtaNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION_VISIBLE_ALL, false) || TaskHelper.hasDocuments(submitDirectory))) { + show = true; + } else if(availableDate != null && (optional || !availableDate.isRelative()) + && (gtaNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION_VISIBLE_ALL, false) || TaskHelper.hasDocuments(submitDirectory))) { + show = true; + } + } else if(optional) { + show = gtaNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION_VISIBLE_ALL, false); } else { - submitDirectory = gtaManager.getSubmitDirectory(courseEnv, gtaNode, assessedIdentity); - } - - boolean show = false; - if(availableDate == null && optional - && (gtaNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION_VISIBLE_ALL, false) || TaskHelper.hasDocuments(submitDirectory))) { - show = true; - } else if((availableDate != null && (optional || !availableDate.isRelative()) - && (gtaNode.getModuleConfiguration().getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION_VISIBLE_ALL, false)) || TaskHelper.hasDocuments(submitDirectory))) { show = true; } return show; diff --git a/src/test/java/org/olat/selenium/AssessmentTest.java b/src/test/java/org/olat/selenium/AssessmentTest.java index 62ebbbdca6402db2c8e3127478a5fd33815d4f48..561a5fdd24e271b6850a7d88e4b17846c25709d5 100644 --- a/src/test/java/org/olat/selenium/AssessmentTest.java +++ b/src/test/java/org/olat/selenium/AssessmentTest.java @@ -1861,7 +1861,7 @@ public class AssessmentTest extends Deployments { gtaConfig .selectWorkflow() .enableAssignment(false) - .enableSubmission(false) + .enableSubmission(false) .saveWorkflow(); gtaConfig @@ -1983,7 +1983,8 @@ public class AssessmentTest extends Deployments { .selectWorkflow() .optional(true) .enableAssignment(false) - .enableSubmission(false) + .enableSubmission(false) + .enableSolutionForAll(true) .saveWorkflow(); gtaConfig diff --git a/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java b/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java index 889c56a5254946e43503fc945f2399b8e37f0c00..6f2132188a8ef67da42924e623c2bc53b2fd5bb2 100644 --- a/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java +++ b/src/test/java/org/olat/selenium/page/course/GroupTaskConfigurationPage.java @@ -91,6 +91,18 @@ public class GroupTaskConfigurationPage { return this; } + public GroupTaskConfigurationPage enableSolutionForAll(boolean forAll) { + By optionBy; + if(forAll) { + optionBy = By.xpath("//div[@id='o_covisibleall']//label/input[@name='visibleall'][@value='all']"); + } else { + optionBy = By.xpath("//div[@id='o_covisibleall']//label/input[@name='visibleall'][@value='restricted']"); + } + OOGraphene.waitElement(optionBy, browser); + browser.findElement(optionBy).click();; + return this; + } + public GroupTaskConfigurationPage saveWorkflow() { By saveBy = By.cssSelector(".o_sel_course_gta_save_workflow button.btn-primary"); browser.findElement(saveBy).click();