[IMP] helpdesk_create_task_from_ticket: retrieve task service and request type based on ticket category and request type names

This commit is contained in:
Quentin Mondot
2025-02-12 12:03:35 +01:00
committed by Laetitia Da Costa
parent 72a848477e
commit 1fc28287d9
2 changed files with 40 additions and 7 deletions

View File

@@ -12,17 +12,50 @@ class ProjectTask(models.Model):
@api.model
def create(self, vals_list):
user_ids = [self.env.context["default_user_ids"]]
user_ids = [self.env.context["default_user_id"]]
task_service_id, request_type_id = self._match_task_service_and_request_type(
ticket_category_id=self.env.context["default_ticket_category_id"],
ticket_request_type_id=self.env.context["default_ticket_request_type_id"]
)
result = super(ProjectTask, self.with_context(
default_user_ids=user_ids
default_user_ids=user_ids,
default_service_id=task_service_id,
default_request_type_id=request_type_id
)).create(vals_list)
return result
def onchange(self, values, field_name, field_onchange):
user_ids = [self.env.context["default_user_ids"]]
user_ids = [self.env.context["default_user_id"]]
task_service_id, request_type_id = self._match_task_service_and_request_type(
ticket_category_id=self.env.context["default_ticket_category_id"],
ticket_request_type_id=self.env.context["default_ticket_request_type_id"]
)
result = super(ProjectTask, self.with_context(
default_user_ids=user_ids
default_user_ids=user_ids,
default_service_id=task_service_id,
default_request_type_id=request_type_id
)).onchange(values, field_name, field_onchange)
return result
def _match_task_service_and_request_type(
self,
ticket_category_id: int,
ticket_request_type_id: int
) -> tuple[int, int]:
helpdesk_ticket_category = self.env["helpdesk.ticket.category"].search(
[("id", "=", ticket_category_id)],
limit=1
)
task_service = self.env["task.service"].search([("name", "=", helpdesk_ticket_category.name)])
helpdesk_ticket_request_type = self.env["helpdesk.request.type"].search(
[("id", "=", ticket_request_type_id)],
limit=1
)
task_request_type = self.env["request.type"].search([("name", "=", helpdesk_ticket_request_type.name)])
return task_service.id, task_request_type.id

View File

@@ -10,10 +10,10 @@
<attribute name="context">
{
'default_project_id': project_id,
'default_user_ids': user_id,
'default_user_id': user_id,
'default_partner_id': partner_id,
'default_service_id': category_id,
'default_request_type_id': request_type_id,
'default_ticket_category_id': category_id,
'default_ticket_request_type_id': request_type_id,
'default_priority': priority
}
</attribute>