Skip to content
Snippets Groups Projects
Unverified Commit 6cfaf10e authored by Odoo's Mergebot's avatar Odoo's Mergebot Committed by GitHub
Browse files

[MERGE][FIX] survey, website_slides: split computed editable fields


Purpose
=======
Some computed stored editable fields are computed in the same method.

In that case, when one of the value is provided in a create / write call,
the computed method is not called and other fields computed in the same
method do not have the right value.

Task 2377119
COM odoo/odoo/pull/65772
ENT odoo/enterprise/pull/16221

closes odoo/odoo#65772

Related: odoo/enterprise#16221
Signed-off-by: default avatarThibault Delavallee (tde) <tde@openerp.com>
parents 41b0d78c 842a9936
Branches
Tags
No related merge requests found
......@@ -28,8 +28,8 @@ class SurveyInvite(models.TransientModel):
return self.env.user.partner_id
# composer content
subject = fields.Char('Subject', compute='_compute_template_values', readonly=False, store=True)
body = fields.Html('Contents', sanitize_style=True, compute='_compute_template_values', readonly=False, store=True)
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', 'survey_mail_compose_message_ir_attachments_rel', 'wizard_id', 'attachment_id',
string='Attachments')
......@@ -139,15 +139,20 @@ class SurveyInvite(models.TransientModel):
))
@api.depends('template_id')
def _compute_template_values(self):
def _compute_subject(self):
for invite in self:
if not invite.subject:
invite.subject = ''
if not invite.body:
invite.body = ''
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
@api.model
def create(self, values):
......
......@@ -18,8 +18,8 @@ class SlideChannelInvite(models.TransientModel):
_description = 'Channel Invitation Wizard'
# composer content
subject = fields.Char('Subject', compute='_compute_template_values', readonly=False, store=True)
body = fields.Html('Contents', default='', sanitize_style=True, compute='_compute_template_values', readonly=False, store=True)
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',
......@@ -30,11 +30,20 @@ class SlideChannelInvite(models.TransientModel):
channel_id = fields.Many2one('slide.channel', string='Slide channel', required=True)
@api.depends('template_id')
def _compute_template_values(self):
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
@api.onchange('partner_ids')
def _onchange_partner_ids(self):
......
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Please register or to comment