diff --git a/addons/mail/controllers/discuss.py b/addons/mail/controllers/discuss.py index 7f3b606a416..c9d12ff0978 100644 --- a/addons/mail/controllers/discuss.py +++ b/addons/mail/controllers/discuss.py @@ -49,12 +49,12 @@ class DiscussController(http.Controller): follower = request.env['mail.followers'].sudo().browse(follower_id) follower.ensure_one() request.env[follower.res_model].check_access_rights("read") - request.env[follower.res_model].browse(follower.res_id).check_access_rule("read") + record = request.env[follower.res_model].browse(follower.res_id) + record.check_access_rule("read") # find current model subtypes, add them to a dictionary - subtypes = request.env['mail.message.subtype'].search([ - '&', ('hidden', '=', False), - '|', ('res_model', '=', follower.res_model), ('res_model', '=', False)]) + subtypes = record._mail_get_message_subtypes() + followed_subtypes_ids = set(follower.subtype_ids.ids) subtypes_list = [{ 'name': subtype.name, diff --git a/addons/mail/models/models.py b/addons/mail/models/models.py index c09eefbd10c..2e31ed89bd7 100644 --- a/addons/mail/models/models.py +++ b/addons/mail/models/models.py @@ -198,6 +198,11 @@ class BaseModel(models.AbstractModel): # GATEWAY: NOTIFICATION # ------------------------------------------------------------ + def _mail_get_message_subtypes(self): + return self.env['mail.message.subtype'].search([ + '&', ('hidden', '=', False), + '|', ('res_model', '=', self._name), ('res_model', '=', False)]) + def _notify_email_headers(self): """ Generate the email headers based on record