[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 @api.model
def create(self, vals_list): 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( 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) )).create(vals_list)
return result return result
def onchange(self, values, field_name, field_onchange): 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( 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) )).onchange(values, field_name, field_onchange)
return result 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"> <attribute name="context">
{ {
'default_project_id': project_id, 'default_project_id': project_id,
'default_user_ids': user_id, 'default_user_id': user_id,
'default_partner_id': partner_id, 'default_partner_id': partner_id,
'default_service_id': category_id, 'default_ticket_category_id': category_id,
'default_request_type_id': request_type_id, 'default_ticket_request_type_id': request_type_id,
'default_priority': priority 'default_priority': priority
} }
</attribute> </attribute>