task-2377882 closes odoo/odoo#64614 Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
25 lines
800 B
Python
25 lines
800 B
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models
|
|
|
|
|
|
class ResPartner(models.Model):
|
|
_inherit = 'res.partner'
|
|
|
|
def _compute_im_status(self):
|
|
super(ResPartner, self)._compute_im_status()
|
|
absent_now = self._get_on_leave_ids()
|
|
for partner in self:
|
|
if partner.id in absent_now:
|
|
if partner.im_status == 'online':
|
|
partner.im_status = 'leave_online'
|
|
elif partner.im_status == 'away':
|
|
partner.im_status = 'leave_away'
|
|
else:
|
|
partner.im_status = 'leave_offline'
|
|
|
|
@api.model
|
|
def _get_on_leave_ids(self):
|
|
return self.env['res.users']._get_on_leave_ids(partner=True)
|