diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedGroupListController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedGroupListController.java index a0dc1b45666a168c291e1d4fc8f89b9e6544c327..225655517d6c4bcef2af532336960cf5dc476642 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedGroupListController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedGroupListController.java @@ -28,7 +28,6 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; -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.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiTableColumnModel; @@ -52,13 +51,11 @@ import org.springframework.beans.factory.annotation.Autowired; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class GTACoachedGroupListController extends FormBasicController { +public class GTACoachedGroupListController extends GTACoachedListController { private FlexiTableElement tableEl; private CoachGroupsTableModel tableModel; - private final GTACourseNode gtaNode; - private final CourseEnvironment courseEnv; private final List<BusinessGroup> coachedGroups; @Autowired @@ -66,9 +63,7 @@ public class GTACoachedGroupListController extends FormBasicController { public GTACoachedGroupListController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, GTACourseNode gtaNode, List<BusinessGroup> coachedGroups) { - super(ureq, wControl, LAYOUT_BAREBONE); - this.gtaNode = gtaNode; - this.courseEnv = courseEnv; + super(ureq, wControl, courseEnv, gtaNode); this.coachedGroups = coachedGroups; initForm(ureq); updateModel(); @@ -76,6 +71,8 @@ public class GTACoachedGroupListController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + super.initForm(formLayout, listener, ureq); + FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); columnsModel.addFlexiColumnModel(new DefaultFlexiColumnModel(CGCols.name.i18nKey(), CGCols.name.ordinal(), true, CGCols.name.name())); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedListController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedListController.java new file mode 100644 index 0000000000000000000000000000000000000000..e28e6a4fabd9f76139086ba2922266475957abfa --- /dev/null +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedListController.java @@ -0,0 +1,76 @@ +/** + * <a href="http://www.openolat.org"> + * OpenOLAT - Online Learning and Training</a><br> + * <p> + * Licensed under the Apache License, Version 2.0 (the "License"); <br> + * you may not use this file except in compliance with the License.<br> + * You may obtain a copy of the License at the + * <a href="http://www.apache.org/licenses/LICENSE-2.0">Apache homepage</a> + * <p> + * Unless required by applicable law or agreed to in writing,<br> + * software distributed under the License is distributed on an "AS IS" BASIS, <br> + * WITHOUT WARRANTIES OR CONDITIONS OF ANY KIND, either express or implied. <br> + * See the License for the specific language governing permissions and <br> + * limitations under the License. + * <p> + * Initial code contributed and copyrighted by<br> + * frentix GmbH, http://www.frentix.com + * <p> + */ +package org.olat.course.nodes.gta.ui; + +import org.olat.core.gui.UserRequest; +import org.olat.core.gui.components.form.flexible.FormItemContainer; +import org.olat.core.gui.components.form.flexible.impl.FormBasicController; +import org.olat.core.gui.components.form.flexible.impl.FormLayoutContainer; +import org.olat.core.gui.control.Controller; +import org.olat.core.gui.control.WindowControl; +import org.olat.course.nodes.GTACourseNode; +import org.olat.course.run.environment.CourseEnvironment; +import org.olat.modules.ModuleConfiguration; + +/** + * + * Initial date: 21.12.2015<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public abstract class GTACoachedListController extends FormBasicController { + + protected final GTACourseNode gtaNode; + protected final CourseEnvironment courseEnv; + + public GTACoachedListController(UserRequest ureq, WindowControl wControl, + CourseEnvironment courseEnv, GTACourseNode gtaNode) { + super(ureq, wControl, "coach_list"); + this.gtaNode = gtaNode; + this.courseEnv = courseEnv; + } + + + @Override + protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + if(formLayout instanceof FormLayoutContainer) { + FormLayoutContainer layoutCont = (FormLayoutContainer)formLayout; + + ModuleConfiguration config = gtaNode.getModuleConfiguration(); + boolean assignment = config.getBooleanSafe(GTACourseNode.GTASK_ASSIGNMENT); + layoutCont.contextPut("assignmentEnabled", new Boolean(assignment)); + + boolean submit = config.getBooleanSafe(GTACourseNode.GTASK_SUBMIT); + layoutCont.contextPut("submitEnabled", submit); + + boolean reviewAndCorrection = config.getBooleanSafe(GTACourseNode.GTASK_REVIEW_AND_CORRECTION); + layoutCont.contextPut("reviewAndCorrectionEnabled", reviewAndCorrection); + + boolean revision = config.getBooleanSafe(GTACourseNode.GTASK_REVISION_PERIOD); + layoutCont.contextPut("revisionEnabled", reviewAndCorrection && revision); + + boolean solution = config.getBooleanSafe(GTACourseNode.GTASK_SAMPLE_SOLUTION); + layoutCont.contextPut("solutionEnabled", solution); + + boolean grading = config.getBooleanSafe(GTACourseNode.GTASK_GRADING); + layoutCont.contextPut("gradingEnabled", grading); + } + } +} 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 05eed0a889b1fab6c516af806a54234627ee9c97..02dff854454fbd790e320b987261f0f834369bbe 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 @@ -123,7 +123,7 @@ public class GTACoachedParticipantGradingController extends BasicController { } private void doGraded() { - //assignedTask = gtaManager.updateTask(assignedTask, TaskProcess.graded); + //assignedTask = gtaManager.updateTask(assignedTask, TaskProcess.grading); } private void doOpenAssessmentForm(UserRequest ureq) { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantListController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantListController.java index fe7fbf349a5b524f38f7f5bf54abeb01d0f0a46a..881b80389bb5cb314de8766f864cb770990f1b6b 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantListController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTACoachedParticipantListController.java @@ -32,7 +32,6 @@ import org.olat.core.gui.UserRequest; import org.olat.core.gui.components.form.flexible.FormItem; import org.olat.core.gui.components.form.flexible.FormItemContainer; import org.olat.core.gui.components.form.flexible.elements.FlexiTableElement; -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.table.DefaultFlexiColumnModel; import org.olat.core.gui.components.form.flexible.impl.elements.table.FlexiColumnModel; @@ -53,7 +52,6 @@ import org.olat.course.nodes.GTACourseNode; import org.olat.course.nodes.gta.GTAManager; import org.olat.course.nodes.gta.TaskLight; import org.olat.course.nodes.gta.ui.CoachParticipantsTableModel.CGCols; -import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironment; import org.olat.course.run.userview.UserCourseEnvironmentImpl; import org.olat.group.BusinessGroup; @@ -71,13 +69,12 @@ import org.springframework.beans.factory.annotation.Autowired; * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com * */ -public class GTACoachedParticipantListController extends FormBasicController { +public class GTACoachedParticipantListController extends GTACoachedListController { private FlexiTableElement tableEl; private CoachParticipantsTableModel tableModel; - private final GTACourseNode gtaNode; - private final CourseEnvironment courseEnv; + private List<UserPropertiesRow> assessableIdentities; private final boolean isAdministrativeUser; @@ -96,7 +93,7 @@ public class GTACoachedParticipantListController extends FormBasicController { public GTACoachedParticipantListController(UserRequest ureq, WindowControl wControl, UserCourseEnvironment userCourseEnv, GTACourseNode gtaNode) { - super(ureq, wControl, LAYOUT_BAREBONE); + super(ureq, wControl, userCourseEnv.getCourseEnvironment(), gtaNode); Roles roles = ureq.getUserSession().getRoles(); isAdministrativeUser = securityModule.isUserAllowedAdminProps(roles); @@ -105,9 +102,7 @@ public class GTACoachedParticipantListController extends FormBasicController { CourseGroupManager cgm = userCourseEnv.getCourseEnvironment().getCourseGroupManager(); UserCourseEnvironmentImpl coachCourseEnv = (UserCourseEnvironmentImpl)userCourseEnv; - courseEnv = userCourseEnv.getCourseEnvironment(); - this.gtaNode = gtaNode; - + boolean admin = userCourseEnv.isAdmin(); Set<Identity> duplicateKiller = new HashSet<>(); @@ -139,6 +134,7 @@ public class GTACoachedParticipantListController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { + super.initForm(formLayout, listener, ureq); FlexiTableColumnModel columnsModel = FlexiTableDataModelFactory.createFlexiTableColumnModel(); if(isAdministrativeUser) { diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_list.html b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_list.html new file mode 100644 index 0000000000000000000000000000000000000000..09baa12bae2143ac629e7ac8b7ce286dc8a8bb03 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/gta/ui/_content/coach_list.html @@ -0,0 +1,23 @@ +$r.render("entries") +<ul class="list-unstyled small"> + <li><i class="o_icon o_icon-fw o_icon_info"> </i>: $r.translate("process.action.explanation")</li> + #if($assignmentEnabled) + <li><strong>$r.translate("process.assignment")</strong>: $r.translate("process.assignment.explanation")</li> + #end + #if($submitEnabled) + <li><strong>$r.translate("process.submission")</strong>: $r.translate("process.submission.explanation")</li> + #end + #if($reviewAndCorrectionEnabled) + <li><strong>$r.translate("process.review")</strong>: $r.translate("process.review.explanation")</li> + #if($revisionEnabled) + <li><strong>$r.translate("process.revision")</strong>: $r.translate("process.revision.explanation")</li> + #end + <li><strong>$r.translate("process.correction")</strong>: $r.translate("process.correction.explanation")</li> + #end + #if($solutionEnabled) + <li><strong>$r.translate("process.solution")</strong>: $r.translate("process.solution.explanation")</li> + #end + #if($gradingEnabled) + <li><strong>$r.translate("process.grading")</strong>: $r.translate("process.grading.explanation")</li> + #end +</ul> \ No newline at end of file diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties index e68201f545d3a525685a910a5f19f18387b28cf3..7588057b687d6b83003fef3d88fbdf0cd7ecafb2 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_de.properties @@ -117,14 +117,23 @@ passed.false=$org.olat.course.assessment\:passed.false preview=$org.olat.course.nodes.ta\:form.task.preview preview.disabled=$org.olat.course.nodes.ta\:form.task.without.preview preview.enabled=$org.olat.course.nodes.ta\:form.task.with.preview +process.action.explanation=Aktion durch Betreuer erforderlich process.no=Zuweisung +process.no.explanation=Der Benutzer wählt gerade eine Aufgabe aus. process.assignment=Zuweisung +process.assignment.explanation=Der Benutzer wählt gerade eine Aufgabe aus. process.submission=Abgabe +process.submission.explanation=Der Benutzer bearbeitet gerade die Aufgabe. process.review=Feedback +process.review.explanation=Der Betreuer begutachtet die abgegebene Lösung. process.revision=\u00DCberarbeitung +process.revision.explanation=Der Benutzer überarbeitet die Aufgabe. process.correction=Korrektur +process.correction.explanation=Der Betreuer begutachtet die überarbeitete Aufgabe. process.solution=L\u00F6sung +process.solution.explanation=Der Benutzer hat die Musterlösung erhalten. Bei verfügbarer Bewertung kann der Betreuer nun die Aufgabe bewerten. process.grading=Bewertung +process.grading.explanation=Der Betreuer bewertet die Aufgabe. process.graded=Bewertet relative.dates=Relatives Datum relative.to.assignment=Aufgabe Zuweisung diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties index dd1ba5b1f64f75be535dea6878a750cc9b08bae2..bdb2aa6fe2f911378c967980dd997bf625a074b9 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_en.properties @@ -117,15 +117,23 @@ passed.true=$org.olat.course.assessment\:passed.true preview=$org.olat.course.nodes.ta\:form.task.preview preview.disabled=$org.olat.course.nodes.ta\:form.task.without.preview preview.enabled=$org.olat.course.nodes.ta\:form.task.with.preview +process.action.explanation=Action needed process.assignment=Assignment +process.assignment.explanation=The user is selecting a task process.correction=Correction +process.correction.explanation=The coach is reviewing the revised documents. process.graded=Graded process.grading=Grading +process.grading.explanation=The coach is grading the task. process.no=Assignment process.review=Review +process.review.explanation=The coach is reviewing the submitted documents. process.revision=Revision +process.revision.explanation=The user is revising his solution. process.solution=Solution +process.solution.explanation=The user has now access to the sample solution. The coach is able to grade the task, if available. process.submission=Submission +process.submission.explanation=The user is working on the assigned task. relative.dates=Relative dates relative.to.assignment=Task assignment relative.to.assignment.message={0} days after assignment of the task.