diff --git a/src/main/java/org/olat/core/util/Formatter.java b/src/main/java/org/olat/core/util/Formatter.java index 00f1f98c023ffe0bd4d6e0fab61a9206126d5fc6..8ccb4586d8102e0886efa54d920d94fd18fb6ed4 100644 --- a/src/main/java/org/olat/core/util/Formatter.java +++ b/src/main/java/org/olat/core/util/Formatter.java @@ -77,6 +77,11 @@ public class Formatter { mediumTimeFormat.setLenient(false); shortDateTimeFormat = DateFormat.getDateTimeInstance(DateFormat.SHORT, DateFormat.SHORT, locale); shortDateTimeFormat.setLenient(false); + if (shortDateTimeFormat instanceof SimpleDateFormat) { + SimpleDateFormat sdf = (SimpleDateFormat) shortDateTimeFormat; + String pattern = sdf.toPattern().replaceAll("y+","yyyy"); + sdf.applyPattern(pattern); + } shortTimeFormat = DateFormat.getTimeInstance(DateFormat.SHORT, locale); shortTimeFormat.setLenient(false); } diff --git a/src/main/java/org/olat/course/nodes/GTACourseNode.java b/src/main/java/org/olat/course/nodes/GTACourseNode.java index 5f8c3432f2bdd7db6598617188236fc4615492a4..ed34240d1d6004ee7131ef72ca44ec3f7aa86c25 100644 --- a/src/main/java/org/olat/course/nodes/GTACourseNode.java +++ b/src/main/java/org/olat/course/nodes/GTACourseNode.java @@ -350,6 +350,9 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Asses File fSolImportDir = new File(fNodeImportDir, "solutions"); File solutionsDirectory = gtaManager.getSolutionsDirectory(course.getCourseEnvironment(), this); FileUtils.copyDirContentsToDir(fSolImportDir, solutionsDirectory, false, "import task course node solutions"); + + RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); + gtaManager.createIfNotExists(entry, this); } @Override @@ -366,6 +369,9 @@ public class GTACourseNode extends AbstractAccessableCourseNode implements Asses File sourceSolutionsDirectory = gtaManager.getSolutionsDirectory(sourceCourse.getCourseEnvironment(), this); File copySolutionsDirectory = gtaManager.getSolutionsDirectory(course.getCourseEnvironment(), this); FileUtils.copyDirContentsToDir(sourceSolutionsDirectory, copySolutionsDirectory, false, "copy task course node solutions"); + + RepositoryEntry entry = course.getCourseEnvironment().getCourseGroupManager().getCourseEntry(); + gtaManager.createIfNotExists(entry, this); } @Override diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java index f86b673083c7a6fdbf4c7a1f8b061c00183f99fb..f4005115a969f19f776adc583c6f3378d29c3ceb 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAAbstractController.java @@ -124,7 +124,7 @@ public abstract class GTAAbstractController extends BasicController { businessGroupTask = GTAType.group.name().equals(config.getStringValue(GTACourseNode.GTASK_TYPE)); - taskList = gtaManager.getTaskList(courseEntry, gtaNode); + taskList = gtaManager.createIfNotExists(courseEntry, gtaNode); publisherData = gtaManager.getPublisherData(courseEnv, gtaNode); subsContext = gtaManager.getSubscriptionContext(courseEnv, gtaNode); diff --git a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java index fa7c0bdfec57133e57ac98f10bcc84a96757c49d..238d1a732dc9f5e3ca87cbf1a873d8db6265c66e 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java +++ b/src/main/java/org/olat/course/nodes/gta/ui/GTAParticipantController.java @@ -171,6 +171,9 @@ public class GTAParticipantController extends GTAAbstractController { } else if(response == null || response.getStatus() == AssignmentResponse.Status.noMoreTasks) { showError("error.nomoretasks"); } else if(response == null || response.getStatus() == AssignmentResponse.Status.ok) { + if(response != null) { + assignedTask = response.getTask(); + } showInfo("task.successfully.assigned"); showAssignedTask(ureq, assignedTask); } 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 e5923efafa6bfacebc088b531e44ec3be8ee7da3..d633289cf194efd3d23476519d47907670a96bcd 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 @@ -52,7 +52,7 @@ download.task=Aufgabe herunterladen download.task.infos={0} ({1} MB) edit.task=Aufgabe bearbeiten editor.title=Abgabe Konfiguration -embedded.editor=Abgabe mit internem Texteditor +embedded.editor=Abgabe mit OpenOLAT Texteditor enabled=eingeschaltet error.assignment.closed=Zuweisung ist geschlossen. error.duplicate.coaching=Der Teilnehmer ist Teilnehmer von mehreren Gruppen f\u00FCr diese Aufgabe. @@ -71,7 +71,7 @@ error.not.member.message=Reserviert f\u00FCr die Teilnehmer der Aufgabe error.not.member.title=Reserviert f\u00FCr die Teilnehmer der Aufgabe error.number.format=Geben Sie eine Zahl zwischen 1 und 12 ein oder lassen Sie das Feld leer. error.select.atleastonestep=Sie haben keine Schritte gew\u00E4hlt -external.editor=Abgabe mit externem Editor (PDF) +external.editor=Dokumente hochladen (z.B. PDF) file.name=Dateiname file.name.example=Dokument.html grading=Bewertung 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 ec01ec87915ac7cc53590d7127f2befffd232cb4..21050ca85123cd43faadd841598db9eaf397a918 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 @@ -54,7 +54,7 @@ download.task=Download task download.task.infos={0} ({1} MB) edit.task=Edit task editor.title=Submission configuration -embedded.editor=Submit with embedded text editor +embedded.editor=Submit with OpenOLAT text editor enabled=enabled error.assignment.closed=Assignment is closed error.duplicate.coaching=This user is a member of multiple groups in this task. @@ -73,7 +73,7 @@ error.not.member.message=Reserved for task members error.not.member.title=Reserved for task members error.number.format=Enter a number between 1 and 12 or leave the field blank. error.select.atleastonestep=You have not selected any steps -external.editor=Submit files created with external editor (e.g. PDF) +external.editor=Upload files (e.g. PDF) file.name=File name file.name.example=Document.html grading=Grading diff --git a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties index 32b5ff5d7eac2fb5699f8dd49542bfefa1d53f0e..18a5f3aa497df6fb538b2cfead0d2aab51121c24 100644 --- a/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/course/nodes/gta/ui/_i18n/LocalStrings_fr.properties @@ -45,7 +45,7 @@ download.task=T\u00E9l\u00E9charger les devoirs download.task.infos={0} ({1} MB) edit.task=Editer le devoir editor.title=Configuration du d\u00E9p\u00F4t de documents -embedded.editor=D\u00E9p\u00F4t avec l'\u00E9diteur de text interne +embedded.editor=Soumettre avec l'\u00E9diteur de texte d'OpenOLAT enabled=activ\u00E9 error.assignment.closed=Le d\u00E9lai d'affectation des devoirs est d\u00E9pass\u00E9. error.duplicate.coaching=Le participant est participant dans plusieurs groupes pour ce devoir. @@ -64,7 +64,7 @@ error.not.member.message=R\u00E9serv\u00E9 aux participants aux devoirs error.not.member.title=R\u00E9serv\u00E9 aux participants du devoir error.number.format=Donnez un nombre entre 1 et 12 ou laissez le champ libre. error.select.atleastonestep=Vous n'avez s\u00E9lectionn\u00E9 aucune \u00E9tape. -external.editor=D\u00E9p\u00F4t avec un \u00E9diteur externe (PDF) +external.editor=T\u00E9l\u00E9charger un fichier (PDF par exemple) file.name=Nom du document file.name.example=Document.html grading=Evaluation