social/mail_activity_team/models/mail_activity.py

35 lines
1.4 KiB
Python
Raw Normal View History

2018-11-27 09:35:55 +01:00
# Copyright 2018 Eficent Business and IT Consulting Services, S.L.
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
from odoo import api, models, fields
class MailActivity(models.Model):
_inherit = "mail.activity"
def _get_default_team_id(self):
res_model = self.env.context.get('default_res_model', False)
model = self.env['ir.model'].search([('model', '=', res_model)],
limit=1)
domain = [('member_ids', 'in', [self.env.uid])]
if res_model:
domain.extend(['|', ('res_model_ids', '=', False),
('res_model_ids', 'in', model.ids)])
return self.env['mail.activity.team'].search(domain, limit=1)
team_id = fields.Many2one('mail.activity.team',
default=lambda s: s._get_default_team_id(),)
@api.onchange('res_model_id', 'user_id')
def _onchange_model_user(self):
res = {'domain': {'team_id': []}}
if self.team_id:
if self.user_id not in self.team_id.member_ids:
self.team_id = False
if self.res_model_id:
res['domain']['team_id'] = [
('res_model_ids', 'in', self.res_model_id.ids)]
if self.user_id:
res['domain']['team_id'] = [
('member_ids', 'in', self.user_id.ids)]
return res