From e276bb443f4a6526ac81b27a904e1bf93603a5b4 Mon Sep 17 00:00:00 2001 From: srosse <none@none> Date: Fri, 20 Dec 2013 12:19:07 +0100 Subject: [PATCH] OO-912: better check the assessed users in the end zip file --- .../bps/course/nodes/ChecklistCourseNode.java | 4 +- .../olat/course/archiver/ArchiveResource.java | 10 ++-- .../archiver/GenericArchiveController.java | 6 ++- .../archiver/ScoreAccountingHelper.java | 15 +++++- .../archiver/_i18n/LocalStrings_ar.properties | 13 ----- .../archiver/_i18n/LocalStrings_bg.properties | 6 --- .../archiver/_i18n/LocalStrings_cs.properties | 6 --- .../archiver/_i18n/LocalStrings_da.properties | 3 -- .../archiver/_i18n/LocalStrings_de.properties | 25 +++------ .../archiver/_i18n/LocalStrings_el.properties | 13 ----- .../archiver/_i18n/LocalStrings_en.properties | 26 +++------ .../archiver/_i18n/LocalStrings_es.properties | 6 --- .../archiver/_i18n/LocalStrings_fa.properties | 3 -- .../archiver/_i18n/LocalStrings_fr.properties | 25 +++------ .../archiver/_i18n/LocalStrings_it.properties | 13 ----- .../archiver/_i18n/LocalStrings_jp.properties | 7 --- .../archiver/_i18n/LocalStrings_lt.properties | 3 -- .../_i18n/LocalStrings_nl_NL.properties | 13 ----- .../archiver/_i18n/LocalStrings_pl.properties | 13 ----- .../_i18n/LocalStrings_pt_BR.properties | 13 ----- .../_i18n/LocalStrings_pt_PT.properties | 6 --- .../archiver/_i18n/LocalStrings_ru.properties | 6 --- .../archiver/_i18n/LocalStrings_sq.properties | 6 --- .../_i18n/LocalStrings_zh_CN.properties | 13 ----- .../_i18n/LocalStrings_zh_TW.properties | 7 --- .../assessment/AssessmentMainController.java | 9 +++- .../nodes/AbstractAccessableCourseNode.java | 3 +- .../org/olat/course/nodes/ArchiveOptions.java | 53 +++++++++++++++++++ .../course/nodes/AssessableCourseNode.java | 3 +- .../course/nodes/AssessmentToolOptions.java | 53 +++++++++++++++++++ .../org/olat/course/nodes/CourseNode.java | 3 +- .../olat/course/nodes/DialogCourseNode.java | 3 +- .../org/olat/course/nodes/FOCourseNode.java | 3 +- .../olat/course/nodes/GenericCourseNode.java | 3 +- .../olat/course/nodes/IQSELFCourseNode.java | 3 +- .../olat/course/nodes/IQSURVCourseNode.java | 3 +- .../olat/course/nodes/IQTESTCourseNode.java | 3 +- .../org/olat/course/nodes/MSCourseNode.java | 3 +- .../course/nodes/ProjectBrokerCourseNode.java | 5 +- .../olat/course/nodes/ScormCourseNode.java | 3 +- .../org/olat/course/nodes/TACourseNode.java | 25 +++++---- .../org/olat/course/nodes/WikiCourseNode.java | 3 +- .../nodes/ta/BulkDownloadToolController.java | 13 +++-- .../org/olat/course/site/CourseSiteDef.java | 4 ++ 44 files changed, 198 insertions(+), 261 deletions(-) create mode 100644 src/main/java/org/olat/course/nodes/ArchiveOptions.java create mode 100644 src/main/java/org/olat/course/nodes/AssessmentToolOptions.java diff --git a/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java b/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java index 5f391a64c43..5d31af9878c 100644 --- a/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java +++ b/src/main/java/de/bps/course/nodes/ChecklistCourseNode.java @@ -53,6 +53,7 @@ import org.olat.course.editor.StatusDescription; import org.olat.course.groupsandrights.CourseGroupManager; import org.olat.course.groupsandrights.CourseRights; import org.olat.course.nodes.AbstractAccessableCourseNode; +import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.StatusDescriptionHelper; import org.olat.course.nodes.TitledWrapperHelper; @@ -60,7 +61,6 @@ import org.olat.course.properties.CoursePropertyManager; import org.olat.course.run.navigation.NodeRunConstructionResult; 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.properties.Property; import org.olat.repository.RepositoryEntry; @@ -315,7 +315,7 @@ public class ChecklistCourseNode extends AbstractAccessableCourseNode { } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { String filename = "checklist_" + StringHelper.transformDisplayNameToFileSystemName(getShortName()) + "_" + Formatter.formatDatetimeFilesystemSave(new Date(System.currentTimeMillis())); diff --git a/src/main/java/org/olat/course/archiver/ArchiveResource.java b/src/main/java/org/olat/course/archiver/ArchiveResource.java index 694fecd6b44..afd4f5998fc 100644 --- a/src/main/java/org/olat/course/archiver/ArchiveResource.java +++ b/src/main/java/org/olat/course/archiver/ArchiveResource.java @@ -35,8 +35,8 @@ import org.olat.core.util.Formatter; import org.olat.core.util.StringHelper; import org.olat.course.CourseFactory; import org.olat.course.ICourse; +import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.CourseNode; -import org.olat.group.BusinessGroup; /** * @@ -49,13 +49,13 @@ public class ArchiveResource implements MediaResource { private final Locale locale; private final String encoding = "UTF-8"; - private final BusinessGroup group; + private final ArchiveOptions options; private final CourseNode courseNode; private final OLATResourceable courseOres; public ArchiveResource(CourseNode courseNode, OLATResourceable courseOres, - BusinessGroup group, Locale locale) { - this.group = group; + ArchiveOptions options, Locale locale) { + this.options = options; this.locale = locale; this.courseNode = courseNode; this.courseOres = courseOres; @@ -102,7 +102,7 @@ public class ArchiveResource implements MediaResource { zout = new ZipOutputStream(hres.getOutputStream()); zout.setLevel(9); ICourse course = CourseFactory.loadCourse(courseOres); - courseNode.archiveNodeData(locale, course, group, zout, encoding); + courseNode.archiveNodeData(locale, course, options, zout, encoding); } catch (Exception e) { log.error("", e); } finally { diff --git a/src/main/java/org/olat/course/archiver/GenericArchiveController.java b/src/main/java/org/olat/course/archiver/GenericArchiveController.java index 38993f05c67..aa1f5b69627 100644 --- a/src/main/java/org/olat/course/archiver/GenericArchiveController.java +++ b/src/main/java/org/olat/course/archiver/GenericArchiveController.java @@ -51,6 +51,7 @@ import org.olat.course.assessment.IndentedNodeRenderer; import org.olat.course.assessment.NodeTableDataModel; import org.olat.course.assessment.NodeTableRow; import org.olat.course.groupsandrights.CourseGroupManager; +import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.TACourseNode; import org.olat.group.BusinessGroup; @@ -233,9 +234,10 @@ public class GenericArchiveController extends BasicController { } private void archiveNode(UserRequest ureq, CourseNode node, BusinessGroup group) { - ArchiveResource aResource = new ArchiveResource(node, ores, group, getLocale()); + ArchiveOptions options = new ArchiveOptions(); + options.setGroup(group); + ArchiveResource aResource = new ArchiveResource(node, ores, options, getLocale()); ureq.getDispatchResult().setResultingMediaResource(aResource); - showInfo("archive." + nodeType.getType() + ".successfully"); } /** diff --git a/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java b/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java index a42d017a550..c835deacaed 100644 --- a/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java +++ b/src/main/java/org/olat/course/archiver/ScoreAccountingHelper.java @@ -52,6 +52,7 @@ import org.olat.course.assessment.AssessmentHelper; import org.olat.course.assessment.AssessmentManager; import org.olat.course.assessment.manager.UserCourseInformationsManager; import org.olat.course.groupsandrights.CourseGroupManager; +import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.AssessableCourseNode; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.STCourseNode; @@ -398,9 +399,19 @@ public class ScoreAccountingHelper { return userList; } - public static List<Identity> loadUsers(BusinessGroup group) { + public static List<Identity> loadUsers(CourseEnvironment courseEnv, ArchiveOptions options) { BaseSecurity securityManager = BaseSecurityManager.getInstance(); - return securityManager.getIdentitiesOfSecurityGroup(group.getPartipiciantGroup()); + List<Identity> users; + if(options == null) { + users = loadUsers(courseEnv); + } else if(options.getGroup() != null) { + users = securityManager.getIdentitiesOfSecurityGroup(options.getGroup().getPartipiciantGroup()); + } else if(options.getIdentities() != null) { + users = options.getIdentities(); + } else { + users = loadUsers(courseEnv); + } + return users; } /** diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ar.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ar.properties index 43ce12308a4..87760ea5e85 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ar.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ar.properties @@ -1,17 +1,4 @@ #Fri Aug 20 17:52:01 CEST 2010 -archive.dialog.notsuccessfully=\u0645\u0644\u0641 \u0627\u0644\u062D\u0648\u0627\u0631 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647 -archive.dialog.successfully=\u0645\u0644\u0641 \u0627\u0644\u062D\u0648\u0627\u0631 \u062A\u0645 \u062D\u0641\u0638\u0647 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. -archive.dropbox.notasks=\u0645\u0631\u0628\u0639 \u0627\u0644\u0627\u0641\u0644\u0627\u062A \u0644\u0627 \u064A\u0632\u0627\u0644 \u0641\u0627\u0631\u063A\u0627\u064B. -archive.dropbox.notsuccessfully=\u0645\u0631\u0628\u0639 \u0627\u0644\u0625\u0641\u0644\u0627\u062A \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647 -archive.dropbox.successfully=\u0645\u0631\u0628\u0639 \u0627\u0644\u0625\u0641\u0644\u0627\u062A \u062A\u0645 \u062D\u0641\u0638\u0647 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. -archive.fo.notsuccessfully=\u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u062A\u062F\u0649 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647 -archive.fo.successfully=\u0647\u0630\u0627 \u0627\u0644\u0645\u0646\u062A\u062F\u0649 \u062A\u0645 \u062D\u0641\u0638\u0647 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. -archive.projectbroker.notsuccessfully=\u0647\u0630\u0627 \u0627\u0644\u0645\u0648\u0636\u0648\u0639 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647 -archive.projectbroker.successfully=\u0647\u0630\u0627 \u0627\u0644\u0645\u0634\u0631\u0648\u0639 \u062A\u0645 \u062D\u0641\u0638\u0647 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. -archive.ta.notsuccessfully=\u0647\u0630\u0647 \u0627\u0644\u0645\u0647\u0627\u0645/\u0627\u0644\u062D\u0644\u0648\u0644 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647\u0627 -archive.ta.successfully=\u0645\u0647\u0627\u0645\u0643/\u062D\u0644\u0648\u0644\u0643 \u062A\u0645 \u062D\u0641\u0638\u0647\u0627 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. -archive.wiki.notsuccessfully=\u0647\u0630\u0627 \u0627\u0644\u0648\u064A\u0643\u0649 \u0644\u0627 \u064A\u0645\u0643\u0646 \u062D\u0641\u0638\u0647 -archive.wiki.successfully=\u0647\u0630\u0627 \u0627\u0644\u0648\u064A\u0643\u0649 \u062A\u0645 \u062D\u0641\u0638\u0647 \u0641\u0649 \u0645\u062C\u0644\u062F\u0643 \u0627\u0644\u0634\u062E\u0635\u0649. chelp.arch-logf.title=\u062A\u0642\u064A\u064A\u0645 \u0645\u0644\u0641\u0627\u062A \u0627\u0644\u062F\u062E\u0648\u0644 chelp.ass=\u0627\u0644\u062A\u0642\u064A\u064A\u0645 chelp.cont=\u0633\u064A\u0627\u0642 \u0627\u0644\u0645\u062C\u0645\u0648\u0639\u0629 diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_bg.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_bg.properties index d6c55d3310e..2a4f38dd936 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_bg.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_bg.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:31 CEST 2010 -archive.dialog.successfully=\u0422\u043E\u0437\u0438 \u0444\u0430\u0439\u043B\u043E\u0432 \u0434\u0438\u0430\u043B\u043E\u0433 \u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D \u0432\u044A\u0432 \u0432\u0430\u0448\u0430\u0442\u0430 \u043B\u0438\u0447\u043D\u0430 \u043F\u0430\u043F\u043A\u0430. -archive.dropbox.notasks=\u0422\u0430\u0437\u0438 \u043A\u0443\u0442\u0438\u044F \u0437\u0430 \u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u0435 \u0432\u0441\u0435 \u043E\u0449\u0435 \u043F\u0440\u0430\u0437\u043D\u0430. -archive.dropbox.successfully=\u0422\u0430\u0437\u0438 \u043A\u0443\u0442\u0438\u044F \u0437\u0430 \u043E\u0441\u0442\u0430\u0432\u044F\u043D\u0435 \u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u0430 \u0432\u044A\u0432 \u0432\u0430\u0448\u0430\u0442\u0430 \u043B\u0438\u0447\u043D\u0430 \u043F\u0430\u043F\u043A\u0430. -archive.fo.successfully=\u0422\u043E\u0437\u0438 \u0444\u043E\u0440\u0443\u043C \u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D \u0432\u044A\u0432 \u0432\u0430\u0448\u0430\u0442\u0430 \u043B\u0438\u0447\u043D\u0430 \u043F\u0430\u043F\u043A\u0430. -archive.ta.successfully=\u0412\u0430\u0448\u0438\u0442\u0435 \u0437\u0430\u0434\u0430\u0447\u0438/\u0440\u0435\u0448\u0435\u043D\u0438\u044F \u0441\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u0438 \u0432\u044A\u0432 \u0432\u0430\u0448\u0430\u0442\u0430 \u043B\u0438\u0447\u043D\u0430 \u043F\u0430\u043F\u043A\u0430. -archive.wiki.successfully=\u0422\u043E\u0432\u0430 \u0423\u0438\u043A\u0438 \u0435 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u0430\u043D\u043E \u0432\u044A\u0432 \u0432\u0430\u0448\u0430\u0442\u0430 \u043B\u0438\u0447\u043D\u0430 \u043F\u0430\u043F\u043A\u0430. chelp.arch-logf.title=\u041E\u0446\u0435\u043D\u044F\u0432\u0430\u043D\u0435 \u043D\u0430 \u0444\u0430\u0439\u043B-\u0434\u043D\u0435\u0432\u043D\u0438\u0446\u0438 chelp.ass=\u041E\u0446\u0435\u043D\u043A\u0430 chelp.cont=\u0413\u0440\u0443\u043F\u043E\u0432 \u043A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_cs.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_cs.properties index 30c3e8901b7..15c1261f425 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_cs.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_cs.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:32 CEST 2010 -archive.dialog.successfully=Tento dialog souboru byl archivov\u00E1n ve va\u0161\u00ED osobn\u00ED slo\u017Ece. -archive.dropbox.notasks=Po\u0161tovn\u00ED schr\u00E1nka je st\u00E1le pr\u00E1zdn\u00E1. -archive.dropbox.successfully=Po\u0161tovn\u00ED schr\u00E1nka byla zaz\u00E1lohov\u00E1na do Va\u0161\u00ED osobn\u00ED slo\u017Eky. -archive.fo.successfully=Toto f\u00F3rum bylo archivov\u00E1no do Va\u0161\u00ED osobn\u00ED slo\u017Eky. -archive.ta.successfully=Tento \u00FAkol/\u0159e\u0161en\u00ED bylo archivov\u00E1no do Va\u0161\u00ED osobn\u00ED slo\u017Eky. -archive.wiki.successfully=Toto Wiki bylo archivov\u00E1no do Va\u0161\u00ED osobn\u00ED slo\u017Eky. chelp.arch-logf.title=Vyhodnocov\u00E1n\u00ED log soubor\u016F chelp.ass=Hodnocen\u00ED chelp.cont=Kontext skupiny diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_da.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_da.properties index 22e24c74827..0706298d28d 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_da.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_da.properties @@ -1,7 +1,4 @@ #Wed Jul 28 13:33:31 CEST 2010 -archive.dialog.successfully=Denne filudveksling er arkiveret i din personlige mappe -archive.dropbox.notasks=Denne drop-boks er stadig tom -archive.dropbox.successfully=Denne drop-boks blev arkiveret i din personlige mappe chelp.ass=Vurdering chelp.cont=Gruppekontekst chelp.course-log.title=Beskrivelse af logfil indholdet diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties index 8203c8d4f70..0fb1d5a606c 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_de.properties @@ -1,17 +1,4 @@ #Mon Mar 02 09:54:04 CET 2009 -archive.dialog.successfully=Die Dateidiskussion wurde in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.dialog.notsuccessfully=Die Dateidiskussion konnte nicht archiviert werden. -archive.dropbox.notasks=Der Abgabeordner ist noch leer. -archive.dropbox.successfully=Der Abgabeordner wurde in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.dropbox.notsuccessfully=Der Abgabeordner konnte nicht archiviert werden. -archive.fo.successfully=Das Forum wurde in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.fo.notsuccessfully=Das Forum konnte nicht archiviert werden. -archive.ta.successfully=Die Aufgaben/L\u00F6sungen wurden in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.ta.notsuccessfully=Die Aufgaben/L\u00F6sungen konnten nicht archiviert werden. -archive.wiki.successfully=Das Wiki wurde in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.wiki.notsuccessfully=Das Wiki konnte nicht archiviert werden. -archive.projectbroker.successfully=Die Themenvergabe wurde in Ihrem pers\u00F6nlichen Ordner archiviert. -archive.projectbroker.notsuccessfully=Die Themenvergabe konnte nicht archiviert werden. chelp.arch-logf.title=Logfiles: Auswertung chelp.ass=Bewertung chelp.cont=Gruppenkontext @@ -110,12 +97,12 @@ menu.scorm=SCORM Resultate menu.scorm.alt=SCORM Resultate menu.projectbroker=Themenvergabe menu.projectbroker.alt=Daten der Bausteine "Themenvergabe" archivieren -nodechoose.intro.dialog=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Dateidiskussion zu archivieren. Die archivierte Dateidiskussion finden Sie in Ihrem pers\u00F6nlichen Ordner unter private/archive/[Kursname]/Dateidiskussion_[forum_id] -nodechoose.intro.fo=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Forum zu archivieren. Das archivierte Forum finden Sie in Ihrem pers\u00F6nlichen Ordner unter private/archive/[Kursname]/forum_[forum_id] -nodechoose.intro.ta=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Aufgaben/L\u00F6sungen zu archivieren. Die archivierten Aufgaben/L\u00F6sungen finden Sie in Ihrem pers\u00F6nlichem Ordner unter private/archive/[Kursname]/task_[Bausteinname] als ZIP-Datei. -nodechoose.intro.wiki=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Wikis zu archivieren. Die archivierten Wikis finden Sie in Ihrem pers\u00F6nlichem Ordner unter private/archive/[Kursname]/Bausteinname_[Datum] als ZIP-Datei. -nodechoose.intro.projectbroker=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Themenvergabe zu archivieren. Die archivierte Themenvergabe finden Sie in Ihrem pers\u00F6nlichen Ordner unter private/archive/[Kursname]/projectbroker_[id] -nodechoose.intro.scorm=W\u00E4hlen Sie im folgenden Dialog den SCORM Baustein aus, der ausgewertet werden soll. Die archivierten Resultate finden Sie in Ihrem pers\u00F6nlichen Ordner unter private/archive/[Kursname]/[Dateiname]. +nodechoose.intro.dialog=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Dateidiskussion zu archivieren. +nodechoose.intro.fo=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Forum zu archivieren. +nodechoose.intro.ta=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Aufgaben/L\u00F6sungen zu archivieren. +nodechoose.intro.wiki=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Wikis zu archivieren. +nodechoose.intro.projectbroker=W\u00E4hlen Sie einen Kursbaustein aus, um dessen Themenvergabe zu archivieren. +nodechoose.intro.scorm=W\u00E4hlen Sie im folgenden Dialog den SCORM Baustein aus, der ausgewertet werden soll overview.nonodes.dialog=Dieser Kurs enth\u00E4lt keine Dateidiskussionen. overview.nonodes.fo=Dieser Kurs enth\u00E4lt keine Foren overview.nonodes.ta=Dieser Kurs enth\u00E4lt keine Aufgabenkursbausteine diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_el.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_el.properties index dd7c84f1034..a6581a6d072 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_el.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_el.properties @@ -1,17 +1,4 @@ #Wed Sep 15 09:59:00 CEST 2010 -archive.dialog.notsuccessfully=\u039F \u03B4\u03B9\u03AC\u03BB\u03BF\u03B3\u03BF\u03C2 \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5 \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5. -archive.dialog.successfully=\u039F \u03B4\u03B9\u03AC\u03BB\u03BF\u03B3\u03BF\u03C2 \u03B1\u03C1\u03C7\u03B5\u03AF\u03BF\u03C5 \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5 \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF. -archive.dropbox.notasks=\u0397 \u03B8\u03C5\u03C1\u03AF\u03B4\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03BF\u03C3\u03B7\u03C2 \u03B5\u03AF\u03BD\u03B1\u03B9 \u03AC\u03B4\u03B5\u03B9\u03B1. -archive.dropbox.notsuccessfully=H \u03B8\u03C5\u03C1\u03AF\u03B4\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03BF\u03C3\u03B7\u03C2 \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5. -archive.dropbox.successfully=\u0397 \u03B8\u03C5\u03C1\u03AF\u03B4\u03B1 \u03C0\u03B1\u03C1\u03AC\u03B4\u03BF\u03C3\u03B7\u03C2 \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5 \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF. -archive.fo.notsuccessfully=\u03A4\u03BF forum \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5. -archive.fo.successfully=\u03A4\u03BF forum \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5 \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF. -archive.projectbroker.notsuccessfully=\u0397 \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03B8\u03AD\u03BC\u03B1\u03C4\u03BF\u03C2 \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5. -archive.projectbroker.successfully=\u0391\u03C5\u03C4\u03AE \u03B7 \u03B1\u03BD\u03AC\u03B8\u03B5\u03C3\u03B7 \u03B8\u03AD\u03BC\u03B1\u03C4\u03BF\u03C2 \u03AD\u03C7\u03B5\u03B9 \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03B7\u03B8\u03B5\u03AF \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C6\u03AC\u03BA\u03B5\u03BB\u03BB\u03CC \u03C3\u03B1\u03C2. -archive.ta.notsuccessfully=\u039F\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2/\u03BB\u03CD\u03C3\u03B5\u03B9\u03C2 \u03B1\u03C5\u03C4\u03AD\u03C2 \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B1\u03BD. -archive.ta.successfully=\u039F\u03B9 \u03B5\u03C1\u03B3\u03B1\u03C3\u03AF\u03B5\u03C2 /\u03BB\u03CD\u03C3\u03B5\u03B9\u03C2 \u03C3\u03B1\u03C2 \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B1\u03BD \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF. -archive.wiki.notsuccessfully=\u03A4\u03BF Wiki \u03B1\u03C5\u03C4\u03CC \u03B4\u03B5\u03BD \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5. -archive.wiki.successfully=\u03A4\u03BF Wiki \u03B1\u03C1\u03C7\u03B5\u03B9\u03BF\u03B8\u03B5\u03C4\u03AE\u03B8\u03B7\u03BA\u03B5 \u03C3\u03C4\u03BF\u03BD \u03C0\u03C1\u03BF\u03C3\u03C9\u03C0\u03B9\u03BA\u03CC \u03C3\u03B1\u03C2 \u03C6\u03AC\u03BA\u03B5\u03BB\u03BF. chelp.arch-logf.title=\u0391\u03BE\u03B9\u03BF\u03BB\u03CC\u03B3\u03B7\u03C3\u03B7 \u03C6\u03B1\u03BA\u03AD\u03BB\u03C9\u03BD \u03B1\u03C1\u03C7\u03B5\u03AF\u03C9\u03BD chelp.ass=\u0391\u03BE\u03B9\u03BF\u03BB\u03CC\u03B3\u03B7\u03C3\u03B7 chelp.cont=\u03A0\u03B5\u03C1\u03B9\u03B2\u03AC\u03BB\u03BB\u03BF\u03BD \u03BF\u03BC\u03AC\u03B4\u03B1\u03C2 diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties index b83b879d03b..b6bf43dd2e1 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_en.properties @@ -1,18 +1,4 @@ - #Mon May 16 17:10:05 CEST 2011 -archive.dialog.notsuccessfully=This file dialog could not be archived. -archive.dialog.successfully=This file dialog has been archived in your personal folder. -archive.dropbox.notasks=This drop box is still empty. -archive.dropbox.notsuccessfully=This drop box could not be archived. -archive.dropbox.successfully=This drop box was archived in your personal folder. -archive.fo.notsuccessfully=This forum could not be archived. -archive.fo.successfully=This forum has been archived in your personal folder. -archive.projectbroker.notsuccessfully=This topic assignment could not be archived. -archive.projectbroker.successfully=This topic assignment has been archived in your personal folder. -archive.ta.notsuccessfully=These tasks/solutions could not be archived. -archive.ta.successfully=Your tasks/solutions have been archived in your personal folder. -archive.wiki.notsuccessfully=This Wiki could not be archived. -archive.wiki.successfully=This Wiki has been archived in your personal folder. chelp.arch-logf.title=Log files\: evaluation chelp.ass=Assessment chelp.cont=Group context @@ -111,12 +97,12 @@ menu.wikis=Wikis menu.wikis.alt=Archive Wikis menu.scorm=SCORM results menu.scorm.alt=SCORM results -nodechoose.intro.dialog=Select a course element to archive its file dialog. This archived dialog can be found in your personal folder, section private/archive/[course name]/file dialog_[forum_id]. -nodechoose.intro.fo=Select a course element to archive its forum. This archived forum can be found in your personal folder, section private/archive/[course name]/forum_[forum_id]. -nodechoose.intro.projectbroker=Please select a course element to archive its topic assignment. Archived topic assignment can be found in your personal folder, section private/archive/[course's name]/topic assignment_[id] -nodechoose.intro.ta=Select a course element in order to archive its tasks/solutions. These archived tasks/solutions are saved in your personal folder in the section private/archive/[course name]/task_[name of course element] as zip file. -nodechoose.intro.wiki=Select a course element to archive its Wiki. This archived Wiki can be found in your personal folder, section private/archive/[course name]/wiki_[date] as zip file. -nodechoose.intro.scorm=In the following dialog please select the SCORM element to be assessed. Archived results can be found in your personal folder, section private/archive/[course name]/[file name]. +nodechoose.intro.dialog=Select a course element to archive its file dialog. +nodechoose.intro.fo=Select a course element to archive its forum. +nodechoose.intro.projectbroker=Please select a course element to archive its topic assignment. +nodechoose.intro.ta=Select a course element in order to archive its tasks/solutions. +nodechoose.intro.wiki=Select a course element to archive its Wiki. +nodechoose.intro.scorm=In the following dialog please select the SCORM element to be assessed. overview.nonodes.dialog=This course does not contain any file dialogs. overview.nonodes.fo=This course does not contain any forums. overview.nonodes.projectbroker=This course does not contain any topic assignments. diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_es.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_es.properties index 485bb3f5ee9..cc76833269f 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_es.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_es.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:33 CEST 2010 -archive.dialog.successfully=El di\u00E1logo de archivo ha sido archivado en tu carpeta personal. -archive.dropbox.notasks=La carpeta de entrega est\u00E1 vac\u00EDa todav\u00EDa. -archive.dropbox.successfully=La carpeta de entrega se ha archivado en tu carpeta personal. -archive.fo.successfully=El foro ha sido archivado en tu carpeta personal. -archive.ta.successfully=Las tareas/soluciones han sido archivado en tu carpeta personal. -archive.wiki.successfully=El Wiki ha sido archivado en tu carpeta personal. chelp.arch-logf.title=Evaluaci\u00F3n de archivos de log chelp.ass=Evaluaci\u00F3n chelp.cont=Contexto de grupo diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fa.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fa.properties index 21ad539e157..3ee38eba282 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fa.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fa.properties @@ -1,7 +1,4 @@ #Mon Mar 02 09:54:12 CET 2009 -archive.dialog.successfully=\u0627\u06CC\u0646 \u0641\u0627\u06CC\u0644 \u0645\u062D\u0627\u0648\u0631\u0647 \u0627\u06CC \u062F\u0631 \u067E\u0648\u0634\u0647 \u062E\u0635\u0648\u0635\u06CC \u0634\u0645\u0627 \u0628\u0627\u06CC\u06AF\u0627\u0646\u06CC \u0634\u062F -archive.dropbox.notasks=This drop box is still empty. -archive.dropbox.successfully=This drop box was archived in your personal folder. cmd.start=\u0634\u0631\u0648\u0639 column.field.missing=- column.field.no=\u062E\u06CC\u0631 diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fr.properties index e846f364e3d..39fbbc033df 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fr.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_fr.properties @@ -1,17 +1,4 @@ #Sun Oct 27 16:55:30 CET 2013 -archive.dialog.notsuccessfully=L'archivage de la discussion de fichier n'a pas \u00E9t\u00E9 possible. -archive.dialog.successfully=Le fichier discut\u00E9 a \u00E9t\u00E9 archiv\u00E9 dans votre dossier personnel. -archive.dropbox.notasks=Le dossier de remise est encore vide. -archive.dropbox.notsuccessfully=L'archivage du dossier de remise n'a pas \u00E9t\u00E9 possible. -archive.dropbox.successfully=Le dossier de remise a \u00E9t\u00E9 archiv\u00E9 dans votre dossier personnel. -archive.fo.notsuccessfully=L'archivage du forum n'a pas \u00E9t\u00E9 possible. -archive.fo.successfully=Le forum a \u00E9t\u00E9 archiv\u00E9 dans votre dossier personnel. -archive.projectbroker.notsuccessfully=L'archivage de l'affectation des sujets n'a pas \u00E9t\u00E9 possible. -archive.projectbroker.successfully=L'affectation des sujets a \u00E9t\u00E9 archiv\u00E9e dans votre dossier personnel. -archive.ta.notsuccessfully=L'archivage des devoirs/solutions n'a pas \u00E9t\u00E9 possible. -archive.ta.successfully=Les devoirs/solutions ont \u00E9t\u00E9 archiv\u00E9es dans votre dossier personnel. -archive.wiki.notsuccessfully=L'archivage du wiki n'a pas \u00E9t\u00E9 possible. -archive.wiki.successfully=Le wiki a \u00E9t\u00E9 archiv\u00E9 dans votre dossier personnel. chelp.arch-logf.title=Analyse des fichiers log chelp.ass=Evaluation chelp.cont=Contexte de groupe @@ -110,12 +97,12 @@ menu.wikis=Wikis menu.wikis.alt=Archiver Wikis menu.scorm=R\u00E9sultats SCORM menu.scorm.alt=R\u00E9sultats SCORM -nodechoose.intro.dialog=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses discussions de fichiers. Les fichiers discut\u00E9s archiv\u00E9s se trouvent sous format zip dans votre dossier personnel sous private/archive/[nom_du_cours]/Dateidiskussion_[forum_id] -nodechoose.intro.fo=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver son forum. zu archivieren. Les forums archiv\u00E9s se trouvent sous format zip dans votre dossier personnel sous private/archive/[nom_du_cours]/forum_[forum_id] -nodechoose.intro.projectbroker=S\u00E9lectionner un \u00E9l\u00E9ment de cours pour archiver son affectation des sujets. L'affectation des sujets archiv\u00E9e peut \u00EAtre trouv\u00E9e dans votre dossier personnel sous private/archive/[Kursname]/projectbroker_[id] -nodechoose.intro.ta=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses devoirs/solutions. Vous trouvez les devoirs/solutions achiv\u00E9es dans votre dossier personnel comme fichier zip sous private/archive/[nom_du_cours]/task_[nom de l'\u00E9l\u00E9ment]. -nodechoose.intro.wiki=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses Wikis. Les Wikis archiv\u00E9s se trouvent sous format zip dans votre dossier personnel sous private/archive/[nom_du_cours]/Bausteinname_[date]. -nodechoose.intro.scorm=Choisir dans le dialogue suivant l'\u00E9l\u00E9ment SCORM qui doit \u00EAtre \u00E9valu\u00E9. Les r\u00E9sultats archiv\u00E9s sont d\u00E9pos\u00E9s dans votre dossier personnel sous private/archive/[nom du cours]/[nom du fichier]. +nodechoose.intro.dialog=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses discussions de fichiers. +nodechoose.intro.fo=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver son forum. +nodechoose.intro.projectbroker=S\u00E9lectionner un \u00E9l\u00E9ment de cours pour archiver son affectation des sujets. +nodechoose.intro.ta=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses devoirs/solutions. +nodechoose.intro.wiki=S\u00E9lectionnez un \u00E9l\u00E9ment de cours pour archiver ses Wikis +nodechoose.intro.scorm=Choisir dans le dialogue suivant l'\u00E9l\u00E9ment SCORM qui doit \u00EAtre \u00E9valu\u00E9. overview.nonodes.dialog=Dieser Kurs enth\u00E4lt keine Dateidiskussionen. overview.nonodes.fo=Dieser Kurs enth\u00E4lt keine Foren overview.nonodes.projectbroker=Ce cours ne contient pas d'affectation des sujets. diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_it.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_it.properties index b8f5fee228e..45ec3ffd062 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_it.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_it.properties @@ -1,17 +1,4 @@ #Mon Jan 10 13:13:08 CET 2011 -archive.dialog.notsuccessfully=Non \u00E8 stato possibile archiviare la discussione documentata. -archive.dialog.successfully=La discussione documentata \u00E8 stata archiviata nella Sua cartella personale. -archive.dropbox.notasks=La cartella di consegna \u00E8 ancora vuota. -archive.dropbox.notsuccessfully=Non \u00E8 stato possibile archiviare la cartella di consegna. -archive.dropbox.successfully=La cartella di consegna \u00E8 stata archiviata nella Sua cartella personale. -archive.fo.notsuccessfully=Non \u00E8 stato possibile archiviare il forum. -archive.fo.successfully=Il forum \u00E8 stato archiviato nella Sua cartella personale. -archive.projectbroker.notsuccessfully=Non \u00E8 stato possibile archiviare l'assegnazione dei temi. -archive.projectbroker.successfully=L'assegnazione dei temi \u00E8 stata archiviata della Sua cartella personale. -archive.ta.notsuccessfully=Non \u00E8 stato possibile archiviare i compiti/le soluzioni. -archive.ta.successfully=I compiti/Le soluzioni sono state archiviate nella Sua cartella personale. -archive.wiki.notsuccessfully=Non \u00E8 stato possibile archiviare il wiki. -archive.wiki.successfully=Il wiki \u00E8 stato archiviato nella Sua cartella personale. chelp.arch-logf.title=Analisi dei logfile chelp.ass=Valutazione chelp.cont=Contesto di gruppo diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_jp.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_jp.properties index 555d5bf2592..d43cbb18863 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_jp.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_jp.properties @@ -1,11 +1,4 @@ #Wed Jul 28 13:33:30 CEST 2010 -archive.dialog.successfully=\u3053\u306E\u30D5\u30A1\u30A4\u30EB\u30C0\u30A4\u30A2\u30ED\u30B0\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 -archive.dropbox.notasks=\u307E\u3060\u3001\u3053\u306E\u30C9\u30ED\u30C3\u30D7\u30DC\u30C3\u30AF\u30B9\u306F\u7A7A\u3067\u3059\u3002 -archive.dropbox.successfully=\u3053\u306E\u30C9\u30ED\u30C3\u30D7\u30DC\u30C3\u30AF\u30B9\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 -archive.fo.successfully=\u3053\u306E\u30D5\u30A9\u30FC\u30E9\u30E0\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 -archive.projectbroker.successfully=\u3053\u306E\u30C8\u30D4\u30C3\u30AF\u8AB2\u984C\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u5185\u3067\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 -archive.ta.successfully=\u3042\u306A\u305F\u306E\u30BF\u30B9\u30AF/\u30BD\u30EA\u30E5\u30FC\u30B7\u30E7\u30F3\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 -archive.wiki.successfully=\u3053\u306EWiki\u306F\u3001\u3042\u306A\u305F\u306E\u30D1\u30FC\u30BD\u30CA\u30EB\u30D5\u30A9\u30EB\u30C0\u306B\u30A2\u30FC\u30AB\u30A4\u30D6\u3055\u308C\u307E\u3057\u305F\u3002 chelp.arch-logf.title=\u30ED\u30B0\u30D5\u30A1\u30A4\u30EB\u306E\u8A55\u4FA1 chelp.ass=\u8A55\u4FA1 chelp.cont=\u30B0\u30EB\u30FC\u30D7\u30B3\u30F3\u30C6\u30AF\u30B9\u30C8 diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_lt.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_lt.properties index f486fbf5202..768611c5f29 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_lt.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_lt.properties @@ -1,7 +1,4 @@ #Wed Jul 28 13:33:30 CEST 2010 -archive.dialog.successfully=\u0160is dialogo rinkmena buvo suarchyvuota j\u016Bs\u0173 asmeniniame aplanke. -archive.dropbox.notasks=\u0160is i\u0161skleid\u017Eiamasis langelis kol kas yra tu\u0161\u010Dias. -archive.dropbox.successfully=\u0160is i\u0161skleid\u017Eiamasis langeli buvo suarchyvuotas j\u016Bs\u0173 asmeniniame aplanke. chelp.arch-logf.title=\u017Durnalini\u0173 fail\u0173 per\u017Ei\u016Bra chelp.ass=\u012Evertinimas chelp.cont=Grup\u0117s turinys diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_nl_NL.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_nl_NL.properties index ad5a141acfb..bb37587f43f 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_nl_NL.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_nl_NL.properties @@ -1,17 +1,4 @@ #Thu Sep 08 16:42:43 CEST 2011 -archive.dialog.notsuccessfully=Dit bestandsdialoog kon niet gearchiveerd worden. -archive.dialog.successfully=Dit bestandsdialoog werd gearchiveerd in uw persoonlijke map. -archive.dropbox.notasks=De drop box is nog steeds leeg. -archive.dropbox.notsuccessfully=Deze drop box kon niet gearchiveerd worden. -archive.dropbox.successfully=Deze drop box werd gearchiveerd in uw persoonlijke map. -archive.fo.notsuccessfully=Het forum kon niet gearchiveerd worden. -archive.fo.successfully=Het forum is gearchiveerd in uw persoonlijke map. -archive.projectbroker.notsuccessfully=Deze onderwerpstaak kon niet gearchiveerd worden. -archive.projectbroker.successfully=Deze onderwerpstaak werd gearchiveerd in uw persoonlijke map. -archive.ta.notsuccessfully=Deze taken/oplossingen konden niet gearchiveerd worden. -archive.ta.successfully=Uw taken/oplossingen werden gearchiveerd in uw persoonlijke map. -archive.wiki.notsuccessfully=Deze Wiki kon niet gearchiveerd worden. -archive.wiki.successfully=Deze Wiki werd gearchiveerd in uw persoonlijke map. chelp.arch-logf.title=Log files\: evaluatie chelp.ass=Beoordeling chelp.cont=Groepscontext diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pl.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pl.properties index 28c2b5f1cab..be30c91265e 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pl.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pl.properties @@ -1,17 +1,4 @@ #Mon Aug 30 11:18:12 CEST 2010 -archive.dialog.notsuccessfully=To okno pliku nie mo\u017Ce zosta\u0107 zarchiwizowane. -archive.dialog.successfully=Zawarto\u015B\u0107 elementu kursu\: <b>Okno pliku</b> zosta\u0142a zarchiwizowana w Twoim osobistym folderze. -archive.dropbox.notasks=Ten pojemnik na rozwi\u0105zania zada\u0144 jest pusty. -archive.dropbox.notsuccessfully=Ten folder nie mo\u017Ce zosta\u0107 zarchiwizowany. -archive.dropbox.successfully=Zawarto\u015B\u0107 elementu kursu\: <b>Pojemnik na rozwi\u0105zania zada\u0144</b> zosta\u0142a zarchiwizowana w Twoim osobistym folderze. -archive.fo.notsuccessfully=To forum nie mo\u017Ce zosta\u0107 zarchiwizowane. -archive.fo.successfully=Zawarto\u015B\u0107 elementu kursu\: <b>Forum</b> zosta\u0142a zarchiwizowana w Twoim osobistym folderze. -archive.projectbroker.notsuccessfully=Ten temat nie mo\u017Ce zosta\u0107 zarchiwizowany. -archive.projectbroker.successfully=Zadanie zosta\u0142o zarchiwizowane w twoim folderze osobistym. -archive.ta.notsuccessfully=Te zadania/rozwi\u0105zania nie mog\u0105 zosta\u0107 zarchiwizowane. -archive.ta.successfully=Zawarto\u015B\u0107 elementu kursu\: <b>Zadanie/rozwi\u0105zania</b> zosta\u0142a zarchiwizowana w Twoim osobistym folderze. -archive.wiki.notsuccessfully=Ta Wiki nie mo\u017Ce zosta\u0107 zarchiwizowana. -archive.wiki.successfully=Zawarto\u015B\u0107 elementu kursu\: <b>Wiki</b> zosta\u0142a zarchiwizowana w Twoim osobistym folderze. chelp.arch-logf.title=Ocena plik\u00F3w LOG chelp.ass=Ocena chelp.cont=Kontekst grupy diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_BR.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_BR.properties index 5f6cb7ec71e..c5c06d05d1b 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_BR.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_BR.properties @@ -1,17 +1,4 @@ #Fri Sep 06 00:04:20 CEST 2013 -archive.dialog.notsuccessfully=Esta arquivo de di\u00E1logo n\u00E3o pode ser arquivado. -archive.dialog.successfully=Este arquivo de di\u00E1logo foi arquivado em sua pasta pessoal. -archive.dropbox.notasks=Esta caixa de resolu\u00E7\u00E3o de tarefas ainda est\u00E1 vazia. -archive.dropbox.notsuccessfully=Este menu n\u00E3o pode ser arquivado. -archive.dropbox.successfully=Esta caixa de resolu\u00E7\u00E3o de tarefas foi arquivada em sua pasta pessoal. -archive.fo.notsuccessfully=Este f\u00F3rum n\u00E3o pode ser arquivado. -archive.fo.successfully=Este f\u00F3rum foi arquivado na sua pasta pessoal. -archive.projectbroker.notsuccessfully=Este t\u00F3pico n\u00E3o poder ser arquivado. -archive.projectbroker.successfully=Esta atribui\u00E7\u00E3o de t\u00F3pico foi arquivado em sua pasta pessoal. -archive.ta.notsuccessfully=Estas tarefas/solu\u00E7\u00F5es n\u00E3o puderam ser arquivados. -archive.ta.successfully=Suas resolu\u00E7\u00F5es de tarefas foram arquivadas na sua pasta pessoal. -archive.wiki.notsuccessfully=Este Wiki n\u00E3o pode ser arquivado. -archive.wiki.successfully=Este Wiki foi arquivado na sua pasta pessoal. chelp.arch-logf.title=Avaliando arquivos de hist\u00F3rico chelp.ass=Avalia\u00E7\u00E3o chelp.cont=Contexto do grupo diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_PT.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_PT.properties index 0a7e82b0490..8254bfb32a3 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_PT.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_pt_PT.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:30 CEST 2010 -archive.dialog.successfully=Este arquivo de di\u00E1logo foi arquivado em sua pasta pessoal. -archive.dropbox.notasks=Esta caixa de resolu\u00E7\u00E3o de tarefas ainda est\u00E1 vazia. -archive.dropbox.successfully=Esta caixa de resolu\u00E7\u00E3o de tarefas foi arquivada em sua pasta pessoal. -archive.fo.successfully=Este f\u00F3rum foi arquivado na sua pasta pessoal. -archive.ta.successfully=Suas resolu\u00E7\u00F5es de tarefas foram arquivadas na sua pasta pessoal. -archive.wiki.successfully=Este Wiki foi arquivado na sua pasta pessoal. chelp.arch-logf.title=Avaliando arquivos de hist\u00F3rico chelp.ass=Avalia\u00E7\u00E3o chelp.cont=Contexto do grupo diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ru.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ru.properties index 6ead22512e5..0f15233019f 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ru.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_ru.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:33 CEST 2010 -archive.dialog.successfully=\u041E\u0431\u0441\u0443\u0436\u0434\u0435\u043D\u0438\u0435 \u0434\u043E\u043A\u0443\u043C\u0435\u043D\u0442\u0430 \u0431\u044B\u043B\u043E \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u043E \u0432 \u0412\u0430\u0448\u0435\u0439 \u043B\u0438\u0447\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0435. -archive.dropbox.notasks=\u041F\u0430\u043F\u043A\u0430 \u0441\u0434\u0430\u0447\u0438 \u0435\u0449\u0451 \u043F\u0443\u0441\u0442\u0430. -archive.dropbox.successfully=\u041F\u0430\u043F\u043A\u0430 \u0441\u0434\u0430\u0447\u0438 \u0431\u044B\u043B\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0432 \u0412\u0430\u0448\u0435\u0439 \u043B\u0438\u0447\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0435. -archive.fo.successfully=\u0424\u043E\u0440\u0443\u043C \u0431\u044B\u043B \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D \u0432 \u0412\u0430\u0448\u0435\u0439 \u043B\u0438\u0447\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0435. -archive.ta.successfully=\u0417\u0430\u0434\u0430\u043D\u0438\u044F/\u0420\u0435\u0448\u0435\u043D\u0438\u044F \u0431\u044B\u043B\u0438 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u044B \u0432 \u0412\u0430\u0448\u0435\u0439 \u043B\u0438\u0447\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0435. -archive.wiki.successfully=\u0412\u0438\u043A\u0438 \u0431\u044B\u043B\u0430 \u0430\u0440\u0445\u0438\u0432\u0438\u0440\u043E\u0432\u0430\u043D\u0430 \u0432 \u0412\u0430\u0448\u0435\u0439 \u043B\u0438\u0447\u043D\u043E\u0439 \u043F\u0430\u043F\u043A\u0435. chelp.arch-logf.title=\u0410\u043D\u0430\u043B\u0438\u0437 \u043B\u043E\u0433-\u0444\u0430\u0439\u043B\u043E\u0432 chelp.ass=\u041E\u0446\u0435\u043D\u043A\u0430 chelp.cont=\u041A\u043E\u043D\u0442\u0435\u043A\u0441\u0442 \u0433\u0440\u0443\u043F\u043F\u044B diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_sq.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_sq.properties index df4be94f26a..02c3c673091 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_sq.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_sq.properties @@ -1,10 +1,4 @@ #Wed Jul 28 13:33:32 CEST 2010 -archive.dialog.successfully=Ky dialog i skedar\u00EBve \u00EBsht\u00EB arkivuar n\u00EB dosjen tuaj personale. -archive.dropbox.notasks=Kutia e hedhjes \u00EBsht\u00EB ende e zbrazt\u00EB. -archive.dropbox.successfully=Kutia e hedhjes \u00EBsht\u00EB arkivuar n\u00EB shtegun tuaj personal. -archive.fo.successfully=Ky form \u00EBsht\u00EB arkivuar n\u00EB dosjen tuaj personal. -archive.ta.successfully=Detyrat/zgjidhjet tuaja jan\u00EB arkivuar n\u00EB dosjen tuaj personale. -archive.wiki.successfully=Ky Wiki \u00EBsht\u00EB arkivuar n\u00EB dosjen tuaj personale. chelp.arch-logf.title=Vler\u00EBsimi i llog skedar\u00EBve chelp.logf1=N\u00EB OLAT, ka disa llog skedar\u00EB n\u00EB dispozicionin tuaj (var\u00EBsisht nga t\u00EB drejtat tuaja t\u00EB shfryt\u00EBzuesit)\: chelp.logf2=<b>$\:logfilechooserform.logadmin</b>. Ky llog skedar regjistron t\u00EB gjitha aktivitetet p\u00EBr t\u00EB gjith\u00EB autor\u00EBt e kursit(cilat ndryshimet nga ata gjat\u00EB kursit?) diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_CN.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_CN.properties index 916325adcfd..b9fb057f363 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_CN.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_CN.properties @@ -1,17 +1,4 @@ #Mon Aug 30 05:29:58 CEST 2010 -archive.dialog.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u6587\u4EF6\u5BF9\u8BDD\u7684\u5185\u5BB9 -archive.dialog.successfully=\u8BE5\u6587\u4EF6\u8BA8\u8BBA\u4E2D\u7684\u6570\u636E\u5DF2\u5F52\u6863\u5B58\u653E\u5728\u4F60\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D -archive.dropbox.notasks=\u8BE5\u63D0\u4EA4\u7BB1\u4ECD\u7136\u662F\u7A7A\u7684 -archive.dropbox.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u6B64\u4E0B\u62C9\u6846 -archive.dropbox.successfully=\u8BE5\u63D0\u4EA4\u7BB1\u91CC\u7684\u6570\u636E\u5DF2\u5F52\u6863\u5728\u4F60\u7684\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D -archive.fo.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u6B64\u8BBA\u575B\u3002 -archive.fo.successfully=\u8BE5\u8BBA\u575B\u5DF2\u5F52\u6863\u5728\u4F60\u7684\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D -archive.projectbroker.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u6B64\u4E3B\u9898\u4EFB\u52A1\u3002 -archive.projectbroker.successfully=\u6B64\u9879\u76EE\u7684\u7ECF\u7EAA\u4EBA\u5DF2\u88AB\u5C01\u5B58\u5230\u60A8\u7684\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D\u4E86\u3002 -archive.ta.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u8FD9\u4E9B\u4EFB\u52A1\u6216\u89E3\u7B54 -archive.ta.successfully=\u4F60\u7684 tasks/solutions \u5DF2\u5F52\u6863\u5728\u4F60\u7684\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D -archive.wiki.notsuccessfully=\u65E0\u6CD5\u4FDD\u5B58\u6B64Wiki -archive.wiki.successfully=\u8BE5 wiki \u5DF2\u5F52\u6863\u5728\u4F60\u7684\u4E2A\u4EBA\u6587\u4EF6\u5939\u4E2D. chelp.arch-logf.title=\u8BC4\u4F30\u65E5\u5FD7\u6587\u4EF6 chelp.ass=\u8BC4\u4F30 chelp.cont=\u7EC4\u80CC\u666F diff --git a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_TW.properties b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_TW.properties index 980baa6ed6f..604036acae1 100644 --- a/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_TW.properties +++ b/src/main/java/org/olat/course/archiver/_i18n/LocalStrings_zh_TW.properties @@ -1,11 +1,4 @@ #Wed Jul 28 13:33:31 CEST 2010 -archive.dialog.successfully=\u9019\u500B\u6A94\u6848\u5C0D\u8A71\u6846\u5DF2\u7D93\u88AB\u5099\u4EFD\u5230\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u4E86\u3002 -archive.dropbox.notasks=\u9019\u500B drop box \u9084\u662F\u7A7A\u7684\u3002 -archive.dropbox.successfully=\u9019\u500Bdrop box\u5DF2\u7D93\u88AB\u5099\u4EFD\u5230\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u4E86\u3002 -archive.fo.successfully=\u9019\u500B\u8AD6\u58C7\u5DF2\u7D93\u88AB\u5099\u4EFD\u5230\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u4E86\u3002 -archive.projectbroker.successfully=\u8A72\u5C08\u6848\u7D93\u7D00\u4EBA\u5DF2\u7D93\u88AB\u5C01\u88DD\u5728\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u3002 -archive.ta.successfully=\u60A8\u7684\u4EFB\u52D9/\u89E3\u7B54\u5DF2\u7D93\u88AB\u5099\u4EFD\u5230\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u4E86\u3002 -archive.wiki.successfully=\u9019\u500B Wiki \u5DF2\u7D93\u88AB\u5099\u4EFD\u5230\u60A8\u7684\u500B\u4EBA\u8CC7\u6599\u593E\u4E86\u3002 chelp.arch-logf.title=\u8A55\u4F30\u65E5\u8A8C\u6A94\u6848 chelp.ass=\u8A55\u4F30 chelp.cont=\u7FA4\u7D44\u80CC\u666F\u74B0\u5883 diff --git a/src/main/java/org/olat/course/assessment/AssessmentMainController.java b/src/main/java/org/olat/course/assessment/AssessmentMainController.java index 6d668be6d8a..5bf548c52ea 100644 --- a/src/main/java/org/olat/course/assessment/AssessmentMainController.java +++ b/src/main/java/org/olat/course/assessment/AssessmentMainController.java @@ -93,6 +93,7 @@ import org.olat.course.condition.interpreter.ConditionExpression; import org.olat.course.condition.interpreter.OnlyGroupConditionInterpreter; import org.olat.course.groupsandrights.CourseGroupManager; import org.olat.course.nodes.AssessableCourseNode; +import org.olat.course.nodes.AssessmentToolOptions; import org.olat.course.nodes.CourseNode; import org.olat.course.nodes.CourseNodeFactory; import org.olat.course.nodes.ProjectBrokerCourseNode; @@ -811,7 +812,13 @@ public class AssessmentMainController extends MainLayoutBasicController implemen List<String> toolCmpNames = new ArrayList<>(3); if(courseNode != null) { CourseEnvironment courseEnv = course.getCourseEnvironment(); - List<Controller> tools = courseNode.createAssessmentTools(ureq, getWindowControl(), courseEnv, group); + AssessmentToolOptions options = new AssessmentToolOptions(); + if(group == null) { + options.setIdentities(identities); + } else { + options.setGroup(group); + } + List<Controller> tools = courseNode.createAssessmentTools(ureq, getWindowControl(), courseEnv, options); int count = 0; for(Controller tool:tools) { listenTo(tool); diff --git a/src/main/java/org/olat/course/nodes/AbstractAccessableCourseNode.java b/src/main/java/org/olat/course/nodes/AbstractAccessableCourseNode.java index 8bc7d7e71ed..40499e55d97 100644 --- a/src/main/java/org/olat/course/nodes/AbstractAccessableCourseNode.java +++ b/src/main/java/org/olat/course/nodes/AbstractAccessableCourseNode.java @@ -44,7 +44,6 @@ import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import de.bps.course.nodes.CourseNodePasswordManagerImpl; @@ -187,7 +186,7 @@ public abstract class AbstractAccessableCourseNode extends GenericCourseNode { } /** Factory method to launch course element assessment tools. limitToGroup is optional to skip he the group choose step */ - public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, BusinessGroup limitToGroup) { + public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, AssessmentToolOptions options) { return Collections.emptyList(); } diff --git a/src/main/java/org/olat/course/nodes/ArchiveOptions.java b/src/main/java/org/olat/course/nodes/ArchiveOptions.java new file mode 100644 index 00000000000..a380dbdf94b --- /dev/null +++ b/src/main/java/org/olat/course/nodes/ArchiveOptions.java @@ -0,0 +1,53 @@ +/** + * <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; + +import java.util.List; + +import org.olat.core.id.Identity; +import org.olat.group.BusinessGroup; + +/** + * + * Initial date: 20.12.2013<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class ArchiveOptions { + + private BusinessGroup group; + private List<Identity> identities; + + public BusinessGroup getGroup() { + return group; + } + + public void setGroup(BusinessGroup group) { + this.group = group; + } + + public List<Identity> getIdentities() { + return identities; + } + + public void setIdentities(List<Identity> identities) { + this.identities = identities; + } +} diff --git a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java index c2e4b769a66..bbc15353207 100644 --- a/src/main/java/org/olat/course/nodes/AssessableCourseNode.java +++ b/src/main/java/org/olat/course/nodes/AssessableCourseNode.java @@ -35,7 +35,6 @@ import org.olat.core.id.Identity; import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.scoring.ScoreEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; /** @@ -151,7 +150,7 @@ public interface AssessableCourseNode extends CourseNode { /** Factory method to launch course element assessment tools. limitToGroup is optional to skip he the group choose step */ - public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, BusinessGroup limitToGroup); + public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, AssessmentToolOptions options); /** diff --git a/src/main/java/org/olat/course/nodes/AssessmentToolOptions.java b/src/main/java/org/olat/course/nodes/AssessmentToolOptions.java new file mode 100644 index 00000000000..d3d731c47a4 --- /dev/null +++ b/src/main/java/org/olat/course/nodes/AssessmentToolOptions.java @@ -0,0 +1,53 @@ +/** + * <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; + +import java.util.List; + +import org.olat.core.id.Identity; +import org.olat.group.BusinessGroup; + +/** + * + * Initial date: 20.12.2013<br> + * @author srosse, stephane.rosse@frentix.com, http://www.frentix.com + * + */ +public class AssessmentToolOptions { + + private BusinessGroup group; + private List<Identity> identities; + + public BusinessGroup getGroup() { + return group; + } + + public void setGroup(BusinessGroup group) { + this.group = group; + } + + public List<Identity> getIdentities() { + return identities; + } + + public void setIdentities(List<Identity> identities) { + this.identities = identities; + } +} diff --git a/src/main/java/org/olat/course/nodes/CourseNode.java b/src/main/java/org/olat/course/nodes/CourseNode.java index 3009e3b6043..47f6333069a 100644 --- a/src/main/java/org/olat/course/nodes/CourseNode.java +++ b/src/main/java/org/olat/course/nodes/CourseNode.java @@ -48,7 +48,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.TreeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.modules.ModuleConfiguration; import org.olat.repository.RepositoryEntry; @@ -304,7 +303,7 @@ public interface CourseNode extends INode, ShortName { * @param value of charset property of current user * @return true if any data to be archived was found, false otherwise. */ - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream out, String charset); + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream out, String charset); /** * Export all node user data to the given directory. This might be one file or diff --git a/src/main/java/org/olat/course/nodes/DialogCourseNode.java b/src/main/java/org/olat/course/nodes/DialogCourseNode.java index 6c64051c437..2db9ba995e4 100644 --- a/src/main/java/org/olat/course/nodes/DialogCourseNode.java +++ b/src/main/java/org/olat/course/nodes/DialogCourseNode.java @@ -62,7 +62,6 @@ import org.olat.course.nodes.dialog.DialogCourseNodeRunController; import org.olat.course.run.navigation.NodeRunConstructionResult; 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.dialog.DialogElement; import org.olat.modules.dialog.DialogElementsPropertyManager; @@ -246,7 +245,7 @@ public class DialogCourseNode extends AbstractAccessableCourseNode { } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { boolean dataFound = false; List<DialogElement> list = DialogElementsPropertyManager.getInstance() .findDialogElements(course.getCourseEnvironment().getCoursePropertyManager(), this) diff --git a/src/main/java/org/olat/course/nodes/FOCourseNode.java b/src/main/java/org/olat/course/nodes/FOCourseNode.java index ac76d8192d4..b5f8d2f3177 100644 --- a/src/main/java/org/olat/course/nodes/FOCourseNode.java +++ b/src/main/java/org/olat/course/nodes/FOCourseNode.java @@ -68,7 +68,6 @@ import org.olat.course.run.environment.CourseEnvironment; import org.olat.course.run.navigation.NodeRunConstructionResult; 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.fo.Forum; import org.olat.modules.fo.ForumCallback; @@ -365,7 +364,7 @@ public class FOCourseNode extends AbstractAccessableCourseNode { } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { CoursePropertyManager cpm = course.getCourseEnvironment().getCoursePropertyManager(); Property forumKeyProperty = cpm.findCourseNodeProperty(this, null, null, FORUM_KEY); if(forumKeyProperty == null) { diff --git a/src/main/java/org/olat/course/nodes/GenericCourseNode.java b/src/main/java/org/olat/course/nodes/GenericCourseNode.java index c63d77c0cb4..39f1bd91f49 100644 --- a/src/main/java/org/olat/course/nodes/GenericCourseNode.java +++ b/src/main/java/org/olat/course/nodes/GenericCourseNode.java @@ -57,7 +57,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.TreeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.group.model.BGAreaReference; import org.olat.group.model.BusinessGroupReference; import org.olat.modules.ModuleConfiguration; @@ -367,7 +366,7 @@ public abstract class GenericCourseNode extends GenericNode implements CourseNod * org.olat.course.ICourse, java.util.zip.ZipOutputStream, String charset) */ @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { // nothing to do in default implementation return true; } diff --git a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java index 8a3fea8b381..8909d1ea855 100644 --- a/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSELFCourseNode.java @@ -55,7 +55,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.ims.qti.QTIResultManager; import org.olat.ims.qti.QTIResultSet; import org.olat.ims.qti.export.QTIExportFormatter; @@ -212,7 +211,7 @@ public class IQSELFCourseNode extends AbstractAccessableCourseNode implements Se } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { QTIExportManager qem = QTIExportManager.getInstance(); String repositorySoftKey = (String) getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY); RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true); diff --git a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java index 8754323dcb1..6a3466004fc 100644 --- a/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQSURVCourseNode.java @@ -55,7 +55,6 @@ import org.olat.course.repository.ImportReferencesController; import org.olat.course.run.navigation.NodeRunConstructionResult; import org.olat.course.run.userview.NodeEvaluation; import org.olat.course.run.userview.UserCourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.ims.qti.QTIResultManager; import org.olat.ims.qti.export.QTIExportFormatter; import org.olat.ims.qti.export.QTIExportFormatterCSVType3; @@ -209,7 +208,7 @@ public class IQSURVCourseNode extends AbstractAccessableCourseNode implements QT } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { QTIExportManager qem = QTIExportManager.getInstance(); String repositorySoftKey = (String) getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY); RepositoryEntry re = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repositorySoftKey, true); diff --git a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java index f8c0c09fbd8..467262d5f73 100644 --- a/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java +++ b/src/main/java/org/olat/course/nodes/IQTESTCourseNode.java @@ -59,7 +59,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.ims.qti.QTIResultManager; import org.olat.ims.qti.QTIResultSet; import org.olat.ims.qti.export.QTIExportFormatter; @@ -374,7 +373,7 @@ public class IQTESTCourseNode extends AbstractAccessableCourseNode implements As } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { String repositorySoftKey = (String)getModuleConfiguration().get(IQEditController.CONFIG_KEY_REPOSITORY_SOFTKEY); Long courseResourceableId = course.getResourceableId(); diff --git a/src/main/java/org/olat/course/nodes/MSCourseNode.java b/src/main/java/org/olat/course/nodes/MSCourseNode.java index b82ccb58411..9e748dc71e4 100644 --- a/src/main/java/org/olat/course/nodes/MSCourseNode.java +++ b/src/main/java/org/olat/course/nodes/MSCourseNode.java @@ -60,7 +60,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.properties.Property; import org.olat.repository.RepositoryEntry; @@ -435,7 +434,7 @@ public class MSCourseNode extends AbstractAccessableCourseNode implements Assess } @Override - public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, BusinessGroup limitToGroup) { + public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, AssessmentToolOptions options) { List<Controller> tools = new ArrayList<>(1); tools.add(new BulkAssessmentToolController(ureq, wControl, courseEnv, this)); return tools; diff --git a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java index 271ba7dcf76..03f7bdef6b3 100644 --- a/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ProjectBrokerCourseNode.java @@ -92,7 +92,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.properties.Property; import org.olat.repository.RepositoryEntry; @@ -670,7 +669,7 @@ public class ProjectBrokerCourseNode extends GenericCourseNode implements Assess /** Factory method to launch course element assessment tools. limitToGroup is optional to skip he the group choose step */ @Override - public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, BusinessGroup limitToGroup) { + public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, AssessmentToolOptions options) { List<Controller> tools = new ArrayList<>(1); tools.add(new BulkAssessmentToolController(ureq, wControl, courseEnv, this)); return tools; @@ -717,7 +716,7 @@ public class ProjectBrokerCourseNode extends GenericCourseNode implements Assess } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { boolean dataFound = false; String dropboxPath = DropboxController.getDropboxPathRelToFolderRoot(course.getCourseEnvironment(),this); OlatRootFolderImpl dropboxDir = new OlatRootFolderImpl(dropboxPath, null); diff --git a/src/main/java/org/olat/course/nodes/ScormCourseNode.java b/src/main/java/org/olat/course/nodes/ScormCourseNode.java index 20095e7d5fc..761fcc36500 100644 --- a/src/main/java/org/olat/course/nodes/ScormCourseNode.java +++ b/src/main/java/org/olat/course/nodes/ScormCourseNode.java @@ -63,7 +63,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.scorm.ScormMainManager; import org.olat.modules.scorm.ScormPackageConfig; @@ -349,7 +348,7 @@ public class ScormCourseNode extends AbstractAccessableCourseNode implements Ass } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { String fileName = "scorm_" + StringHelper.transformDisplayNameToFileSystemName(getShortName()) + "_" + Formatter.formatDatetimeFilesystemSave(new Date(System.currentTimeMillis())) diff --git a/src/main/java/org/olat/course/nodes/TACourseNode.java b/src/main/java/org/olat/course/nodes/TACourseNode.java index 4180eac948a..36c2039030f 100644 --- a/src/main/java/org/olat/course/nodes/TACourseNode.java +++ b/src/main/java/org/olat/course/nodes/TACourseNode.java @@ -30,8 +30,10 @@ import java.io.IOException; import java.util.ArrayList; import java.util.Collections; import java.util.Date; +import java.util.HashSet; import java.util.List; import java.util.Locale; +import java.util.Set; import java.util.zip.ZipEntry; import java.util.zip.ZipOutputStream; @@ -90,7 +92,6 @@ import org.olat.course.run.navigation.NodeRunConstructionResult; 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.properties.Property; import org.olat.repository.RepositoryEntry; @@ -687,10 +688,10 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN /** Factory method to launch course element assessment tools. limitToGroup is optional to skip he the group choose step */ @Override - public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, BusinessGroup limitToGroup) { + public List<Controller> createAssessmentTools(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, AssessmentToolOptions options) { List<Controller> tools = new ArrayList<Controller>(1); tools.add(new BulkAssessmentToolController(ureq, wControl, courseEnv, this)); - tools.add(new BulkDownloadToolController(ureq, wControl, courseEnv, limitToGroup, this)); + tools.add(new BulkDownloadToolController(ureq, wControl, courseEnv, options, this)); return tools; } @@ -767,7 +768,7 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { boolean dataFound = false; String dropboxPath = DropboxController.getDropboxPathRelToFolderRoot(course.getCourseEnvironment(), this); OlatRootFolderImpl dropboxDir = new OlatRootFolderImpl(dropboxPath, null); @@ -784,9 +785,15 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN if (dropboxDir.exists() || solutionDir.exists() || returnboxDir.exists() || hasTask.booleanValue()){ // prepare writing course results overview table - List<Identity> users = group == null ? ScoreAccountingHelper.loadUsers(course.getCourseEnvironment()) - : ScoreAccountingHelper.loadUsers(group); - + List<Identity> users = ScoreAccountingHelper.loadUsers(course.getCourseEnvironment(), options); + Set<String> dropboxNames = null; + if(options != null && (options.getGroup() != null || options.getIdentities() != null)) { + dropboxNames = new HashSet<String>(); + for(Identity user:users) { + dropboxNames.add(user.getName()); + } + } + String courseTitle = course.getCourseTitle(); String fileName = ExportUtil.createFileNameWithTimeStamp(courseTitle, "xls"); List<AssessableCourseNode> nodes = Collections.<AssessableCourseNode>singletonList(this); @@ -813,7 +820,7 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN //OLAT-6362 archive only dropboxes of users that handed in at least one file -> prevent empty folders in archive List<VFSItem> dropBoxContent = dropboxDir.getItems(); for (VFSItem file:dropBoxContent) { - if(VFSManager.isDirectoryAndNotEmpty(file)){ + if((dropboxNames == null || dropboxNames.contains(file.getName())) && VFSManager.isDirectoryAndNotEmpty(file)){ dataFound = true; ZipUtil.addToZip(file, dirName + "/dropboxes", exportStream); } @@ -841,7 +848,7 @@ public class TACourseNode extends GenericCourseNode implements AssessableCourseN //OLAT-6362 archive only existing returnboxes -> prevent empty folders in archive List<VFSItem> returnBoxContent = returnboxDir.getItems(); for (VFSItem file : returnBoxContent) { - if(VFSManager.isDirectoryAndNotEmpty(file)){ + if((dropboxNames == null || dropboxNames.contains(file.getName())) && VFSManager.isDirectoryAndNotEmpty(file)){ dataFound = true; ZipUtil.addToZip(file, dirName + "/returnboxes", exportStream); } diff --git a/src/main/java/org/olat/course/nodes/WikiCourseNode.java b/src/main/java/org/olat/course/nodes/WikiCourseNode.java index 0fa7c469709..2affe7b77c6 100644 --- a/src/main/java/org/olat/course/nodes/WikiCourseNode.java +++ b/src/main/java/org/olat/course/nodes/WikiCourseNode.java @@ -62,7 +62,6 @@ import org.olat.course.repository.ImportReferencesController; import org.olat.course.run.navigation.NodeRunConstructionResult; 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.wiki.Wiki; import org.olat.modules.wiki.WikiManager; @@ -230,7 +229,7 @@ public class WikiCourseNode extends AbstractAccessableCourseNode { } @Override - public boolean archiveNodeData(Locale locale, ICourse course, BusinessGroup group, ZipOutputStream exportStream, String charset) { + public boolean archiveNodeData(Locale locale, ICourse course, ArchiveOptions options, ZipOutputStream exportStream, String charset) { String repoRef = (String)getModuleConfiguration().get("reporef"); OLATResourceable ores = RepositoryManager.getInstance().lookupRepositoryEntryBySoftkey(repoRef, true).getOlatResource(); diff --git a/src/main/java/org/olat/course/nodes/ta/BulkDownloadToolController.java b/src/main/java/org/olat/course/nodes/ta/BulkDownloadToolController.java index 3e3c2172ba7..0c0bfb77a58 100644 --- a/src/main/java/org/olat/course/nodes/ta/BulkDownloadToolController.java +++ b/src/main/java/org/olat/course/nodes/ta/BulkDownloadToolController.java @@ -28,9 +28,10 @@ import org.olat.core.gui.control.Event; import org.olat.core.gui.control.WindowControl; import org.olat.core.gui.control.controller.BasicController; import org.olat.course.archiver.ArchiveResource; +import org.olat.course.nodes.ArchiveOptions; import org.olat.course.nodes.AssessableCourseNode; +import org.olat.course.nodes.AssessmentToolOptions; import org.olat.course.run.environment.CourseEnvironment; -import org.olat.group.BusinessGroup; import org.olat.resource.OLATResource; /** @@ -42,14 +43,16 @@ public class BulkDownloadToolController extends BasicController { private final Link downloadButton; - private final BusinessGroup group; + private final ArchiveOptions options; private final OLATResource courseOres; private final AssessableCourseNode courseNode; public BulkDownloadToolController(UserRequest ureq, WindowControl wControl, CourseEnvironment courseEnv, - BusinessGroup group, AssessableCourseNode courseNode) { + AssessmentToolOptions asOptions, AssessableCourseNode courseNode) { super(ureq, wControl); - this.group = group; + this.options = new ArchiveOptions(); + this.options.setGroup(asOptions.getGroup()); + this.options.setIdentities(asOptions.getIdentities()); this.courseNode = courseNode; courseOres = courseEnv.getCourseGroupManager().getCourseResource(); @@ -71,7 +74,7 @@ public class BulkDownloadToolController extends BasicController { } private void doDownload(UserRequest ureq) { - ArchiveResource resource = new ArchiveResource(courseNode, courseOres, group, getLocale()); + ArchiveResource resource = new ArchiveResource(courseNode, courseOres, options, getLocale()); ureq.getDispatchResult().setResultingMediaResource(resource); } } diff --git a/src/main/java/org/olat/course/site/CourseSiteDef.java b/src/main/java/org/olat/course/site/CourseSiteDef.java index 3deaf2a79ad..d1d781c049d 100644 --- a/src/main/java/org/olat/course/site/CourseSiteDef.java +++ b/src/main/java/org/olat/course/site/CourseSiteDef.java @@ -94,12 +94,16 @@ public class CourseSiteDef extends AbstractSiteDefinition implements SiteDefinit } LanguageConfiguration langConfig = getLanguageConfiguration(ureq, courseConfig); + if(langConfig == null) { + return null; + } String icon = courseConfig.getNavIconCssClass(); return new CourseSite(this, ureq.getLocale(), langConfig.getRepoSoftKey(), showToolController, siteSecCallback, langConfig.getTitle(), icon); } protected LanguageConfiguration getLanguageConfiguration(UserRequest ureq, CourseSiteConfiguration config) { + if(config == null || config.getConfigurations() == null) return null; String language = ureq.getUserSession().getLocale().getLanguage(); LanguageConfiguration myLangConfig = null; -- GitLab