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 |