From 2c3451de12bd120d0d72f7b50803f42e89f2f141 Mon Sep 17 00:00:00 2001 From: Goffin Simon Date: Wed, 15 May 2019 13:21:53 +0000 Subject: [PATCH] [FIX] portal, website_mail: Wrong dependance The field website_published is not ensured when module portal is installed because the module portal doesn't depend on module website_mail. PS:The module website_mail depends on the module portal because website_mail depends on website and website depends on portal. opw:1997478 closes odoo/odoo#33452 Signed-off-by: Simon Goffin (sig) --- addons/portal/controllers/mail.py | 2 +- addons/portal/models/mail_message.py | 4 ++++ addons/website_mail/models/mail_message.py | 5 +++++ 3 files changed, 10 insertions(+), 1 deletion(-) diff --git a/addons/portal/controllers/mail.py b/addons/portal/controllers/mail.py index dc83f05a3d2..22e861063d8 100644 --- a/addons/portal/controllers/mail.py +++ b/addons/portal/controllers/mail.py @@ -112,7 +112,7 @@ class PortalChatter(http.Controller): raise Forbidden() # Non-employee see only messages with not internal subtype (aka, no internal logs) if not request.env['res.users'].has_group('base.group_user'): - domain = expression.AND([['&', '&', ('subtype_id', '!=', False), ('subtype_id.internal', '=', False), ('website_published', '=', True)], domain]) + domain = expression.AND([Message._non_employee_message_domain(), domain]) Message = request.env['mail.message'].sudo() return { 'messages': Message.search(domain, limit=limit, offset=offset).portal_message_format(), diff --git a/addons/portal/models/mail_message.py b/addons/portal/models/mail_message.py index 4a5d1f804d9..afe97f1b8ca 100644 --- a/addons/portal/models/mail_message.py +++ b/addons/portal/models/mail_message.py @@ -21,3 +21,7 @@ class MailMessage(models.Model): message_tree = dict((m.id, m) for m in self.sudo()) self._message_read_dict_postprocess(message_values, message_tree) return message_values + + @api.model + def _non_employee_message_domain(self): + return ['&', ('subtype_id', '!=', False), ('subtype_id.internal', '=', False)] diff --git a/addons/website_mail/models/mail_message.py b/addons/website_mail/models/mail_message.py index 34609160f1d..683990e1e67 100644 --- a/addons/website_mail/models/mail_message.py +++ b/addons/website_mail/models/mail_message.py @@ -26,6 +26,11 @@ class MailMessage(models.Model): description = fields.Char(compute="_compute_description", help='Message description: either the subject, or the beginning of the body') website_published = fields.Boolean(string='Published', help="Visible on the website as a comment", copy=False) + @api.model + def _non_employee_message_domain(self): + domain = super(MailMessage, self)._non_employee_message_domain() + return expression.AND([domain, [('website_published', '=', True)]]) + @api.multi def _compute_description(self): for message in self: