diff --git a/addons/website_slides/__manifest__.py b/addons/website_slides/__manifest__.py index a732d7d92e9..ddb71e0a9f2 100644 --- a/addons/website_slides/__manifest__.py +++ b/addons/website_slides/__manifest__.py @@ -1,7 +1,7 @@ # -*- coding: utf-8 -*- { 'name': 'eLearning', - 'version': '2.3', + 'version': '2.4', 'sequence': 125, 'summary': 'Manage and publish an eLearning platform', 'website': 'https://www.odoo.com/page/slides', diff --git a/addons/website_slides/wizard/slide_channel_invite.py b/addons/website_slides/wizard/slide_channel_invite.py index 737651e6a35..c41459a0adb 100644 --- a/addons/website_slides/wizard/slide_channel_invite.py +++ b/addons/website_slides/wizard/slide_channel_invite.py @@ -6,7 +6,6 @@ import re from odoo import api, fields, models, _ from odoo.exceptions import UserError -from odoo.tools import formataddr _logger = logging.getLogger(__name__) @@ -15,35 +14,20 @@ emails_split = re.compile(r"[;,\n\r]+") class SlideChannelInvite(models.TransientModel): _name = 'slide.channel.invite' + _inherit = 'mail.composer.mixin' _description = 'Channel Invitation Wizard' # composer content - subject = fields.Char('Subject', compute='_compute_subject', readonly=False, store=True) - body = fields.Html('Contents', sanitize_style=True, compute='_compute_body', readonly=False, store=True) attachment_ids = fields.Many2many('ir.attachment', string='Attachments') - template_id = fields.Many2one( - 'mail.template', 'Use template', - domain="[('model', '=', 'slide.channel.partner')]") # recipients partner_ids = fields.Many2many('res.partner', string='Recipients') # slide channel channel_id = fields.Many2one('slide.channel', string='Slide channel', required=True) - @api.depends('template_id') - def _compute_subject(self): - for invite in self: - if invite.template_id: - invite.subject = invite.template_id.subject - elif not invite.subject: - invite.subject = False - - @api.depends('template_id') - def _compute_body(self): - for invite in self: - if invite.template_id: - invite.body = invite.template_id.body_html - elif not invite.body: - invite.body = False + # Overrides of mail.composer.mixin + @api.depends('channel_id') # fake trigger otherwise not computed in new mode + def _compute_render_model(self): + self.render_model = 'slide.channel.partner' @api.onchange('partner_ids') def _onchange_partner_ids(self): @@ -92,8 +76,8 @@ class SlideChannelInvite(models.TransientModel): def _prepare_mail_values(self, slide_channel_partner): """ Create mail specific for recipient """ - subject = self.env['mail.render.mixin']._render_template(self.subject, 'slide.channel.partner', slide_channel_partner.ids, post_process=True)[slide_channel_partner.id] - body = self.env['mail.render.mixin']._render_template(self.body, 'slide.channel.partner', slide_channel_partner.ids, post_process=True)[slide_channel_partner.id] + subject = self._render_field('subject', slide_channel_partner.ids, post_process=True)[slide_channel_partner.id] + body = self._render_field('body', slide_channel_partner.ids, post_process=True)[slide_channel_partner.id] # post the message mail_values = { 'email_from': self.env.user.email_formatted, diff --git a/addons/website_slides/wizard/slide_channel_invite_views.xml b/addons/website_slides/wizard/slide_channel_invite_views.xml index d5c8e34bba6..72fbeeab9d0 100644 --- a/addons/website_slides/wizard/slide_channel_invite_views.xml +++ b/addons/website_slides/wizard/slide_channel_invite_views.xml @@ -14,6 +14,7 @@ context="{'force_email':True, 'show_email':True, 'no_create_edit': True}"/> +