diff --git a/src/main/java/org/olat/modules/coach/ui/CourseController.java b/src/main/java/org/olat/modules/coach/ui/CourseController.java index 76b42e2e8b1b6b713781d6c36f171c8c4d8f3ba5..37a82c2d10acf75eace24273e94b14e9901f3c9a 100644 --- a/src/main/java/org/olat/modules/coach/ui/CourseController.java +++ b/src/main/java/org/olat/modules/coach/ui/CourseController.java @@ -356,11 +356,15 @@ public class CourseController extends BasicController implements Activateable2, } private void selectDetails(UserRequest ureq, EfficiencyStatementEntry entry) { - removeAsListenerAndDispose(statementCtrl); + boolean selectAssessmentTool = false; + if(statementCtrl != null) { + selectAssessmentTool = statementCtrl.isAssessmentToolSelected(); + removeAsListenerAndDispose(statementCtrl); + } OLATResourceable ores = OresHelper.createOLATResourceableInstance(Identity.class, entry.getStudentKey()); WindowControl bwControl = addToHistory(ureq, ores, null); - statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry); + statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry, selectAssessmentTool); listenTo(statementCtrl); mainVC.put("efficiencyDetails", statementCtrl.getInitialComponent()); diff --git a/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java b/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java index 0de9ad93cc80d18cc340a958ad112ef3616c865a..e48ea77a74141fcbb322dcd10834a8d00bf6bc81 100644 --- a/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java +++ b/src/main/java/org/olat/modules/coach/ui/EfficiencyStatementDetailsController.java @@ -79,7 +79,7 @@ public class EfficiencyStatementDetailsController extends BasicController implem private EfficiencyStatementManager efficiencyStatementManager; public EfficiencyStatementDetailsController(UserRequest ureq, WindowControl wControl, - EfficiencyStatementEntry statementEntry) { + EfficiencyStatementEntry statementEntry, boolean selectAssessmentTool) { super(ureq, wControl); mainVC = createVelocityContainer("efficiency_details"); @@ -89,9 +89,10 @@ public class EfficiencyStatementDetailsController extends BasicController implem assessedIdentity = securityManager.loadIdentityByKey(statementEntry.getStudentKey()); statementCtrl = createEfficiencyStatementController(ureq); listenTo(statementCtrl); - mainVC.put("segmentCmp", statementCtrl.getInitialComponent()); - if(entry != null) { + if(entry == null) { + mainVC.put("segmentCmp", statementCtrl.getInitialComponent()); + } else { try { ICourse course = CourseFactory.loadCourse(entry.getOlatResource()); assessmentCtrl = new IdentityAssessmentEditController(wControl, ureq, null, @@ -100,10 +101,16 @@ public class EfficiencyStatementDetailsController extends BasicController implem segmentView = SegmentViewFactory.createSegmentView("segments", mainVC, this); efficiencyStatementLink = LinkFactory.createLink("details.statement", mainVC, this); - segmentView.addSegment(efficiencyStatementLink, true); + segmentView.addSegment(efficiencyStatementLink, !selectAssessmentTool); assessmentLink = LinkFactory.createLink("details.assessment", mainVC, this); - segmentView.addSegment(assessmentLink, false); + segmentView.addSegment(assessmentLink, selectAssessmentTool); + + if(selectAssessmentTool) { + mainVC.put("segmentCmp", assessmentCtrl.getInitialComponent()); + } else { + mainVC.put("segmentCmp", statementCtrl.getInitialComponent()); + } } catch(CorruptedCourseException e) { logError("", e); } @@ -116,6 +123,10 @@ public class EfficiencyStatementDetailsController extends BasicController implem return statementEntry; } + public boolean isAssessmentToolSelected() { + return assessmentCtrl != null && assessmentCtrl.getInitialComponent() == mainVC.getComponent("segmentCmp"); + } + @Override protected void doDispose() { // diff --git a/src/main/java/org/olat/modules/coach/ui/GroupController.java b/src/main/java/org/olat/modules/coach/ui/GroupController.java index 2984f95ed2fda99d61233aa3d3951647c9663e46..a1542502486b432e70c2166d2cd5b5f16a178a42 100644 --- a/src/main/java/org/olat/modules/coach/ui/GroupController.java +++ b/src/main/java/org/olat/modules/coach/ui/GroupController.java @@ -341,11 +341,15 @@ public class GroupController extends BasicController implements Activateable2, G } private void selectDetails(UserRequest ureq, EfficiencyStatementEntry statementEntry) { - removeAsListenerAndDispose(statementCtrl); + boolean selectAssessmentTool = false; + if(statementCtrl != null) { + selectAssessmentTool = statementCtrl.isAssessmentToolSelected(); + removeAsListenerAndDispose(statementCtrl); + } OLATResourceable ores = OresHelper.createOLATResourceableInstance(Identity.class, statementEntry.getStudentKey()); WindowControl bwControl = addToHistory(ureq, ores, null); - statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, statementEntry); + statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, statementEntry, selectAssessmentTool); listenTo(statementCtrl); mainVC.put("efficiencyDetails", statementCtrl.getInitialComponent()); diff --git a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java index 8186cb1d8a1c376071439a1e7d4b37492c80141e..61bfca07829be25c177c6b81b12f089741312c74 100644 --- a/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java +++ b/src/main/java/org/olat/modules/coach/ui/StudentCoursesController.java @@ -386,11 +386,15 @@ public class StudentCoursesController extends BasicController implements Activat } private void selectDetails(UserRequest ureq, EfficiencyStatementEntry entry) { - removeAsListenerAndDispose(statementCtrl); + boolean selectAssessmentTool = false; + if(statementCtrl != null) { + selectAssessmentTool = statementCtrl.isAssessmentToolSelected(); + removeAsListenerAndDispose(statementCtrl); + } OLATResourceable ores = OresHelper.createOLATResourceableInstance(RepositoryEntry.class, entry.getCourse().getKey()); WindowControl bwControl = addToHistory(ureq, ores, null); - statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry); + statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry, selectAssessmentTool); listenTo(statementCtrl); detailsCmp.setText(entry.getCourse().getDisplayname()); diff --git a/src/main/java/org/olat/modules/coach/ui/StudentOverviewController.java b/src/main/java/org/olat/modules/coach/ui/StudentOverviewController.java index ab88fa8a4229beadef836802271e00e5c879a6a3..869a598d70f28744f059a025124aa4632c0c0dd0 100644 --- a/src/main/java/org/olat/modules/coach/ui/StudentOverviewController.java +++ b/src/main/java/org/olat/modules/coach/ui/StudentOverviewController.java @@ -283,13 +283,17 @@ public class StudentOverviewController extends BasicController implements Activa } private void selectDetails(UserRequest ureq, UserEfficiencyStatement statement) { - removeAsListenerAndDispose(statementCtrl); + boolean selectAssessmentTool = false; + if(statementCtrl != null) { + selectAssessmentTool = statementCtrl.isAssessmentToolSelected(); + removeAsListenerAndDispose(statementCtrl); + } EfficiencyStatementEntry entry = coachingService.getEfficencyStatement(statement); OLATResourceable ores = OresHelper.createOLATResourceableInstance(RepositoryEntry.class, statement.getCourseRepoKey()); WindowControl bwControl = addToHistory(ureq, ores, null); - statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry); + statementCtrl = new EfficiencyStatementDetailsController(ureq, bwControl, entry, selectAssessmentTool); listenTo(statementCtrl); detailsCmp.setText(statement.getShortTitle());