From 7ea61d1457f86b7d230142b06fb829d79ae1994f Mon Sep 17 00:00:00 2001
From: srosse <stephane.rosse@frentix.com>
Date: Sat, 31 Aug 2019 17:16:26 +0200
Subject: [PATCH] OO-4150: fix red screens and missing translations

---
 .../java/org/olat/admin/_i18n/LocalStrings_de.properties   | 1 +
 .../java/org/olat/admin/_i18n/LocalStrings_en.properties   | 1 +
 .../java/org/olat/admin/_i18n/LocalStrings_fr.properties   | 1 +
 .../org/olat/modules/lecture/manager/AbsenceNoticeDAO.java | 1 +
 .../modules/lecture/model/LectureBlockBlockStatistics.java | 2 +-
 .../lecture/ui/coach/ContactTeachersController.java        | 7 +++----
 .../lecture/ui/wizard/AbsenceNoticeFinishStepCallback.java | 4 +++-
 .../openmeetings/ui/_i18n/LocalStrings_de.properties       | 1 +
 .../openmeetings/ui/_i18n/LocalStrings_en.properties       | 1 +
 .../openmeetings/ui/_i18n/LocalStrings_fr.properties       | 1 +
 .../olat/modules/reminder/ui/ReminderAdminController.java  | 2 +-
 .../olat/search/service/document/InfoMessageDocument.java  | 6 ++++--
 12 files changed, 19 insertions(+), 9 deletions(-)

diff --git a/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
index 2b03293fae2..f648524b023 100644
--- a/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/admin/_i18n/LocalStrings_de.properties
@@ -63,6 +63,7 @@ menu.parent.customizing.alt=Anpassungen an OpenOlat vornehmen
 menu.parent.maintenance=Systemwartung
 menu.parent.maintenance.alt=Systemwartung und erweiterte Einstellungen
 menu.payments=Bezahlungsmodule
+menu.payments.alt=Bezahlungsmodule
 menu.quota=Quotaverwaltung
 menu.quota.alt=Quotaverwaltung
 menu.registration=Systemregistrierung
diff --git a/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
index 1683514a9c7..c0edb8c6b2c 100644
--- a/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/admin/_i18n/LocalStrings_en.properties
@@ -63,6 +63,7 @@ menu.parent.customizing.alt=Customize your OpenOlat deeply
 menu.parent.maintenance=System maintenance
 menu.parent.maintenance.alt=System maintenance and extended setup
 menu.payments=Payment modules
+menu.payments.alt=Payment modules
 menu.quota=Quota management
 menu.quota.alt=Quota management
 menu.registration=System registration
diff --git a/src/main/java/org/olat/admin/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/admin/_i18n/LocalStrings_fr.properties
index 386f45712bf..b3e3a0ffff3 100644
--- a/src/main/java/org/olat/admin/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/admin/_i18n/LocalStrings_fr.properties
@@ -63,6 +63,7 @@ menu.parent.customizing.alt=Personnalisation d'OpenOlat
 menu.parent.maintenance=Maintenance du syst\u00E8me
 menu.parent.maintenance.alt=Maintenance du syst\u00E8me et options suppl\u00E9mentaires
 menu.payments=Modules de paiement
+menu.payments.alt=Modules de paiement
 menu.quota=Gestion des quotas
 menu.quota.alt=Gestion des quotas
 menu.registration=Enregistrement du syst\u00E8me
diff --git a/src/main/java/org/olat/modules/lecture/manager/AbsenceNoticeDAO.java b/src/main/java/org/olat/modules/lecture/manager/AbsenceNoticeDAO.java
index ecec742bf6c..7ef01982dea 100644
--- a/src/main/java/org/olat/modules/lecture/manager/AbsenceNoticeDAO.java
+++ b/src/main/java/org/olat/modules/lecture/manager/AbsenceNoticeDAO.java
@@ -208,6 +208,7 @@ public class AbsenceNoticeDAO {
 	public List<AbsenceNoticeInfos> search(AbsenceNoticeSearchParameters searchParams, boolean absenceDefaultAuthorized) {
 		QueryBuilder sb = new QueryBuilder(512);
 		sb.append("select notice from absencenotice as notice")
+		  .append(" inner join fetch notice.absenceCategory as category")
 		  .append(" inner join fetch notice.identity as aIdent")
 		  .append(" inner join fetch aIdent.user as aUser");
 		if(!searchParams.getTypes().isEmpty()) {
diff --git a/src/main/java/org/olat/modules/lecture/model/LectureBlockBlockStatistics.java b/src/main/java/org/olat/modules/lecture/model/LectureBlockBlockStatistics.java
index a574af01615..4e69c2d82be 100644
--- a/src/main/java/org/olat/modules/lecture/model/LectureBlockBlockStatistics.java
+++ b/src/main/java/org/olat/modules/lecture/model/LectureBlockBlockStatistics.java
@@ -107,7 +107,7 @@ public class LectureBlockBlockStatistics {
 					numOfAbsenceUnauthorized++;
 				}
 			} else if(notice.getNoticeType() == AbsenceNoticeType.notified) {
-				if(notice.getAbsenceAuthorized() && notice.getAbsenceAuthorized().booleanValue()) {
+				if(notice.getAbsenceAuthorized() != null && notice.getAbsenceAuthorized().booleanValue()) {
 					numOfNoticeOfAbsenceAuthorized++;
 				} else {
 					numOfNoticeOfAbsenceUnauthorized++;
diff --git a/src/main/java/org/olat/modules/lecture/ui/coach/ContactTeachersController.java b/src/main/java/org/olat/modules/lecture/ui/coach/ContactTeachersController.java
index 7e8662d53bd..4b582efa0a3 100644
--- a/src/main/java/org/olat/modules/lecture/ui/coach/ContactTeachersController.java
+++ b/src/main/java/org/olat/modules/lecture/ui/coach/ContactTeachersController.java
@@ -188,15 +188,14 @@ public class ContactTeachersController extends FormBasicController {
 	private void doSend(UserRequest ureq) {
 		boolean success = false;
 		try {
-			List<ContactList> contactList = new ArrayList<>();
-			ContactList memberList = new ContactList(translate("contact.teachers.list.name"));
+			ContactList teachersList = new ContactList(translate("contact.teachers.list.name"));
 			List<Identity> selectedTeachers = getSelectedTeacher();
-			memberList.addAllIdentites(selectedTeachers);
+			teachersList.addAllIdentites(selectedTeachers);
 			MailContext context = new MailContextImpl(getWindowControl().getBusinessControl().getAsString());
 			MailBundle bundle = new MailBundle();
 			bundle.setContext(context);
 			bundle.setFromId(getIdentity());						
-			bundle.setContactLists(contactList);
+			bundle.setContactList(teachersList);
 			bundle.setContent(subjectEl.getValue(), bodyEl.getValue());
 			MailerResult result = mailService.sendMessage(bundle);
 			success = result.isSuccessful();
diff --git a/src/main/java/org/olat/modules/lecture/ui/wizard/AbsenceNoticeFinishStepCallback.java b/src/main/java/org/olat/modules/lecture/ui/wizard/AbsenceNoticeFinishStepCallback.java
index c2922a85e5e..6ae0522e61f 100644
--- a/src/main/java/org/olat/modules/lecture/ui/wizard/AbsenceNoticeFinishStepCallback.java
+++ b/src/main/java/org/olat/modules/lecture/ui/wizard/AbsenceNoticeFinishStepCallback.java
@@ -36,6 +36,7 @@ import org.olat.core.id.Identity;
 import org.olat.core.id.Roles;
 import org.olat.core.logging.Tracing;
 import org.olat.core.logging.activity.ThreadLocalUserActivityLogger;
+import org.olat.core.util.Util;
 import org.olat.core.util.mail.ContactList;
 import org.olat.core.util.mail.MailBundle;
 import org.olat.core.util.mail.MailContext;
@@ -46,6 +47,7 @@ import org.olat.core.util.mail.MailManager;
 import org.olat.core.util.mail.MailerResult;
 import org.olat.core.util.vfs.VFSItem;
 import org.olat.core.util.vfs.filters.VFSSystemItemFilter;
+import org.olat.modules.co.ContactFormController;
 import org.olat.modules.lecture.AbsenceNotice;
 import org.olat.modules.lecture.LectureBlockAuditLog.Action;
 import org.olat.modules.lecture.LectureService;
@@ -72,7 +74,7 @@ public class AbsenceNoticeFinishStepCallback implements StepRunnerCallback {
 	
 	public AbsenceNoticeFinishStepCallback(EditAbsenceNoticeWrapper noticeWrapper, Translator translator) {
 		CoreSpringFactory.autowireObject(this);
-		this.translator = translator;
+		this.translator = Util.createPackageTranslator(ContactFormController.class, translator.getLocale(), translator);
 		this.noticeWrapper = noticeWrapper;
 	}
 
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
index 6fa7defd957..bc0bcae2020 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_de.properties
@@ -14,6 +14,7 @@ download=Herunterladen
 edit.room=Raumeinstellungen
 edit.room.desc=\u00C4ndern Sie die Konfigurationsparameter des Raumes wie z.B. Raumtyp oder verf\u00FCgbare Anzahl Pl\u00E4tze.
 enabled=eingeschaltet
+error.-1=Unbekanntes Fehler
 error.-10=Benutzername nicht gefunden
 error.-11=Ung\u00FCltiges Passwort
 error.-12=Erfolgreich ausgeloggt
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
index ae2357f6fff..230c26d861b 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_en.properties
@@ -33,6 +33,7 @@ download=Download
 edit.room=Room configuration
 edit.room.desc=Change the configuration parameter of the room such as the room type, available seats etc.
 enabled=enabled
+error.-1=Unkown error
 error.-10=Username not found
 error.-11=Invalid password
 error.-12=Successfully logged out
diff --git a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
index ac142ce833c..6f87e8e4482 100644
--- a/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
+++ b/src/main/java/org/olat/modules/openmeetings/ui/_i18n/LocalStrings_fr.properties
@@ -18,6 +18,7 @@ download=T\u00E9l\u00E9charger
 edit.room=Configuration de la salle de r\u00E9union
 edit.room.desc=Modifier les param\u00E8tres de configuration de la salle tel que le type de salle ou le nombre de places disponibles.
 enabled=activ\u00E9
+error.-1=Erreur inconnue
 error.-10=La personne avec ce nom d'utilisateur n'a pas pu \u00EAtre trouv\u00E9e.
 error.-11=Mot de passe non valide
 error.-12=D\u00E9connecter avec succ\u00E8s.
diff --git a/src/main/java/org/olat/modules/reminder/ui/ReminderAdminController.java b/src/main/java/org/olat/modules/reminder/ui/ReminderAdminController.java
index b4ac4b89960..19a00c8795c 100644
--- a/src/main/java/org/olat/modules/reminder/ui/ReminderAdminController.java
+++ b/src/main/java/org/olat/modules/reminder/ui/ReminderAdminController.java
@@ -146,7 +146,7 @@ public class ReminderAdminController extends FormBasicController {
 		for(int i=timezoneKeys.length; i-->0; ) {
 			timezoneValues[i] = timezoneKeys[i] + " (" + TimeZone.getTimeZone(timezoneKeys[i]).getDisplayName(true, TimeZone.LONG, getLocale()) + ")";
 		}
-		timezoneEl = uifactory.addDropdownSingleselect("timezone", timeLayout, timezoneKeys, timezoneValues, null);
+		timezoneEl = uifactory.addDropdownSingleselect("timezone", null, timeLayout, timezoneKeys, timezoneValues, null);
 		timezoneEl.setEnabled(false);
 		((AbstractComponent)timezoneEl.getComponent()).setDomReplacementWrapperRequired(false);
 		TimeZone defaultTimeZone = reminderModule.getDefaultSendTimeZone();
diff --git a/src/main/java/org/olat/search/service/document/InfoMessageDocument.java b/src/main/java/org/olat/search/service/document/InfoMessageDocument.java
index fce7799d51a..977ad3e7eb6 100644
--- a/src/main/java/org/olat/search/service/document/InfoMessageDocument.java
+++ b/src/main/java/org/olat/search/service/document/InfoMessageDocument.java
@@ -33,7 +33,7 @@ public class InfoMessageDocument extends OlatDocument {
 
   //Must correspond with LocalString_xx.properties
 	// Do not use '_' because we want to seach for certain documenttype and lucene haev problems with '_' 
-	public final static String TYPE = "type.info.message";
+	public static final String TYPE = "type.info.message";
 
 	public InfoMessageDocument() {
 		super();
@@ -44,7 +44,9 @@ public class InfoMessageDocument extends OlatDocument {
 
 		messageDocument.setTitle(message.getTitle());
 		messageDocument.setContent(message.getMessage());
-		messageDocument.setAuthor(message.getAuthor().getName());
+		if(message.getAuthor() != null) {
+			messageDocument.setAuthor(message.getAuthor().getName());
+		}
 		messageDocument.setCreatedDate(message.getCreationDate());
 		messageDocument.setLastChange(message.getCreationDate());
 		messageDocument.setResourceUrl(searchResourceContext.getResourceUrl());
-- 
GitLab