From 721d5a2be3fb67463075ca9b95c9acce98fc5c12 Mon Sep 17 00:00:00 2001 From: uhensler <urs.hensler@frentix.com> Date: Tue, 20 Aug 2019 16:49:07 +0200 Subject: [PATCH] OO-4186: Move assessment identity list from assesseable course node to assessment handler --- .../assessment/handler/AssessmentHandler.java | 32 +++++++++++++++ .../handler/NonAssessmentHandler.java | 19 +++++++++ .../tool/AssessmentCourseTreeController.java | 12 +++--- ...smentIdentityListCourseTreeController.java | 39 +++++++++---------- .../course/nodes/AssessableCourseNode.java | 29 -------------- .../olat/course/nodes/BasicLTICourseNode.java | 14 ------- .../course/nodes/CheckListCourseNode.java | 14 ------- .../org/olat/course/nodes/GTACourseNode.java | 13 ------- .../olat/course/nodes/IQTESTCourseNode.java | 14 ------- .../org/olat/course/nodes/MSCourseNode.java | 14 ------- .../course/nodes/PortfolioCourseNode.java | 14 ------- .../course/nodes/ProjectBrokerCourseNode.java | 13 ------- .../org/olat/course/nodes/STCourseNode.java | 14 ------- .../olat/course/nodes/ScormCourseNode.java | 14 ------- .../org/olat/course/nodes/TACourseNode.java | 14 ------- .../nodes/basiclti/LTIAssessmentHandler.java | 19 +++++++++ .../nodes/cl/CheckListAssessmentHandler.java | 19 +++++++++ .../gta/AbstractGTAAssessmentHandler.java | 21 ++++++++++ .../GTAIdentityListCourseNodeController.java | 3 +- .../IQIdentityListCourseNodeController.java | 3 +- .../nodes/iq/IQTESTAssessmentHandler.java | 18 +++++++++ .../course/nodes/ms/MSAssessmentHandler.java | 20 ++++++++++ .../MSIdentityListCourseNodeController.java | 3 +- .../portfolio/PortfolioAssessmentHandler.java | 18 +++++++++ .../ProjectBrokerAssessmentHandler.java | 20 ++++++++++ ...rokerIdentityListCourseNodeController.java | 4 +- .../nodes/scorm/ScormAssessmentHandler.java | 19 +++++++++ .../course/nodes/st/STAssessmentHandler.java | 20 ++++++++++ .../STIdentityListCourseNodeController.java | 4 +- .../course/nodes/ta/TAAssessmentHandler.java | 21 ++++++++++ .../TAIdentityListCourseNodeController.java | 3 +- 31 files changed, 284 insertions(+), 200 deletions(-) diff --git a/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java b/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java index 4ec83295252..defddaf7799 100644 --- a/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java +++ b/src/main/java/org/olat/course/assessment/handler/AssessmentHandler.java @@ -21,10 +21,16 @@ package org.olat.course.assessment.handler; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; /** * @@ -51,4 +57,30 @@ public interface AssessmentHandler { public Controller getDetailsEditController(UserRequest ureq, WindowControl wControl, BreadcrumbPanel stackPanel, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, UserCourseEnvironment assessedUserCourseEnvironment); + /** + * + * @return whether this node has a custom controller for the identity list. + */ + public boolean hasCustomIdentityList(); + + /** + * Returns the controller with the list of assessed identities for a specific + * course node. Check AssessmentHandler.hasCustomIdentityList() before invoking + * this method. + * + * @param ureq + * @param wControl + * @param stackPanel + * @param courseNode + * @param courseEntry + * @param group + * @param coachCourseEnv + * @param toolContainer + * @param assessmentCallback + * @return + */ + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback); } diff --git a/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java b/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java index 36b4fda0af3..dd45f95c296 100644 --- a/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java +++ b/src/main/java/org/olat/course/assessment/handler/NonAssessmentHandler.java @@ -21,10 +21,16 @@ package org.olat.course.assessment.handler; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -55,4 +61,17 @@ public class NonAssessmentHandler implements AssessmentHandler { return null; } + @Override + public boolean hasCustomIdentityList() { + return false; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return null; + } + } diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java index 34e6b525639..ace5afc334b 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentCourseTreeController.java @@ -46,6 +46,7 @@ import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.assessment.handler.AssessmentConfig; +import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.event.CourseNodeEvent; import org.olat.course.nodes.AssessableCourseNode; import org.olat.course.nodes.CourseNode; @@ -296,12 +297,13 @@ public class AssessmentCourseTreeController extends BasicController implements A WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(oresUsers, null, getWindowControl()); OLATResourceable oresNode = OresHelper.createOLATResourceableInstance("Node", Long.valueOf(courseNode.getIdent())); WindowControl bbwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(oresNode, null, bwControl); - if(courseNode instanceof AssessableCourseNode) { - identityListCtrl = ((AssessableCourseNode)courseNode).getIdentityListController(ureq, getWindowControl(), stackPanel, - courseEntry, null, coachCourseEnv, toolContainer, assessmentCallback); + AssessmentHandler assessmentHandler = courseAssessmentService.getAssessmentHandler(courseNode); + if (assessmentHandler.hasCustomIdentityList()) { + identityListCtrl = assessmentHandler.getIdentityListController(ureq, getWindowControl(), stackPanel, + courseNode, courseEntry, null, coachCourseEnv, toolContainer, assessmentCallback); } else { - identityListCtrl = new IdentityListCourseNodeController(ureq, bbwControl, stackPanel, - courseEntry, null, courseNode, coachCourseEnv, toolContainer, assessmentCallback); + identityListCtrl = new IdentityListCourseNodeController(ureq, bbwControl, stackPanel, courseEntry, null, + courseNode, coachCourseEnv, toolContainer, assessmentCallback); } return identityListCtrl; diff --git a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityListCourseTreeController.java b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityListCourseTreeController.java index 261157789ee..09165a7570b 100644 --- a/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityListCourseTreeController.java +++ b/src/main/java/org/olat/course/assessment/ui/tool/AssessmentIdentityListCourseTreeController.java @@ -46,8 +46,8 @@ import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.CourseAssessmentService; import org.olat.course.assessment.handler.AssessmentConfig; +import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.ui.tool.event.CourseNodeEvent; -import org.olat.course.nodes.AssessableCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.GTACourseNode; import org.olat.course.run.environment.CourseEnvironment; @@ -164,28 +164,27 @@ public class AssessmentIdentityListCourseTreeController extends BasicController OLATResourceable ores = OresHelper.createOLATResourceableInstance("Node", new Long(courseNode.getIdent())); WindowControl bwControl = BusinessControlFactory.getInstance().createBusinessWindowControl(ores, null, getWindowControl()); - if(courseNode instanceof AssessableCourseNode) { - AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(courseNode); - if(assessmentConfig.isAssessedBusinessGroups() && courseNode instanceof GTACourseNode) { - CourseEnvironment courseEnv = CourseFactory.loadCourse(courseEntry).getCourseEnvironment(); - - List<BusinessGroup> coachedGroups; - if(businessGroup != null) { - coachedGroups = Collections.singletonList(businessGroup); - } else if(assessmentCallback.isAdmin()) { - coachedGroups = courseEnv.getCourseGroupManager().getAllBusinessGroups(); - } else { - coachedGroups = assessmentCallback.getCoachedGroups(); - } - currentCtrl = ((GTACourseNode)courseNode).getCoachedGroupListController(ureq, bwControl, stackPanel, - coachCourseEnv, assessmentCallback.isAdmin(), coachedGroups); + + AssessmentHandler assessmentHandler = courseAssessmentService.getAssessmentHandler(courseNode); + AssessmentConfig assessmentConfig = courseAssessmentService.getAssessmentConfig(courseNode); + if(assessmentConfig.isAssessedBusinessGroups() && courseNode instanceof GTACourseNode) { + CourseEnvironment courseEnv = CourseFactory.loadCourse(courseEntry).getCourseEnvironment(); + List<BusinessGroup> coachedGroups; + if(businessGroup != null) { + coachedGroups = Collections.singletonList(businessGroup); + } else if(assessmentCallback.isAdmin()) { + coachedGroups = courseEnv.getCourseGroupManager().getAllBusinessGroups(); } else { - currentCtrl = ((AssessableCourseNode)courseNode).getIdentityListController(ureq, bwControl, stackPanel, - courseEntry, businessGroup, coachCourseEnv, toolContainer, assessmentCallback); + coachedGroups = assessmentCallback.getCoachedGroups(); } + currentCtrl = ((GTACourseNode)courseNode).getCoachedGroupListController(ureq, bwControl, stackPanel, + coachCourseEnv, assessmentCallback.isAdmin(), coachedGroups); + } else if (assessmentHandler.hasCustomIdentityList()) { + currentCtrl = assessmentHandler.getIdentityListController(ureq, bwControl, stackPanel, courseNode, + courseEntry, businessGroup, coachCourseEnv, toolContainer, assessmentCallback); } else { - currentCtrl = new IdentityListCourseNodeController(ureq, bwControl, stackPanel, - courseEntry, businessGroup, courseNode, coachCourseEnv, toolContainer, assessmentCallback); + currentCtrl = new IdentityListCourseNodeController(ureq, bwControl, stackPanel, courseEntry, businessGroup, + courseNode, coachCourseEnv, toolContainer, assessmentCallback); } listenTo(currentCtrl); mainPanel.setContent(currentCtrl.getInitialComponent()); diff --git a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java index 4d2c3e72675..e1a013f2e63 100644 --- a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java +++ b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java @@ -26,16 +26,8 @@ package org.olat.course.nodes; -import org.olat.core.gui.UserRequest; -import org.olat.core.gui.components.stack.TooledStackedPanel; -import org.olat.core.gui.control.WindowControl; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; -import org.olat.repository.RepositoryEntry; /** @@ -58,26 +50,5 @@ public interface AssessableCourseNode extends CourseNode { * @return null, if this node cannot deliver any useful scoring info (this is not the case for a test never tried or manual scoring: those have default values 0.0f / false for score/passed; currently only the STNode returns null if there are no scoring rules defined.) */ public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv); - - /** - * Returns the controller with the list of assessed identities for - * a specific course node. - * - * @param ureq - * @param wControl - * @param stackPanel - * @param courseEntry - * @param group - * @param coachCourseEnv - * @param toolContainer - * @param assessmentCallback - * @return - */ - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback); - - - } diff --git a/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java b/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java index 96f5c60aca2..ee4c597ba84 100644 --- a/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java +++ b/src/main/java/org/olat/course/nodes/BasicLTICourseNode.java @@ -30,7 +30,6 @@ import java.util.List; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.iframe.DeliveryOptions; @@ -43,8 +42,6 @@ import org.olat.core.util.StringHelper; import org.olat.core.util.Util; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; -import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.StatusDescription; @@ -55,13 +52,10 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.ims.lti.LTIDisplayOptions; import org.olat.ims.lti.LTIManager; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; @@ -291,13 +285,5 @@ public class BasicLTICourseNode extends AbstractAccessableCourseNode implements public AssessmentEvaluation getUserScoreEvaluation(AssessmentEntry entry) { return AssessmentEvaluation.toAssessmentEvalutation(entry, this); } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new IdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } } \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java index 69597b647e9..ca264eac046 100644 --- a/src/main/java/org/olat/course/nodes/CheckListCourseNode.java +++ b/src/main/java/org/olat/course/nodes/CheckListCourseNode.java @@ -34,7 +34,6 @@ import org.olat.core.CoreSpringFactory; import org.olat.core.commons.persistence.DBFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -57,8 +56,6 @@ import org.olat.core.util.vfs.VFSLeaf; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.handler.AssessmentConfig; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; -import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.PublishEvents; @@ -79,12 +76,9 @@ import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironmentImpl; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.repository.RepositoryEntry; /** @@ -268,14 +262,6 @@ public class CheckListCourseNode extends AbstractAccessableCourseNode implements public boolean needsReferenceToARepositoryEntry() { return false; } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new IdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } /** * Make an archive of all datas. diff --git a/src/main/java/org/olat/course/nodes/GTACourseNode.java b/src/main/java/org/olat/course/nodes/GTACourseNode.java index 5a8a07ef3b8..4ff06b19a0b 100644 --- a/src/main/java/org/olat/course/nodes/GTACourseNode.java +++ b/src/main/java/org/olat/course/nodes/GTACourseNode.java @@ -39,7 +39,6 @@ import org.olat.core.commons.services.notifications.NotificationsManager; import org.olat.core.commons.services.notifications.SubscriptionContext; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -64,7 +63,6 @@ import org.olat.course.ICourse; import org.olat.course.archiver.ScoreAccountingHelper; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.handler.AssessmentConfig; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.PublishEvents; @@ -80,7 +78,6 @@ import org.olat.course.nodes.gta.TaskList; import org.olat.course.nodes.gta.model.TaskDefinition; import org.olat.course.nodes.gta.ui.GTACoachedGroupListController; import org.olat.course.nodes.gta.ui.GTAEditController; -import org.olat.course.nodes.gta.ui.GTAIdentityListCourseNodeController; import org.olat.course.nodes.gta.ui.GTARunController; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.scoring.AssessmentEvaluation; @@ -90,8 +87,6 @@ import org.olat.group.BusinessGroup; import org.olat.group.BusinessGroupService; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.repository.RepositoryEntry; import org.olat.user.UserManager; @@ -796,14 +791,6 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Persi return new GTACoachedGroupListController(ureq, wControl, stackPanel, coachCourseEnv, this, groups); } - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new GTAIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } - @Override public AssessmentEvaluation getUserScoreEvaluation(UserCourseEnvironment userCourseEnv) { AssessmentConfig assessmentConfig = new GTAAssessmentConfig(getModuleConfiguration()); diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java index 0506cdbe807..1afe51061ac 100644 --- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java @@ -38,7 +38,6 @@ import org.apache.logging.log4j.Logger; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -56,13 +55,11 @@ import org.olat.course.ICourse; import org.olat.course.archiver.ScoreAccountingHelper; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.CourseAssessmentService; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.StatusDescription; import org.olat.course.nodes.iq.CourseIQSecurityCallback; import org.olat.course.nodes.iq.IQEditController; -import org.olat.course.nodes.iq.IQIdentityListCourseNodeController; import org.olat.course.nodes.iq.IQPreviewController; import org.olat.course.nodes.iq.IQRunController; import org.olat.course.nodes.iq.IQTESTAssessmentConfig; @@ -80,7 +77,6 @@ import org.olat.course.statistic.StatisticResourceResult; import org.olat.course.statistic.StatisticType; import org.olat.fileresource.FileResourceManager; import org.olat.fileresource.types.ImsQTI21Resource; -import org.olat.group.BusinessGroup; import org.olat.ims.qti.QTIResultManager; import org.olat.ims.qti.export.QTIExportEssayItemFormatConfig; import org.olat.ims.qti.export.QTIExportFIBItemFormatConfig; @@ -112,8 +108,6 @@ import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; import org.olat.modules.assessment.model.AssessmentEntryStatus; import org.olat.modules.assessment.model.AssessmentRunStatus; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.iq.IQSecurityCallback; import org.olat.repository.RepositoryEntry; import org.olat.repository.RepositoryEntryImportExport; @@ -288,14 +282,6 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements Pe } return controller; } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new IQIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } public boolean isQTI12TestRunning(Identity assessedIdentity, CourseEnvironment courseEnv) { String resourcePath = courseEnv.getCourseResourceableId() + File.separator + getIdent(); diff --git a/src/main/java/org/olat/course/nodes/MSCourseNode.java b/src/main/java/org/olat/course/nodes/MSCourseNode.java index c3085cf6980..714d856fd1e 100644 --- a/src/main/java/org/olat/course/nodes/MSCourseNode.java +++ b/src/main/java/org/olat/course/nodes/MSCourseNode.java @@ -36,7 +36,6 @@ import org.olat.core.commons.persistence.DBFactory; import org.olat.core.commons.services.taskexecutor.TaskExecutorManager; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -52,7 +51,6 @@ import org.olat.core.util.Util; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.handler.AssessmentConfig; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.condition.ConditionEditController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; @@ -61,7 +59,6 @@ import org.olat.course.editor.StatusDescription; import org.olat.course.nodes.ms.MSAssessmentConfig; import org.olat.course.nodes.ms.MSCourseNodeEditController; import org.olat.course.nodes.ms.MSCourseNodeRunController; -import org.olat.course.nodes.ms.MSIdentityListCourseNodeController; import org.olat.course.nodes.ms.MSRunController; import org.olat.course.nodes.ms.MSService; import org.olat.course.nodes.ms.MinMax; @@ -73,12 +70,9 @@ import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironmentImpl; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.forms.EvaluationFormSession; import org.olat.modules.forms.handler.EvaluationFormResource; import org.olat.properties.Property; @@ -346,14 +340,6 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Persis return MinMax.of(0.0f, 0.0f); } - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new MSIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback, true); - } - public void updateScoreEvaluation(Identity identity, UserCourseEnvironment assessedUserCourseEnv, Identity assessedIdentity, Role by, EvaluationFormSession session) { AssessmentManager am = assessedUserCourseEnv.getCourseEnvironment().getAssessmentManager(); diff --git a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java index e4756523b81..0d5c78dfa8a 100644 --- a/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java +++ b/src/main/java/org/olat/course/nodes/PortfolioCourseNode.java @@ -30,7 +30,6 @@ import org.apache.logging.log4j.Logger; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -45,8 +44,6 @@ import org.olat.core.util.Util; import org.olat.core.util.ValidationStatus; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; -import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.condition.Condition; import org.olat.course.condition.interpreter.ConditionInterpreter; import org.olat.course.editor.CourseEditorEnv; @@ -61,11 +58,8 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.portfolio.PortfolioService; import org.olat.portfolio.EPTemplateMapResource; import org.olat.portfolio.manager.EPFrontendManager; @@ -164,14 +158,6 @@ public class PortfolioCourseNode extends AbstractAccessableCourseNode implements return new NodeRunConstructionResult(ctrl); } - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new IdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } - /** * Default set the write privileges to coaches and admin only * @return diff --git a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java index 4b90026d67e..26d60c66402 100644 --- a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java @@ -48,7 +48,6 @@ import org.olat.core.commons.modules.bc.FolderConfig; import org.olat.core.commons.services.taskexecutor.TaskExecutorManager; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -79,7 +78,6 @@ import org.olat.core.util.vfs.filters.VFSSystemItemFilter; import org.olat.core.util.xml.XStreamHelper; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.condition.Condition; import org.olat.course.condition.interpreter.ConditionExpression; import org.olat.course.condition.interpreter.ConditionInterpreter; @@ -90,7 +88,6 @@ import org.olat.course.export.CourseEnvironmentMapper; import org.olat.course.nodes.ms.MSEditFormController; import org.olat.course.nodes.projectbroker.ProjectBrokerControllerFactory; import org.olat.course.nodes.projectbroker.ProjectBrokerCourseEditorController; -import org.olat.course.nodes.projectbroker.ProjectBrokerIdentityListCourseNodeController; import org.olat.course.nodes.projectbroker.ProjectListController; import org.olat.course.nodes.projectbroker.datamodel.Project; import org.olat.course.nodes.projectbroker.datamodel.ProjectBroker; @@ -110,8 +107,6 @@ import org.olat.group.BusinessGroupService; import org.olat.group.model.BusinessGroupReference; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.properties.Property; import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; @@ -485,14 +480,6 @@ public class ProjectBrokerCourseNode extends GenericCourseNode implements Persis Identity mySelf = userCourseEnv.getIdentityEnvironment().getIdentity(); return am.getAssessmentEntry(this, mySelf); } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new ProjectBrokerIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } @Override public void postImport(File importDirectory, ICourse course, CourseEnvironmentMapper envMapper, Processing processType) { diff --git a/src/main/java/org/olat/course/nodes/STCourseNode.java b/src/main/java/org/olat/course/nodes/STCourseNode.java index d633ba6c240..2b7dc5825fc 100644 --- a/src/main/java/org/olat/course/nodes/STCourseNode.java +++ b/src/main/java/org/olat/course/nodes/STCourseNode.java @@ -36,7 +36,6 @@ import org.olat.core.commons.fullWebApp.popup.BaseFullWebappPopupLayoutFactory; import org.olat.core.commons.modules.singlepage.SinglePageController; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.creator.ControllerCreator; @@ -54,7 +53,6 @@ import org.olat.core.util.resource.OresHelper; import org.olat.course.CourseFactory; import org.olat.course.CourseModule; import org.olat.course.ICourse; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.condition.Condition; import org.olat.course.condition.KeyAndNameConverter; import org.olat.course.condition.interpreter.ConditionExpression; @@ -69,7 +67,6 @@ import org.olat.course.nodes.sp.SPEditController; import org.olat.course.nodes.sp.SPPeekviewController; import org.olat.course.nodes.st.STCourseNodeEditController; import org.olat.course.nodes.st.STCourseNodeRunController; -import org.olat.course.nodes.st.STIdentityListCourseNodeController; import org.olat.course.nodes.st.STPeekViewController; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.scoring.AssessmentEvaluation; @@ -79,11 +76,8 @@ import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.tree.CourseInternalLinkTreeModel; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.repository.RepositoryEntry; import org.olat.util.logging.activity.LoggingResourceable; @@ -378,14 +372,6 @@ public class STCourseNode extends AbstractAccessableCourseNode implements Calcul failedExpression.setConditionExpression(failed); failedExpression.setConditionId("failed"); } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new STIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } /** * Update the module configuration to have all mandatory configuration flags diff --git a/src/main/java/org/olat/course/nodes/ScormCourseNode.java b/src/main/java/org/olat/course/nodes/ScormCourseNode.java index ce95bafae18..43f02de6e4a 100644 --- a/src/main/java/org/olat/course/nodes/ScormCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ScormCourseNode.java @@ -38,7 +38,6 @@ import org.apache.logging.log4j.Logger; import org.olat.core.CoreSpringFactory; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.iframe.DeliveryOptions; @@ -53,8 +52,6 @@ import org.olat.core.util.Util; import org.olat.core.util.ZipUtil; import org.olat.course.ICourse; import org.olat.course.assessment.AssessmentManager; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; -import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.editor.CourseEditorEnv; import org.olat.course.editor.NodeEditController; import org.olat.course.editor.StatusDescription; @@ -67,11 +64,8 @@ import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.types.ScormCPFileResource; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.scorm.ScormMainManager; import org.olat.modules.scorm.ScormPackageConfig; import org.olat.modules.scorm.archiver.ScormExportManager; @@ -141,14 +135,6 @@ public class ScormCourseNode extends AbstractAccessableCourseNode implements Per ScormRunController cprunC = new ScormRunController(getModuleConfiguration(), ureq, userCourseEnv, wControl, this, true); return new NodeRunConstructionResult(cprunC).getRunController(); } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new IdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } @Override public StatusDescription isConfigValid() { diff --git a/src/main/java/org/olat/course/nodes/TACourseNode.java b/src/main/java/org/olat/course/nodes/TACourseNode.java index 0f1e4b5816d..6ee91f88a4f 100644 --- a/src/main/java/org/olat/course/nodes/TACourseNode.java +++ b/src/main/java/org/olat/course/nodes/TACourseNode.java @@ -44,7 +44,6 @@ import org.olat.core.commons.modules.bc.FolderConfig; import org.olat.core.commons.services.taskexecutor.TaskExecutorManager; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; -import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.generic.messages.MessageUIFactory; @@ -72,7 +71,6 @@ import org.olat.course.ICourse; import org.olat.course.archiver.ScoreAccountingHelper; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.handler.AssessmentConfig; -import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.condition.Condition; import org.olat.course.condition.interpreter.ConditionExpression; import org.olat.course.condition.interpreter.ConditionInterpreter; @@ -87,7 +85,6 @@ import org.olat.course.nodes.ta.ReturnboxController; import org.olat.course.nodes.ta.TAAssessmentConfig; import org.olat.course.nodes.ta.TACourseNodeEditController; import org.olat.course.nodes.ta.TACourseNodeRunController; -import org.olat.course.nodes.ta.TAIdentityListCourseNodeController; import org.olat.course.nodes.ta.TaskController; import org.olat.course.properties.CoursePropertyManager; import org.olat.course.properties.PersistingCoursePropertyManager; @@ -97,12 +94,9 @@ import org.olat.course.run.scoring.AssessmentEvaluation; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.modules.assessment.AssessmentEntry; import org.olat.modules.assessment.Role; -import org.olat.modules.assessment.ui.AssessmentToolContainer; -import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.properties.Property; import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; @@ -481,14 +475,6 @@ public class TACourseNode extends GenericCourseNode implements PersistentAssessa null, null, null, null); am.saveScoreEvaluation(this, coachingIdentity, mySelf, newScoreEval, userCourseEnvironment, incrementAttempts, by); } - - @Override - public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, UserCourseEnvironment coachCourseEnv, - AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { - return new TAIdentityListCourseNodeController(ureq, wControl, stackPanel, - courseEntry, group, this, coachCourseEnv, toolContainer, assessmentCallback); - } @Override public void copyConfigurationTo(CourseNode courseNode, ICourse course) { diff --git a/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java b/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java index c5c9ab711e2..13b9ffc6c59 100644 --- a/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/basiclti/LTIAssessmentHandler.java @@ -21,15 +21,21 @@ package org.olat.course.nodes.basiclti; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.id.Identity; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.BasicLTICourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; import org.olat.ims.lti.ui.LTIResultDetailsController; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; import org.springframework.stereotype.Service; @@ -60,4 +66,17 @@ public class LTIAssessmentHandler implements AssessmentHandler { return new LTIResultDetailsController(ureq, wControl, assessedIdentity, resource, courseNode.getIdent()); } + @Override + public boolean hasCustomIdentityList() { + return false; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return null; + } + } diff --git a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java index 666fd4a2d30..1396bd28fb9 100644 --- a/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/cl/CheckListAssessmentHandler.java @@ -21,6 +21,7 @@ package org.olat.course.nodes.cl; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.id.Identity; @@ -28,10 +29,15 @@ import org.olat.core.id.OLATResourceable; import org.olat.core.util.resource.OresHelper; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CheckListCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.cl.ui.AssessedIdentityCheckListController; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -65,4 +71,17 @@ public class CheckListAssessmentHandler implements AssessmentHandler { assessedUserCourseEnvironment, courseNode, false, false); } + @Override + public boolean hasCustomIdentityList() { + return false; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return null; + } + } diff --git a/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java b/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java index 71325a05a85..14f7820743e 100644 --- a/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/gta/AbstractGTAAssessmentHandler.java @@ -21,15 +21,22 @@ package org.olat.course.nodes.gta; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BlankController; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.ui.GTAAssessmentDetailsController; +import org.olat.course.nodes.gta.ui.GTAIdentityListCourseNodeController; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; /** * @@ -53,5 +60,19 @@ public abstract class AbstractGTAAssessmentHandler implements AssessmentHandler } return new BlankController(ureq, wControl); } + + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new GTAIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, courseNode, + coachCourseEnv, toolContainer, assessmentCallback); + } } diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAIdentityListCourseNodeController.java index 85eb94368a9..8178165c5cc 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAIdentityListCourseNodeController.java @@ -45,6 +45,7 @@ import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeTableModel.IdentityCourseElementCols; import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.AssessableCourseNode; +import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.GTAManager; import org.olat.course.nodes.gta.GTAType; @@ -83,7 +84,7 @@ public class GTAIdentityListCourseNodeController extends IdentityListCourseNodeC private GTAManager gtaManager; public GTAIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, GTACourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); } diff --git a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java index 00f92c4a616..b27bdf38cd8 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/iq/IQIdentityListCourseNodeController.java @@ -56,6 +56,7 @@ import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeTableModel.IdentityCourseElementCols; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeToolsController; +import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.IQTESTCourseNode; import org.olat.course.nodes.iq.QTI21IdentityListCourseNodeToolsController.AssessmentTestSessionDetailsComparator; import org.olat.course.run.environment.CourseEnvironment; @@ -123,7 +124,7 @@ public class IQIdentityListCourseNodeController extends IdentityListCourseNodeCo private CourseAssessmentService courseAssessmentService; public IQIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, IQTESTCourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); if(stackPanel != null) { diff --git a/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java b/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java index a1350c85590..aa418579b93 100644 --- a/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/iq/IQTESTAssessmentHandler.java @@ -32,13 +32,17 @@ import org.olat.core.util.Util; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.handler.NonAssessmentConfig; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.IQTESTCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.fileresource.types.ImsQTI21Resource; +import org.olat.group.BusinessGroup; import org.olat.ims.qti.QTI12ResultDetailsController; import org.olat.ims.qti.process.AssessmentInstance; import org.olat.ims.qti21.ui.QTI21AssessmentDetailsController; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.repository.RepositoryEntry; import org.olat.resource.OLATResource; import org.springframework.stereotype.Service; @@ -96,4 +100,18 @@ public class IQTESTAssessmentHandler implements AssessmentHandler { return detailsCtrl != null? detailsCtrl: new BlankController(ureq, wControl); } + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new IQIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, courseNode, + coachCourseEnv, toolContainer, assessmentCallback); + } + } diff --git a/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java b/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java index 3a121db4314..2d0a3888482 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/ms/MSAssessmentHandler.java @@ -21,13 +21,19 @@ package org.olat.course.nodes.ms; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.MSCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -56,4 +62,18 @@ public class MSAssessmentHandler implements AssessmentHandler { return new MSEvaluationFormExecutionController(ureq, wControl, assessedUserCourseEnv, courseNode); } + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new MSIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, courseNode, + coachCourseEnv, toolContainer, assessmentCallback, true); + } + } diff --git a/src/main/java/org/olat/course/nodes/ms/MSIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/ms/MSIdentityListCourseNodeController.java index f6bea685e67..c34ee287119 100644 --- a/src/main/java/org/olat/course/nodes/ms/MSIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/ms/MSIdentityListCourseNodeController.java @@ -42,6 +42,7 @@ import org.olat.core.gui.control.generic.closablewrapper.CloseableModalControlle import org.olat.course.assessment.bulk.BulkAssessmentToolController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeTableModel.IdentityCourseElementCols; +import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.MSCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; @@ -75,7 +76,7 @@ public class MSIdentityListCourseNodeController extends IdentityListCourseNodeCo private MSService msService; public MSIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, MSCourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback, boolean showTitle) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); diff --git a/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java b/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java index 90878612ffe..ce07b202edf 100644 --- a/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/portfolio/PortfolioAssessmentHandler.java @@ -21,14 +21,19 @@ package org.olat.course.nodes.portfolio; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.core.id.Identity; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.PortfolioCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.portfolio.handler.BinderTemplateResource; import org.olat.modules.portfolio.ui.PortfolioAssessmentDetailsController; import org.olat.repository.RepositoryEntry; @@ -66,4 +71,17 @@ public class PortfolioAssessmentHandler implements AssessmentHandler { return new PortfolioResultDetailsController(ureq, wControl, stackPanel, courseNode, assessedUserCourseEnv); } + @Override + public boolean hasCustomIdentityList() { + return false; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return null; + } + } diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java index a50f47e1049..d746d3edc9b 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerAssessmentHandler.java @@ -21,13 +21,19 @@ package org.olat.course.nodes.projectbroker; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.ProjectBrokerCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -55,4 +61,18 @@ public class ProjectBrokerAssessmentHandler implements AssessmentHandler { return null; } + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new ProjectBrokerIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, + courseNode, coachCourseEnv, toolContainer, assessmentCallback); + } + } diff --git a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerIdentityListCourseNodeController.java index 747bd1112c2..f87c880b599 100644 --- a/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/projectbroker/ProjectBrokerIdentityListCourseNodeController.java @@ -25,7 +25,7 @@ import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.bulk.BulkAssessmentToolController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; -import org.olat.course.nodes.ProjectBrokerCourseNode; +import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; @@ -45,7 +45,7 @@ import org.olat.repository.RepositoryEntry; public class ProjectBrokerIdentityListCourseNodeController extends IdentityListCourseNodeController { public ProjectBrokerIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, ProjectBrokerCourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); } diff --git a/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java b/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java index 45ce0277468..1a19135eed1 100644 --- a/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/scorm/ScormAssessmentHandler.java @@ -21,14 +21,20 @@ package org.olat.course.nodes.scorm; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.ScormCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; import org.olat.modules.scorm.assessment.ScormResultDetailsController; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -56,4 +62,17 @@ public class ScormAssessmentHandler implements AssessmentHandler { return new ScormResultDetailsController(ureq, wControl, courseNode, coachCourseEnv, assessedUserCourseEnv); } + @Override + public boolean hasCustomIdentityList() { + return false; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return null; + } + } diff --git a/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java b/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java index 0463c74053e..40875dc2875 100644 --- a/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/st/STAssessmentHandler.java @@ -21,14 +21,20 @@ package org.olat.course.nodes.st; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; import org.olat.course.assessment.handler.NonAssessmentConfig; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.STCourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** @@ -60,4 +66,18 @@ public class STAssessmentHandler implements AssessmentHandler { return null; } + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new STIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, courseNode, + coachCourseEnv, toolContainer, assessmentCallback); + } + } diff --git a/src/main/java/org/olat/course/nodes/st/STIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/st/STIdentityListCourseNodeController.java index a059b85f2fe..a48ae3fe9c7 100644 --- a/src/main/java/org/olat/course/nodes/st/STIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/st/STIdentityListCourseNodeController.java @@ -52,7 +52,7 @@ import org.olat.course.assessment.ui.tool.IdentityListCourseNodeTableModel.Ident import org.olat.course.certificate.CertificateLight; import org.olat.course.certificate.CertificatesManager; import org.olat.course.certificate.ui.DownloadCertificateCellRenderer; -import org.olat.course.nodes.STCourseNode; +import org.olat.course.nodes.CourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; import org.olat.modules.assessment.ui.AssessedIdentityElementRow; @@ -84,7 +84,7 @@ public class STIdentityListCourseNodeController extends IdentityListCourseNodeCo private PdfService pdfService; public STIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, STCourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); } diff --git a/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java b/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java index 5a708b1428b..95a058883b3 100644 --- a/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java +++ b/src/main/java/org/olat/course/nodes/ta/TAAssessmentHandler.java @@ -21,18 +21,25 @@ package org.olat.course.nodes.ta; import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.stack.BreadcrumbPanel; +import org.olat.core.gui.components.stack.TooledStackedPanel; import org.olat.core.gui.control.Controller; import org.olat.core.gui.control.WindowControl; import org.olat.course.assessment.handler.AssessmentConfig; import org.olat.course.assessment.handler.AssessmentHandler; +import org.olat.course.assessment.ui.tool.AssessmentCourseNodeController; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; import org.olat.course.run.userview.UserCourseEnvironment; +import org.olat.group.BusinessGroup; +import org.olat.modules.assessment.ui.AssessmentToolContainer; +import org.olat.modules.assessment.ui.AssessmentToolSecurityCallback; +import org.olat.repository.RepositoryEntry; import org.springframework.stereotype.Service; /** * * Initial date: 20 Aug 2019<br> + * * @author uhensler, urs.hensler@frentix.com, http://www.frentix.com * */ @@ -55,4 +62,18 @@ public class TAAssessmentHandler implements AssessmentHandler { return new DropboxScoringViewController(ureq, wControl, courseNode, assessedUserCourseEnv); } + @Override + public boolean hasCustomIdentityList() { + return true; + } + + @Override + public AssessmentCourseNodeController getIdentityListController(UserRequest ureq, WindowControl wControl, + TooledStackedPanel stackPanel, CourseNode courseNode, RepositoryEntry courseEntry, BusinessGroup group, + UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, + AssessmentToolSecurityCallback assessmentCallback) { + return new TAIdentityListCourseNodeController(ureq, wControl, stackPanel, courseEntry, group, courseNode, + coachCourseEnv, toolContainer, assessmentCallback); + } + } diff --git a/src/main/java/org/olat/course/nodes/ta/TAIdentityListCourseNodeController.java b/src/main/java/org/olat/course/nodes/ta/TAIdentityListCourseNodeController.java index de00d34312f..ef97b525478 100644 --- a/src/main/java/org/olat/course/nodes/ta/TAIdentityListCourseNodeController.java +++ b/src/main/java/org/olat/course/nodes/ta/TAIdentityListCourseNodeController.java @@ -31,6 +31,7 @@ import org.olat.course.archiver.ArchiveResource; import org.olat.course.assessment.bulk.BulkAssessmentToolController; import org.olat.course.assessment.ui.tool.IdentityListCourseNodeController; import org.olat.course.nodes.ArchiveOptions; +import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.group.BusinessGroup; @@ -53,7 +54,7 @@ public class TAIdentityListCourseNodeController extends IdentityListCourseNodeCo private FormLink downloadButton; public TAIdentityListCourseNodeController(UserRequest ureq, WindowControl wControl, TooledStackedPanel stackPanel, - RepositoryEntry courseEntry, BusinessGroup group, TACourseNode courseNode, UserCourseEnvironment coachCourseEnv, + RepositoryEntry courseEntry, BusinessGroup group, CourseNode courseNode, UserCourseEnvironment coachCourseEnv, AssessmentToolContainer toolContainer, AssessmentToolSecurityCallback assessmentCallback) { super(ureq, wControl, stackPanel, courseEntry, group, courseNode, coachCourseEnv, toolContainer, assessmentCallback); } -- GitLab