diff --git a/packages/api/src/email.ts b/packages/api/src/email.ts index 88781702..7558714f 100644 --- a/packages/api/src/email.ts +++ b/packages/api/src/email.ts @@ -9,7 +9,7 @@ export type BaseEmailPayload = { } export type TrainerMailPayload = BaseEmailPayload & { - emailType: 'acceptReport' | 'needChanges' + emailType: 'acceptReport' | 'needChangesComment' | 'needChangesNoComment' userData: BaseMailUserData & { trainer: string } @@ -70,7 +70,8 @@ export type EmailTranslations = { error: string reportExport: string acceptReport: string - needChanges: string + needChangesComment: string + needChangesNoComment: string deleteYourTrainee: string deleteAccount: string deleteUser: string @@ -80,7 +81,8 @@ export type EmailTranslations = { headline: { export: string accepted: string - needChanges: string + needChangesComment: string + needChangesNoComment: string deleteTrainee: string deleteAccount: string deleteUser: string @@ -91,7 +93,8 @@ export type EmailTranslations = { error: string success: string accepted: string - needChanges: string + needChangesComment: string + needChangesNoComment: string deleteTrainee: string deleteAccount: string deleteUser: string diff --git a/packages/backend/src/i18n/de.ts b/packages/backend/src/i18n/de.ts index ba8d3191..ea201890 100644 --- a/packages/backend/src/i18n/de.ts +++ b/packages/backend/src/i18n/de.ts @@ -37,7 +37,8 @@ export const GermanTranslations: Translations = { error: 'Fehler bei der pdf Generierung', reportExport: 'Dein Lara Export', acceptReport: 'Dein Bericht wurde genehmigt', - needChanges: 'Bericht zurückgegeben', + needChangesNoComment: 'Bericht zurückgegeben', + needChangesComment: 'Bericht zurückgegeben', deleteYourTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -47,7 +48,8 @@ export const GermanTranslations: Translations = { headline: { export: 'Dein Lara-Export!', accepted: 'Report genehmigt!', - needChanges: 'Änderungen erforderlich!', + needChangesComment: 'Änderungen erforderlich!', + needChangesNoComment: 'Änderungen erforderlich!', deleteTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -58,8 +60,9 @@ export const GermanTranslations: Translations = { error: 'etwas ist schiefgegangen. Bitte wende dich an einen Lara Admin oder Entwickler.', success: 'im Anhang findest du deinen Lara-Export. Wir wünschen dir ganz viel Spaß damit.', accepted: '{{ trainer }} hat dein Berichtsheft erhalten und genehmigt', - needChanges: - '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben. Zu dieser Woche gibt es einen Kommentar.', + needChangesComment: + '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben. Zu dieser Woche gibt es Rückmeldungen', + needChangesNoComment: '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben.', deleteTrainee: 'Dein Auszubildener {{ trainee }} wird in 3 Monaten gelöscht. Sollte dies ein Fehler sein kannst du dich mit deinem Admin in Verbindung setzen, damit er die Löschung abbricht.', deleteAccount: diff --git a/packages/backend/src/i18n/en.ts b/packages/backend/src/i18n/en.ts index 62fed707..fc0c8064 100644 --- a/packages/backend/src/i18n/en.ts +++ b/packages/backend/src/i18n/en.ts @@ -37,7 +37,8 @@ export const EnglishTranslations: Translations = { error: 'Error while generating reports.', reportExport: 'Your Lara export', acceptReport: 'Your report got accepted', - needChanges: 'Your report got handed back', + needChangesComment: 'Your report got handed back', + needChangesNoComment: 'Your report got handed back', deleteYourTrainee: 'Your Trainee will be deleted soon', deleteAccount: 'Your account will be deleted', deleteUser: 'A User will be deleted soon', @@ -47,7 +48,8 @@ export const EnglishTranslations: Translations = { headline: { export: 'Your Lara export!', accepted: 'Report accepted!', - needChanges: 'Changes necessary!', + needChangesNoComment: 'Changes necessary!', + needChangesComment: 'Changes necessary!', deleteTrainee: 'Your trainee will be delted soon', deleteAccount: 'Your account will be deleted', deleteUser: 'A User will be deleted soon', @@ -58,7 +60,8 @@ export const EnglishTranslations: Translations = { error: 'Something went wring. Please conteact your Lara admin.', success: 'Your lara report is attached to this mail. Good luck with it.', accepted: '{{ trainer }} received your report and approved it', - needChanges: '{{ trainer }} received your report and handed it back. There are comments to your report.', + needChangesComment: '{{ trainer }} received your report and handed it back. There are comments to your report.', + needChangesNoComment: '{{ trainer }} received your report and handed it back.', deleteTrainee: 'Your trainee {{ trainee }} will be deleted in 3 month. If this is wrong you should contact your Lara-Admin to solve this problem.', deleteAccount: diff --git a/packages/backend/src/services/email.service.ts b/packages/backend/src/services/email.service.ts index 73176268..407c5def 100644 --- a/packages/backend/src/services/email.service.ts +++ b/packages/backend/src/services/email.service.ts @@ -28,8 +28,19 @@ const trainerNotificationMailPayload = (receiver: Trainer, sender: Trainee, repo translations: translations(receiver), }) +const hasComments = (report: Report) => { + let hasComments = report.comments.length > 0 + report.days.forEach((day) => { + if (day.comments.length > 0) { + hasComments = true + } + }) + return hasComments +} + const traineeNoficationMailPayload = (receiver: Trainee, sender: Trainer, report: Report): EmailPayload => ({ - emailType: report.status === 'archived' ? 'acceptReport' : 'needChanges', + emailType: + report.status === 'archived' ? 'acceptReport' : hasComments(report) ? 'needChangesComment' : 'needChangesNoComment', userData: { receiverEmail: receiver.email, receiverName: receiver.firstName, diff --git a/packages/email/src/mail-template.ts b/packages/email/src/mail-template.ts index af348a61..9fe82f48 100644 --- a/packages/email/src/mail-template.ts +++ b/packages/email/src/mail-template.ts @@ -59,13 +59,23 @@ export const generateEmailTemplate = (type: EmailType, translations: EmailTransl BUTTONTEXT: link.report, } break - case 'needChanges': + case 'needChangesComment': emailVariables = { ...emailVariables, DEFAULTBACKGROUND: createBase64UrlfromPng('background_1.png'), - HEADLINE: headline.needChanges, + HEADLINE: headline.needChangesComment, HEADLINEIMAGE: createBase64UrlfromPng('tablet.png'), - MAINTEXT: message.needChanges, + MAINTEXT: message.needChangesComment, + BUTTONTEXT: link.report, + } + break + case 'needChangesNoComment': + emailVariables = { + ...emailVariables, + DEFAULTBACKGROUND: createBase64UrlfromPng('background_1.png'), + HEADLINE: headline.needChangesNoComment, + HEADLINEIMAGE: createBase64UrlfromPng('tablet.png'), + MAINTEXT: message.needChangesNoComment, BUTTONTEXT: link.report, } break diff --git a/packages/email/src/mock.ts b/packages/email/src/mock.ts index f0a336b7..2a102c43 100644 --- a/packages/email/src/mock.ts +++ b/packages/email/src/mock.ts @@ -19,7 +19,8 @@ export const DUMMY_DATA: EmailPayload = { error: 'Fehler bei der pdf Generierung', reportExport: 'Dein Lara Export', acceptReport: 'Dein Bericht wurde genehmigt', - needChanges: 'Bericht zurückgegeben', + needChangesNoComment: 'Bericht zurückgegeben', + needChangesComment: 'Bericht zurückgegeben', deleteYourTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -29,7 +30,8 @@ export const DUMMY_DATA: EmailPayload = { headline: { export: 'Dein Lara-Export!', accepted: 'Report genehmigt!', - needChanges: 'Änderungen erforderlich!', + needChangesNoComment: 'Änderungen erforderlich!', + needChangesComment: 'Änderungen erforderlich!', deleteTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -40,8 +42,9 @@ export const DUMMY_DATA: EmailPayload = { error: 'etwas ist schiefgegangen. Bitte wende dich an einen Lara Admin oder Entwickler.', success: 'im Anhang findest du deinen Lara-Export. Wir wünschen dir ganz viel Spaß damit.', accepted: '{{ trainer }} hat dein Berichtsheft erhalten und genehmigt', - needChanges: - '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben. Zu dieser Woche gibt es einen Kommentar.', + needChangesComment: + '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben. Zu dieser Woche gibt es Rückmeldungen.', + needChangesNoComment: '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben.', deleteTrainee: 'Dein Auszubildener {{ trainee }} wird in 3 Monaten gelöscht. Sollte dies ein Fehler sein kannst du dich mit deinem Admin in Verbindung setzen, damit er die Löschung abbricht.', deleteAccount: @@ -83,7 +86,7 @@ const requestListener: RequestListener = (_req, res) => { break case '/needChanges': res.writeHead(200) - res.end(generateEmailTemplate('needChanges', translations)) + res.end(generateEmailTemplate('needChangesNoComment', translations)) break case '/deleteYourTrainee': res.writeHead(200) diff --git a/packages/print/src/mock.ts b/packages/print/src/mock.ts index 6fd9f44c..e2d4127a 100644 --- a/packages/print/src/mock.ts +++ b/packages/print/src/mock.ts @@ -129,7 +129,8 @@ export const DUMMY_DATA: PrintData = { error: 'Fehler bei der pdf Generierung', reportExport: 'Dein Lara Export', acceptReport: 'Dein Bericht wurde genehmigt', - needChanges: 'Bericht zurückgegeben', + needChangesNoComment: 'Bericht zurückgegeben', + needChangesComment: 'Bericht zurückgegeben', deleteYourTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -139,7 +140,8 @@ export const DUMMY_DATA: PrintData = { headline: { export: 'Dein Lara-Export!', accepted: 'Report genehmigt!', - needChanges: 'Änderungen erforderlich!', + needChangesNoComment: 'Änderungen erforderlich!', + needChangesComment: 'Änderungen erforderlich!', deleteTrainee: 'Dein Azubi wird bald gelöscht', deleteAccount: 'Dein Account wird bald gelöscht', deleteUser: 'Ein Benutzer wird bald gelöscht', @@ -150,8 +152,9 @@ export const DUMMY_DATA: PrintData = { error: 'etwas ist schiefgegangen. Bitte wende dich an einen Lara Admin oder Entwickler.', success: 'im Anhang findest du deinen Lara-Export. Wir wünschen dir ganz viel Spaß damit.', accepted: '{{ trainer }} hat dein Berichtsheft erhalten und genehmigt', - needChanges: + needChangesComment: '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben. Zu dieser Woche gibt es einen Kommentar.', + needChangesNoComment: '{{ trainer }} hat dein Berichtsheft erhalten und es zurückgegeben.', deleteTrainee: 'Dein Auszubildener {{ trainee }} wird in 3 Monaten gelöscht. Sollte dies ein Fehler sein kannst du dich mit deinem Admin in Verbindung setzen, damit er die Löschung abbricht.', deleteAccount: