33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
|
# Copyright 2021 Tecnativa - David Vidal
|
||
|
# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl.html).
|
||
|
from odoo import models
|
||
|
|
||
|
|
||
|
class MailActivityMixin(models.AbstractModel):
|
||
|
_inherit = "mail.activity.mixin"
|
||
|
|
||
|
def activity_schedule(
|
||
|
self, act_type_xmlid="", date_deadline=None, summary="", note="", **act_values
|
||
|
):
|
||
|
"""With automatic activities, the user onchange won't act so we must
|
||
|
ensure the right group is set and no exceptions are raised due to
|
||
|
user-team missmatch. We can hook onto `act_values` dict as it's passed
|
||
|
to the create activity method.
|
||
|
"""
|
||
|
user_id = act_values.get("user_id")
|
||
|
if user_id:
|
||
|
team = (
|
||
|
self.env["mail.activity"]
|
||
|
.with_context(default_res_model=self._name,)
|
||
|
._get_default_team_id(user_id=user_id)
|
||
|
)
|
||
|
if team:
|
||
|
act_values.update({"team_id": team.id})
|
||
|
return super().activity_schedule(
|
||
|
act_type_xmlid=act_type_xmlid,
|
||
|
date_deadline=date_deadline,
|
||
|
summary=summary,
|
||
|
note=note,
|
||
|
**act_values
|
||
|
)
|