[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:
@@ -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
|
||||||
|
@@ -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>
|
||||||
|
Reference in New Issue
Block a user