From bb1fa25615203f35caac02c3935193c6e9c80d5b Mon Sep 17 00:00:00 2001 From: jvm-odoo Date: Mon, 2 Mar 2020 09:27:30 +0000 Subject: [PATCH] [FIX] mail: fix activity notification language Issue - Install CRM, Discuss - Have 2 languages (e.g. french english) - User 1 > French - User 2 > English - Create an activity as user 1 for user 2 - As user 2, check discuss > history Notification received in french Cause mail_activity action_notify method uses the context language which is the active user language. Solution If user 2 has a language set, use this language for translating body template (self) and activity type (activity) OPW-2205409 closes odoo/odoo#46800 X-original-commit: ccfe573b4eee82de92d130addb745f68b3fd3bd9 Signed-off-by: Jason Van Malder (jvm) --- addons/mail/models/mail_activity.py | 8 ++++++++ 1 file changed, 8 insertions(+) diff --git a/addons/mail/models/mail_activity.py b/addons/mail/models/mail_activity.py index 935cadbdfa6..19d488c501f 100644 --- a/addons/mail/models/mail_activity.py +++ b/addons/mail/models/mail_activity.py @@ -384,8 +384,14 @@ class MailActivity(models.Model): def action_notify(self): if not self: return + original_context = self.env.context body_template = self.env.ref('mail.message_activity_assigned') for activity in self: + if activity.user_id.lang: + # Send the notification in the assigned user's language + self = self.with_context(lang=activity.user_id.lang) + body_template = body_template.with_context(lang=activity.user_id.lang) + activity = activity.with_context(lang=activity.user_id.lang) model_description = self.env['ir.model']._get(activity.res_model).display_name body = body_template.render( dict( @@ -406,6 +412,8 @@ class MailActivity(models.Model): model_description=model_description, email_layout_xmlid='mail.mail_notification_light', ) + body_template = body_template.with_context(original_context) + self = self.with_context(original_context) def action_done(self): """ Wrapper without feedback because web button add context as