diff --git a/src/main/java/org/olat/modules/lecture/manager/AutoCloseLecturesJob.java b/src/main/java/org/olat/modules/lecture/manager/AutoCloseLecturesJob.java index 6f1e01273ac63469c04aa0563a44c5b0cfb00b0f..47aaad5a9cb7422f0500ca4c889840a68e4d85b6 100644 --- a/src/main/java/org/olat/modules/lecture/manager/AutoCloseLecturesJob.java +++ b/src/main/java/org/olat/modules/lecture/manager/AutoCloseLecturesJob.java @@ -37,9 +37,11 @@ public class AutoCloseLecturesJob extends JobWithDB { @Override public void executeWithDB(JobExecutionContext arg0) throws JobExecutionException { LectureModule lectureModule = CoreSpringFactory.getImpl(LectureModule.class); - int autoClosePeriode = lectureModule.getRollCallAutoClosePeriod(); - if(autoClosePeriode > 0) { - CoreSpringFactory.getImpl(LectureService.class).autoCloseRollCall(); + if(lectureModule.isEnabled()) { + int autoClosePeriode = lectureModule.getRollCallAutoClosePeriod(); + if(autoClosePeriode > 0) { + CoreSpringFactory.getImpl(LectureService.class).autoCloseRollCall(); + } } } } diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java index 815aca067eec3750112e26bcea86988b9efaeb2c..e628d8fcd345bbc32f5be0cc65a56a772d0f780b 100644 --- a/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java +++ b/src/main/java/org/olat/modules/lecture/manager/LectureBlockDAO.java @@ -263,6 +263,8 @@ public class LectureBlockDAO { if(StringHelper.containsNonWhitespace(searchParams.getSearchString())) { sb.append(" and (entry.externalRef=:searchString or "); PersistenceHelper.appendFuzzyLike(sb, "entry.displayname", "fuzzySearchString", dbInstance.getDbVendor()); + sb.append(" or "); + PersistenceHelper.appendFuzzyLike(sb, "block.title", "fuzzySearchString", dbInstance.getDbVendor()); sb.append(")"); } diff --git a/src/main/java/org/olat/modules/lecture/manager/LectureBlockRollCallDAO.java b/src/main/java/org/olat/modules/lecture/manager/LectureBlockRollCallDAO.java index 4aa1c6079fdd9d8cc9f1d648a24422cba61b49f4..94f7324dc1d3c8eaec098b035eb768067392f92b 100644 --- a/src/main/java/org/olat/modules/lecture/manager/LectureBlockRollCallDAO.java +++ b/src/main/java/org/olat/modules/lecture/manager/LectureBlockRollCallDAO.java @@ -443,6 +443,7 @@ public class LectureBlockRollCallDAO { .append(" or lower(ident.externalId) in (:bulkIdentifiers)") .append(" or lower(user.email) in (:bulkIdentifiers)") .append(" or lower(user.institutionalEmail) in (:bulkIdentifiers)") + .append(" or lower(user.institutionalUserIdentifier) in (:bulkIdentifiers)") .append(")"); } diff --git a/src/main/java/org/olat/modules/lecture/manager/ReminderLecturesJob.java b/src/main/java/org/olat/modules/lecture/manager/ReminderLecturesJob.java index 3c24ff0f0f4981ee9051019f4bf717bf5ba7273b..bd5efe8e3ef41e1a601611746aaca1e0500f71fe 100644 --- a/src/main/java/org/olat/modules/lecture/manager/ReminderLecturesJob.java +++ b/src/main/java/org/olat/modules/lecture/manager/ReminderLecturesJob.java @@ -38,7 +38,7 @@ public class ReminderLecturesJob extends JobWithDB { @Override public void executeWithDB(JobExecutionContext arg0) throws JobExecutionException { LectureModule lectureModule = CoreSpringFactory.getImpl(LectureModule.class); - boolean reminderEnabled = lectureModule.isRollCallReminderEnabled(); + boolean reminderEnabled = lectureModule.isEnabled() && lectureModule.isRollCallReminderEnabled(); int reminderPeriod = lectureModule.getRollCallReminderPeriod(); if(reminderEnabled && reminderPeriod > 0) { CoreSpringFactory.getImpl(LectureService.class).sendReminders(); diff --git a/src/main/java/org/olat/modules/lecture/ui/LecturesBlockPDFExport.java b/src/main/java/org/olat/modules/lecture/ui/LecturesBlockPDFExport.java index 5d42c338a68939d4e0bd0b6033beeacd710a6025..68e09db815f3c8632538e3f00a2688240924bcb0 100644 --- a/src/main/java/org/olat/modules/lecture/ui/LecturesBlockPDFExport.java +++ b/src/main/java/org/olat/modules/lecture/ui/LecturesBlockPDFExport.java @@ -133,41 +133,50 @@ public class LecturesBlockPDFExport extends PdfDocument implements MediaResource public void create(List<Identity> rows) throws IOException, COSVisitorException, TransformerException { - addPage(); - String lectureBlockTitle = lectureBlock.getTitle(); - addMetadata(lectureBlockTitle, resourceTitle, teacher); - - if(StringHelper.containsNonWhitespace(lectureBlockTitle)) { - addParagraph(lectureBlockTitle, 16, true, width); - } - - float cellMargin = 5.0f; - float fontSize = 10.0f; - - String[] content = getRows(rows); - - int numOfRows = content.length; - for(int offset=0; offset<numOfRows; ) { - offset += drawTable(content, offset, fontSize, cellMargin); - closePage(); - if(offset<numOfRows) { - addPage(); - } - } - - addPageNumbers(); - } + addPage(); + String lectureBlockTitle = lectureBlock.getTitle(); + addMetadata(lectureBlockTitle, resourceTitle, teacher); - private String[] getRows(List<Identity> rows) { - int numOfRows = rows.size(); - - String[] content = new String[numOfRows]; - for(int i=0; i<numOfRows; i++) { - Identity row = rows.get(i); - content[i] = getName(row); - } - - return content; + if(StringHelper.containsNonWhitespace(lectureBlockTitle)) { + addParagraph(lectureBlockTitle, 16, true, width); + } + + Formatter formatter = Formatter.getInstance(translator.getLocale()); + String dates = translator.translate("pdf.table.dates", new String[] { + formatter.formatDate(lectureBlock.getStartDate()), + formatter.formatTime(lectureBlock.getStartDate()), + formatter.formatTime(lectureBlock.getEndDate()) + }); + + addParagraph(dates, 12, true, width); + + float cellMargin = 5.0f; + float fontSize = 10.0f; + + String[] content = getRows(rows); + + int numOfRows = content.length; + for(int offset=0; offset<numOfRows; ) { + offset += drawTable(content, offset, fontSize, cellMargin); + closePage(); + if(offset<numOfRows) { + addPage(); + } + } + + addPageNumbers(); + } + + private String[] getRows(List<Identity> rows) { + int numOfRows = rows.size(); + + String[] content = new String[numOfRows]; + for(int i=0; i<numOfRows; i++) { + Identity row = rows.get(i); + content[i] = getName(row); + } + + return content; } private String getName(Identity identity) { diff --git a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewSearchController.java b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewSearchController.java index d23599db094f12ff2044947b89b59ea48af238ad..f9fa40a2e3c36bb964b8fbfac26d0cf320f7a1db 100644 --- a/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewSearchController.java +++ b/src/main/java/org/olat/modules/lecture/ui/TeacherOverviewSearchController.java @@ -55,6 +55,7 @@ public class TeacherOverviewSearchController extends FormBasicController { @Override protected void initForm(FormItemContainer formLayout, Controller listener, UserRequest ureq) { searchEl = uifactory.addTextElement("search.text", "search.form.string", 128, "", formLayout); + searchEl.setHelpText(translate("search.form.string.hint")); searchEl.setVisible(withSearchString); startEl = uifactory.addDateChooser("start", "search.form.start", null, formLayout); endEl = uifactory.addDateChooser("end", "search.form.end", null, formLayout); diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties index 40131a6969f9086dadfd65449866441e3fce477e..1429ce09414cbb2c554e5a29bf64b8cf03fab975 100644 --- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties +++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_de.properties @@ -1,25 +1,27 @@ -#Mon May 15 15:50:19 CEST 2017 +#Tue Jul 04 10:07:57 CEST 2017 active=Aktiv add.lecture=Neuer Lektionenblock erstellen add.reason=Begr\u00FCndung erstellen admin.menu.title=Lektionen admin.menu.title.alt=Lektionen und Absenzmanagement +aggregated.list=Aggregierte Liste all=Alle all.teachers.switch=Alle Dozenten -aggregated.list=Aggregierte Liste -detailled.list=Detaillierte Liste appeal=Rekurs appeal.contact.list=Lehrer appeal.subject=Rekurs Lektionenblock "{0}" appeal.title=Rekurs f\u00FCr\: "{0}" +attendance.list=Anwesenheitsliste authorized.absence=Entschuldigt authorized.absence.reason=Begr\u00FCndung autoclosed=Autoerledigt -bulk=Bulk Email -cancelled=Abgesagt +bulk=Benutzername, $org.olat.user.propertyhandlers\:table.name.email oder $org.olat.user.propertyhandlers\:table.name.institutionalUserIdentifier +bulk.example=test01<br>author02<br>test@openolat.org +bulk.hint=Sie k\u00F6nenn eine Liste von Benutzername oder Email Adresse von Benutzer geben. cancel.lecture.blocks=Lektionen absagen -closed=Erledigt +cancelled=Abgesagt close.lecture.blocks=Lektionen abschliessen +closed=Erledigt config.calculate.attendance.rate=Anwesenheitsquote berechnen config.override=Standard Konfiguration \u00FCberschreiben zulassen config.override.no=Nein @@ -32,23 +34,20 @@ confirm.delete.lectures=Wollen Sie wirklich diese Lektionenblock "{0}" l\u00F6sc confirm.delete.reason=Wollen Sie wirklich diese Begr\u00FCndung "{0}" l\u00F6schen? copy=Kopieren current.lecture=Aktueller Lektionenblock +date.end=$org.olat.repository\:cif.date.end +date.start=$org.olat.repository\:cif.date.start dates=$org.olat.repository\:cif.dates dates.none=$org.olat.repository\:cif.dates.none dates.private=$org.olat.repository\:cif.dates.private dates.public=$org.olat.repository\:cif.dates.public -date.start=$org.olat.repository\:cif.date.start -date.end=$org.olat.repository\:cif.date.end -dates.public=$org.olat.repository\:cif.dates.public -private.dates=$org.olat.repository\:cif.private.dates -public.dates=$org.olat.repository\:cif.public.dates delete.lectures.title=Lektionenblock l\u00F6schen delete.title=Begr\u00FCndung l\u00F6schen +detailled.list=Detaillierte Liste details=Details done=Erledigt edit.participant.rate=Teilnehmerschwellwert bearbeiten edit.reason=Begr\u00FCndung bearbeiten effective.lectures=Effektive Lektionen -error.search.form.notempty=$org.olat.admin.user:error.search.form.notempty empty.lectures.list=Die Tabelle ist leer empty.repository.entry.lectures=Sie m\u00FCssten noch keinen Lektionen in diesem Kurs besuchen empty.table.current.lectures.blocks=Sie haben zur Zeit keinen Lektionenblock. @@ -58,18 +57,19 @@ error.atleastone.lecture=Bitte w\u00E4hlen Sie mindestens ein Lektionenblock. error.integer.between=Der Eingabe muss ein Zahl zwischen {0} und {1} error.integer.positive=Der Eingabe muss ein positives Zahl sein. error.reason.mandatory=Begr\u00FCndung ist erforderlich -export.footer.lectures.hint=x = Lektion abwesend +error.search.form.notempty=$org.olat.admin.user\:error.search.form.notempty +export.footer.lectures.hint=x \= Lektion abwesend +export.header.lectureblocks=Lektionenblock\: {0} vom {1} von {2} bis {3} export.header.lectures=Lectures -export.header.lectureblocks=Lektionenblock: {0} vom {1} von {2} bis {3} -export.header.location=Raum: {0} -export.header.teachers=Dozenten: {0} -filter.showAll=Alle anzeigen +export.header.location=Raum\: {0} +export.header.teachers=Dozenten\: {0} filter.mandatory=Zwingend +filter.showAll=Alle anzeigen first.admission=Erstzulassung form.managedflags.intro=Dieser Lektionblock wurde von einem externen Werkzeug erstellt. Einige Einstellungen und Module k\u00F6nnen daher in OpenOLAT nicht ver\u00E4ndert und benutzt werden. Folgende Elemente sind in OpenOLAT gesperrt\: {0} form.managedflags.intro.short=Dieser Lektionblock wurde von einem externen Werkzeug erstellt. Einige Einstellungen k\u00F6nnen daher in OpenOLAT nicht ver\u00E4ndert werden. -info.no.lectures=Sie folgen zur Zeit kein Lektionen info.lecture.block.optional=Dieser Lektionenblock ist <strong>nicht</strong> obligatorisch. +info.no.lectures=Sie folgen zur Zeit kein Lektionen interceptor.start=Sie haben jetzt einen Lektionenblock f\u00FCr den Kurs "{0}" {1} von {4} bis {5}. lecture.absence.default.authorized=Absenzen per default entschuldigt lecture.admin.course.override.title=Konfiguration - Auf Kursebene \u00FCbersteuerbar @@ -86,8 +86,8 @@ lecture.block.copied=Lektionenblock wurde erfolgreich kopiert. lecture.block.copy={0} (Kopie) lecture.block.effective.end=Effektives Ende lecture.block.effective.reason=Begr\u00FCndung +lecture.block.infos=Lehrer\: {1} von {2} {3} bis {4} lecture.block.status=Status -lecture.block.infos=Lehrer: {1} von {2} {3} bis {4} lecture.calculate.attendance.rate.default.enabled=Berechnung der Anwesenheitsrate lecture.can.override.standard.configuration=Standard Konfiguration \u00FCberschreiben zulassen lecture.compulsory=Zwingend @@ -107,32 +107,32 @@ lecture.reminder.period=Erinnerungsfrist lecture.rollcall.default.enabled=Anwesenheitskontrolle einschalten lecture.start=Beginn lecture.status.enabled=Lektionen Status -lectures.table.current=Aktueller Lektionenblock -lectures.table.closed=Abgeschlossene Lektionenbl\u00F6cke -lectures.table.next=N\u00E4chste Lektionenbl\u00F6cke -lectures.table.pending=Pendente Lektionenbl\u00F6cke -lectures.print.title=Lektionen und Absenzen von {0} -lectures.repository.print.title=Lektionen und Absenzen von {1} im Kurs: {0} lecture.teacher=Lehrer lecture.teacher.can.authorize.absence=Dozenten d\u00FCrfen Absenzen entschuldigen -lecture.teacher.reminder.body=<p>Liebe Dozentin<br>Lieber Dozent</p><p>Wir m\u00F6chten Sie h\u00F6flich darin errinern, dass Sie die Absenzen f\u00FCr den im Betreff genannten Lektionenblock umgehend erfassen. Mit nachfolgendem Link gelangen Sie direkt zum entsprechenden Lektionenblock:<br><a href='{3}'>{3}</a></p><p>Besten Dank!</p><p>Ihre Schulleitung</p> +lecture.teacher.reminder.body=<p>Liebe Dozentin<br>Lieber Dozent</p><p>Wir m\u00F6chten Sie h\u00F6flich darin errinern, dass Sie die Absenzen f\u00FCr den im Betreff genannten Lektionenblock umgehend erfassen. Mit nachfolgendem Link gelangen Sie direkt zum entsprechenden Lektionenblock\:<br><a href\='{3}'>{3}</a></p><p>Besten Dank\!</p><p>Ihre Kursadministration</p> lecture.teacher.reminder.subject=Erinnerung Lektionenblock "{0}" lecture.title=Titel lectures.admin.reasons=Begr\u00FCndungen lectures.admin.settings=Konfiguration Lektionen- und Absenzenmanagement -managed.flags.lecture.block.all=Vollst\u00e4ndige externe Verwaltung -managed.flags.lecture.block.details=Titel, Beschreibung... -managed.flags.lecture.block.title=Title +lectures.print.title=Lektionen und Absenzen von {0} +lectures.repository.print.title=Lektionen und Absenzen von {1} im Kurs\: {0} +lectures.table.closed=Abgeschlossene Lektionenbl\u00F6cke +lectures.table.current=Aktueller Lektionenblock +lectures.table.next=N\u00E4chste Lektionenbl\u00F6cke +lectures.table.pending=Pendente Lektionenbl\u00F6cke +managed.flags.lecture.block.all=Vollst\u00E4ndige externe Verwaltung managed.flags.lecture.block.compulsory=Zwingend -managed.flags.lecture.block.plannedLectures=Geplante Lektionen -managed.flags.lecture.block.teachers=Lehrer -managed.flags.lecture.block.groups=Kurse / Gruppe +managed.flags.lecture.block.dates=Datum +managed.flags.lecture.block.delete=Lektionenblock l\u00F6schen managed.flags.lecture.block.description=Beschreibung -managed.flags.lecture.block.preparation=Vorbereitung/Nachbereitung +managed.flags.lecture.block.details=Titel, Beschreibung... +managed.flags.lecture.block.groups=Kurse / Gruppe managed.flags.lecture.block.location=Ort -managed.flags.lecture.block.dates=Datum +managed.flags.lecture.block.plannedLectures=Geplante Lektionen +managed.flags.lecture.block.preparation=Vorbereitung/Nachbereitung managed.flags.lecture.block.settings=Konfiguration -managed.flags.lecture.block.delete=Lektionenblock l\u00f6schen +managed.flags.lecture.block.teachers=Lehrer +managed.flags.lecture.block.title=Title menu.my.lectures=Absenzen menu.my.lectures.alt=Lektionen und Absenzen new.appeal.title=Neue Rekursmeldung @@ -141,11 +141,13 @@ open=Offen open.course=Kurs \u00F6ffnen partiallydone=Teilweise erledigt participant.rate=Schwellwert +pdf.table.dates={0} von {1} bis {2} pdf.table.header.participants=Teilnehmer pdf.table.header.signature=Unterschrift planned.lectures=Geplante Lektionen previous.participant=Zur\u00FCck zum letzten Teilnehmer -attendance.list=Anwesenheitsliste +private.dates=$org.olat.repository\:cif.private.dates +public.dates=$org.olat.repository\:cif.public.dates reason=Begr\u00FCndung reason.copied=Begr\u00FCndung wurde erfolgreich kopiert. reason.copy={0} (Kopie) @@ -165,20 +167,21 @@ results=Resultate rollcall=Anwesenheitskontrolle rollcall.comment=Bemerkung rollcall.status=Status Lektionenblock -rollcall.tooltip.ok=Anwesend -rollcall.tooltip.authorized.absence=Entschuldigte Abwesenheit rollcall.tooltip.absence=Abwesenheit +rollcall.tooltip.authorized.absence=Entschuldigte Abwesenheit rollcall.tooltip.free=Freiwillig +rollcall.tooltip.ok=Anwesend save.next=Speichern und weiter save.temporary=Zwischen speichern +search.form.end=Bis search.form.login=Benutzername -search.form.string=Suche search.form.start=Von -search.form.end=Bis +search.form.string=Suche +search.form.string.hint=Sie k\u00F6nnen Title von Lektionbl\u00F6cke oder Title und Kennzeichen von kurse suchen. Kennzeichen ist ein exact Match. start.wizard=Wizard starten +sync.course.calendar.enabled=Kurs Kalender synchronisieren sync.participants.calendar.enabled=Teilnehmer Kalender synchronisieren sync.teachers.calendar.enabled=Lehrer Kalender synchronisieren -sync.course.calendar.enabled=Kurs Kalender synchronisieren table.header.absence=Anwesenheit table.header.absent.lectures=Abwesend table.header.actions=<i class\='o_icon o_icon_actions o_icon-lg'> </i> @@ -221,7 +224,7 @@ table.header.status=Status table.header.teachers=Dozenten table.header.tools=<i class\='o_icon o_icon_actions o_icon-lg'> </i> table.header.username=Benutzername -total=Total -tool.teacher=Als Dozent tool.participant=Als Teilnehmer +tool.teacher=Als Dozent tools=Aktion +total=Total diff --git a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties index e239c04c2f31533ffdfa696fb688a90c1abadc58..1634a2e8fcf1d4fbea416723d6b9fb747da373d0 100644 --- a/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties +++ b/src/main/java/org/olat/modules/lecture/ui/_i18n/LocalStrings_en.properties @@ -1,26 +1,27 @@ -#Mon May 15 15:51:16 CEST 2017 +#Tue Jul 04 10:07:47 CEST 2017 active=Active add.lecture=New lectures block add.reason=Add reason admin.menu.title=Lectures admin.menu.title.alt=Lectures and absence management +aggregated.list=Aggregated list all=All all.teachers.switch=All teachers appeal=Appeal appeal.contact.list=Teacher appeal.subject=Appeal lecture block "{0}" appeal.title=Appeal for\: "{0}" +attendance.list=Attendance list authorized.absence=Authorized authorized.absence.reason=Reason autoclosed=Auto-closed -attendance.list=Attendance list -aggregated.list=Aggregated list -detailled.list=Detailled list -bulk=Bulk Email -cancelled=Cancelled +bulk=User names, $org.olat.user.propertyhandlers\:table.name.email oder $org.olat.user.propertyhandlers\:table.name.institutionalUserIdentifier +bulk.example=test01<br>author02<br>test@openolat.org +bulk.hint=You can give a list of user names or email addresses separated by a return. cancel.lecture.blocks=Cancel lectures -closed=Closed +cancelled=Cancelled close.lecture.blocks=Close lectures +closed=Closed config.calculate.attendance.rate=Calculate attendance rate config.override=Override default configuration config.override.no=No @@ -33,44 +34,42 @@ confirm.delete.lectures=Do you really want to delete these lectures "{0}"? confirm.delete.reason=Do you really want to delete this reason "{0}"? copy=Copy current.lecture=Current lectures +date.end=$org.olat.repository\:cif.date.end +date.start=$org.olat.repository\:cif.date.start dates=$org.olat.repository\:cif.dates dates.none=$org.olat.repository\:cif.dates.none dates.private=$org.olat.repository\:cif.dates.private dates.public=$org.olat.repository\:cif.dates.public -date.start=$org.olat.repository\:cif.date.start -date.end=$org.olat.repository\:cif.date.end -dates.public=$org.olat.repository\:cif.dates.public -private.dates=$org.olat.repository\:cif.private.dates -public.dates=$org.olat.repository\:cif.public.dates delete.lectures.title=Delete lectures delete.title=Delete reason +detailled.list=Detailled list details=Details done=Done edit.participant.rate=Edit participant's rate edit.reason=Edit reason effective.lectures=Effective lectures -error.search.form.notempty=$org.olat.admin.user:error.search.form.notempty empty.lectures.list=The tabel is empty empty.repository.entry.lectures=You haven't need to follow a lecture in the course. -entry.rate=Course's rate empty.table.current.lectures.blocks=There is any lectures blocks to start at the moment. empty.table.lectures.blocks=There isn't any lectures blocks. +entry.rate=Course's rate error.atleastone.lecture=Please, choose at least one lectures block. error.integer.between=The input must be a number between {0} and {1} error.integer.positive=The number must be positive. error.reason.mandatory=Reason is mandatory -export.footer.lectures.hint=x = lecture absent +error.search.form.notempty=$org.olat.admin.user\:error.search.form.notempty +export.footer.lectures.hint=x \= lecture absent +export.header.lectureblocks=Lectures block\: {0} the {1} at {2} until {3} export.header.lectures=Lektionen -export.header.lectureblocks=Lectures block: {0} the {1} at {2} until {3} -export.header.location=Room: {0} -export.header.teachers=Teachers: {0} +export.header.location=Room\: {0} +export.header.teachers=Teachers\: {0} +filter.mandatory=Mandatory\t filter.showAll=Show all -filter.mandatory=Mandatory first.admission=First admission form.managedflags.intro=This lecture block has been created by an external tool. Therefore some settings and modules can not be modified and used within OpenOLAT. The following elements are blocked within OpenOLAT\: {0} form.managedflags.intro.short=This lecture block has been created by an external tool. Therefore some settings can not be modified and used within OpenOLAT. -info.no.lectures=You don't follow any lectures for the moment. info.lecture.block.optional=This lecture block is optional. +info.no.lectures=You don't follow any lectures for the moment. interceptor.start=You have now a roll call for the course "{0}" {1} from {4} until {5}. lecture.absence.default.authorized=Absence per default authorized lecture.admin.course.override.title=Configuration - can be override at course level @@ -87,7 +86,7 @@ lecture.block.copied=The lectures block was successfully copied. lecture.block.copy={0} (Copy) lecture.block.effective.end=Effective end lecture.block.effective.reason=Reason -lecture.block.infos=Teachers: {1} from {2} {3} until {4} +lecture.block.infos=Teachers\: {1} from {2} {3} until {4} lecture.block.status=Status lecture.calculate.attendance.rate.default.enabled=Calculate attendance rate (default) lecture.compulsory=Compulsory @@ -102,37 +101,37 @@ lecture.from.to.format={0} until {1} lecture.groups=Course / groups lecture.location=Location lecture.preparation=Preparation -lectures.repository.print.title=Lectures and absences of {1} in course {0} lecture.reminder.enabled=Reminder enabled lecture.reminder.period=Reminder period lecture.rollcall.default.enabled=Roll call enabled (default) lecture.start=Begin lecture.status.enabled=Lectures status -lectures.table.current=Current lectures block -lectures.table.closed=Closed lectures blocks -lectures.table.next=Next lectures blocks -lectures.table.pending=Pending lectures blocks lecture.teacher=Teacher lecture.teacher.can.authorize.absence=Teachers can authorize absences lecture.teacher.reminder.body=Reminder lectures block "{0}" in course {3} lecture.teacher.reminder.subject=Reminder lectures block "{0}" lecture.title=Title -lectures.print.title=Lectures and absences of {0} lectures.admin.reasons=Reasons lectures.admin.settings=Seetings lectures and absence management +lectures.print.title=Lectures and absences of {0} +lectures.repository.print.title=Lectures and absences of {1} in course {0} +lectures.table.closed=Closed lectures blocks +lectures.table.current=Current lectures block +lectures.table.next=Next lectures blocks +lectures.table.pending=Pending lectures blocks managed.flags.lecture.block.all=Fully externally managed -managed.flags.lecture.block.details=Title, description... -managed.flags.lecture.block.title=Title managed.flags.lecture.block.compulsory=Compulsory -managed.flags.lecture.block.plannedLectures=Planned lectures -managed.flags.lecture.block.teachers=Teacher -managed.flags.lecture.block.groups=Course / groups +managed.flags.lecture.block.dates=Dates +managed.flags.lecture.block.delete=Delete lectures block managed.flags.lecture.block.description=Description -managed.flags.lecture.block.preparation=Preparation +managed.flags.lecture.block.details=Title, description... +managed.flags.lecture.block.groups=Course / groups managed.flags.lecture.block.location=Location -managed.flags.lecture.block.dates=Dates +managed.flags.lecture.block.plannedLectures=Planned lectures +managed.flags.lecture.block.preparation=Preparation managed.flags.lecture.block.settings=Configuration -managed.flags.lecture.block.delete=Delete lectures block +managed.flags.lecture.block.teachers=Teacher +managed.flags.lecture.block.title=Title menu.my.lectures=Absences menu.my.lectures.alt=Lectures and absences new.appeal.title=New appeal @@ -141,10 +140,13 @@ open=Open open.course=Open course partiallydone=Partially done participant.rate=Rate +pdf.table.dates={0} from {1} to {2} pdf.table.header.participants=Participants pdf.table.header.signature=Signature planned.lectures=Planned lectures previous.participant=Back to previous participant +private.dates=$org.olat.repository\:cif.private.dates +public.dates=$org.olat.repository\:cif.public.dates reason=Reason reason.copied=Reason was successsfully copied. reason.copy={0} (Copy) @@ -164,20 +166,21 @@ results=Results rollcall=Roll call rollcall.comment=Comment rollcall.status=Roll call status -rollcall.tooltip.ok=Present -rollcall.tooltip.authorized.absence=Authorized absence rollcall.tooltip.absence=Absent +rollcall.tooltip.authorized.absence=Authorized absence rollcall.tooltip.free=Free +rollcall.tooltip.ok=Present save.next=Save and next save.temporary=Quick save +search.form.end=Until search.form.login=Username -search.form.string=Search search.form.start=Start -search.form.end=Until +search.form.string=Search +search.form.string.hint=You can search title of lecture blocks and title or external reference of courses. External reference is an exact match. start.wizard=Start wizard +sync.course.calendar.enabled=Synchronize courses calendars sync.participants.calendar.enabled=Synchronize participants calendars sync.teachers.calendar.enabled=Synchronize teachers calendars -sync.course.calendar.enabled=Synchronize courses calendars table.header.absence=Absence table.header.absent.lectures=Absent table.header.actions=<i class\='o_icon o_icon_actions o_icon-lg'> </i> @@ -218,9 +221,9 @@ table.header.rate.warning=<i class\="o_icon o_midwarn"> </i> table.header.start.time=From table.header.status=Status table.header.teachers=Coaches -table.header.username=Username -tool.teacher=As teacher table.header.tools=<i class\='o_icon o_icon_actions o_icon-lg'> </i> +table.header.username=Username tool.participant=As participant +tool.teacher=As teacher tools=Action total=Total diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesSearchFormController.java b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesSearchFormController.java index 7e014ead648717b200b5c2eef3897d8399abe30f..1074d5e43cc1f2abfdc94cd525d827e0706202b5 100644 --- a/src/main/java/org/olat/modules/lecture/ui/coach/LecturesSearchFormController.java +++ b/src/main/java/org/olat/modules/lecture/ui/coach/LecturesSearchFormController.java @@ -109,9 +109,10 @@ public class LecturesSearchFormController extends FormBasicController { } bulkEl = uifactory.addTextAreaElement("bulk", 4, 72, "", formLayout); - + bulkEl.setHelpText(translate("bulk.hint")); + bulkEl.setExampleKey("bulk.example", null); - List<RepositoryEntryLifecycle> cycles = new ArrayList<>();//slifecycleDao.loadPublicLifecycle(); + List<RepositoryEntryLifecycle> cycles = lifecycleDao.loadPublicLifecycle(); String[] dateKeys; String[] dateValues;