26 lines
1.3 KiB
Python
26 lines
1.3 KiB
Python
from odoo import _, api, fields, models
|
|
import logging
|
|
_logger = logging.getLogger(__name__)
|
|
import ast
|
|
|
|
|
|
class MailThread(models.AbstractModel):
|
|
_inherit = 'mail.thread'
|
|
|
|
def _unsubscribe_followers(self):
|
|
ignore_current_partner = ast.literal_eval(self.env['ir.config_parameter'].sudo().get_param('mail_unsubscribe.ignore_current_partner', 'False'))
|
|
for mt in self:
|
|
current_partner_id = self.env.user.partner_id
|
|
message_partner_ids = mt.message_partner_ids
|
|
if ignore_current_partner:
|
|
message_partner_ids = message_partner_ids.filtered(lambda p: p != current_partner_id)
|
|
mt.message_unsubscribe(message_partner_ids.ids)
|
|
|
|
|
|
@api.returns('mail.message', lambda value: value.id)
|
|
def message_post(self, **kwargs):
|
|
self._unsubscribe_followers()
|
|
mail_post_autofollow = ast.literal_eval(self.env['ir.config_parameter'].sudo().get_param('mail_unsubscribe.mail_post_autofollow', 'False'))
|
|
mail_create_nosubscribe = ast.literal_eval(self.env['ir.config_parameter'].sudo().get_param('mail_unsubscribe.mail_create_nosubscribe', 'True'))
|
|
res = super(MailThread, self.with_context(mail_post_autofollow=mail_post_autofollow, mail_create_nosubscribe=mail_create_nosubscribe)).message_post(**kwargs)
|
|
return res |