From be5e8fdab800ff1fd9e953ec64801f96bcc3dac5 Mon Sep 17 00:00:00 2001 From: Patrick Hoste Date: Wed, 19 Jun 2019 11:48:19 +0000 Subject: [PATCH] [FIX] eLearning: allow portal user to share a slide by mail Before, a portal user who tried to share a slide by mail got a Odoo Server Error. He will now be able to share it without any error. closes odoo/odoo#34320 Signed-off-by: Thibault Delavallee (tde) --- addons/website_slides/data/mail_data.xml | 6 +++--- addons/website_slides/models/slide_slide.py | 5 ++++- 2 files changed, 7 insertions(+), 4 deletions(-) diff --git a/addons/website_slides/data/mail_data.xml b/addons/website_slides/data/mail_data.xml index 3b397545940..fe5d8f800a4 100644 --- a/addons/website_slides/data/mail_data.xml +++ b/addons/website_slides/data/mail_data.xml @@ -29,14 +29,14 @@ Slide Shared - ${user.name} shared a ${object.slide_type} with you! - ${(user.email or '')|safe} + ${ctx['user'].name} shared a ${object.slide_type} with you! + ${(ctx['user'].email or '')|safe} ${ctx['email']}

Hello

- ${user.name} shared the ${object.slide_type} ${object.name} with you! + ${ctx['user'].name} shared the ${object.slide_type} ${object.name} with you!

${object.name} diff --git a/addons/website_slides/models/slide_slide.py b/addons/website_slides/models/slide_slide.py index df7d1c079b6..71a8207025a 100644 --- a/addons/website_slides/models/slide_slide.py +++ b/addons/website_slides/models/slide_slide.py @@ -379,7 +379,10 @@ class Slide(models.Model): mail_ids = [] base_url = self.env['ir.config_parameter'].sudo().get_param('web.base.url') for record in self: - mail_ids.append(self.channel_id.share_template_id.with_context(email=email, base_url=base_url).send_mail(record.id, notif_layout='mail.mail_notification_light')) + if self.env.user.has_group('base.group_portal'): + mail_ids.append(self.channel_id.share_template_id.with_context(user=self.env.user, email=email, base_url=base_url).sudo().send_mail(record.id, notif_layout='mail.mail_notification_light', email_values={'email_from': self.env['res.company'].catchall or self.env['res.company'].email})) + else: + mail_ids.append(self.channel_id.share_template_id.with_context(user=self.env.user, email=email, base_url=base_url).send_mail(record.id, notif_layout='mail.mail_notification_light')) return mail_ids def action_like(self):