[IMP] helpdesk_user_default_ticket_team: auto-assign team leader on team change
In helpdesk_mgmt v16, ``_compute_user_id`` automatically filled ``user_id`` with ``team_id.alias_user_id`` when the team was set and no user was assigned. This behaviour was removed in v18: the compute now only clears ``user_id`` when the assigned user is not a member of the selected team, without assigning anyone in its place. This commit restores equivalent behaviour using ``team_id.user_id`` (the Team Leader field) instead of ``alias_user_id``: - When ``team_id`` changes and the current ``user_id`` is not a member of the new team, the Team Leader is assigned automatically. - If the team has no leader configured, ``user_id`` is left unchanged to avoid creating unassigned tickets. - ``super()`` is not called: this is a full replacement of the v18 OCA behaviour, not an extension of it. Also updates README.rst to document the new auto-assignment behaviour.
This commit is contained in:
@@ -18,6 +18,14 @@ default helpdesk team per user. It provides:
|
|||||||
* If the assigned team has a default project, the ticket is also linked to
|
* If the assigned team has a default project, the ticket is also linked to
|
||||||
that project.
|
that project.
|
||||||
|
|
||||||
|
* Automatic user assignment when a team is selected:
|
||||||
|
|
||||||
|
* When a team is set or changed on a ticket, if the current assigned user
|
||||||
|
is not a member of that team, the team leader (``team_id.user_id``) is
|
||||||
|
automatically assigned instead.
|
||||||
|
* If the team has no leader configured, the assigned user is left unchanged
|
||||||
|
(to avoid creating unassigned tickets).
|
||||||
|
|
||||||
This is particularly useful for multi-company or multi-team environments where
|
This is particularly useful for multi-company or multi-team environments where
|
||||||
portal users should always have their tickets routed to a specific team.
|
portal users should always have their tickets routed to a specific team.
|
||||||
|
|
||||||
|
|||||||
@@ -4,6 +4,14 @@ from odoo import api, models
|
|||||||
class HelpdeskTicket(models.Model):
|
class HelpdeskTicket(models.Model):
|
||||||
_inherit = "helpdesk.ticket"
|
_inherit = "helpdesk.ticket"
|
||||||
|
|
||||||
|
@api.depends("team_id")
|
||||||
|
def _compute_user_id(self):
|
||||||
|
for ticket in self:
|
||||||
|
if ticket.team_id:
|
||||||
|
if ticket.user_id not in ticket.team_id.user_ids:
|
||||||
|
if ticket.team_id.user_id:
|
||||||
|
ticket.user_id = ticket.team_id.user_id
|
||||||
|
|
||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
for vals in vals_list:
|
for vals in vals_list:
|
||||||
|
|||||||
Reference in New Issue
Block a user