From 72a848477e75a673f3e364c48a15659bb9b5bafd Mon Sep 17 00:00:00 2001 From: Quentin Mondot Date: Fri, 31 Jan 2025 17:10:10 +0100 Subject: [PATCH] [ADD] helpdesk_create_task_from_ticket: this module enriches task information when creating it from a ticket form --- helpdesk_create_task_from_ticket/.gitignore | 2 + helpdesk_create_task_from_ticket/README.md | 53 +++++++++++++++++++ helpdesk_create_task_from_ticket/__init__.py | 1 + .../__manifest__.py | 26 +++++++++ .../models/__init__.py | 1 + .../models/project_task.py | 28 ++++++++++ .../helpdesk_create_task_from_ticket.xml | 23 ++++++++ 7 files changed, 134 insertions(+) create mode 100644 helpdesk_create_task_from_ticket/.gitignore create mode 100644 helpdesk_create_task_from_ticket/README.md create mode 100644 helpdesk_create_task_from_ticket/__init__.py create mode 100644 helpdesk_create_task_from_ticket/__manifest__.py create mode 100644 helpdesk_create_task_from_ticket/models/__init__.py create mode 100644 helpdesk_create_task_from_ticket/models/project_task.py create mode 100644 helpdesk_create_task_from_ticket/views/helpdesk_create_task_from_ticket.xml diff --git a/helpdesk_create_task_from_ticket/.gitignore b/helpdesk_create_task_from_ticket/.gitignore new file mode 100644 index 0000000..6da5887 --- /dev/null +++ b/helpdesk_create_task_from_ticket/.gitignore @@ -0,0 +1,2 @@ +*.*~ +*pyc diff --git a/helpdesk_create_task_from_ticket/README.md b/helpdesk_create_task_from_ticket/README.md new file mode 100644 index 0000000..db74184 --- /dev/null +++ b/helpdesk_create_task_from_ticket/README.md @@ -0,0 +1,53 @@ +================================ +helpdesk_create_task_from_ticket +================================ + +This module changes the behavior of the buttons "create" and "create and edit" of the field `task` in a ticket form. + +It automatically fills up these tasks fields + +``` +Ticket (helpdesk.ticke) / Tâche (project.task) + +Intitulé (name) --> Titre (name) +Utilisateur assigné (user_id) --> Assignés (user_ids) +Projet (project_id) --> Projet (project_id) +Contact (partner_id) --> Client (partner_id) +Catégorie (category_id) --> service (service_id) +Request Type (request_type_id) --> Type de demande (request_type_id) +Priorité (priority) --> Priorité (priority) +``` + +# Installation + +Use Odoo normal module installation procedure to install +`helpdesk_create_task_from_ticket`. + +# Known issues / Roadmap + +A current limitation is that one task can be linked to many tickets. +Thus, the above task fields are filled up at the creation of the task from a ticket form +but are not updated when the linked tickets are updated. + +# Bug Tracker + +Bugs are tracked on `our issues website `\_. In case of +trouble, please check there if your issue has already been +reported. If you spotted it first, help us smashing it by providing a +detailed and welcomed feedback. + +# Credits + +## Contributors + +- Quentin Mondot + +## Funders + +The development of this module has been financially supported by: + +- Elabore (https://elabore.coop) + +## Maintainer + +This module is maintained by Elabore. diff --git a/helpdesk_create_task_from_ticket/__init__.py b/helpdesk_create_task_from_ticket/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/helpdesk_create_task_from_ticket/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/helpdesk_create_task_from_ticket/__manifest__.py b/helpdesk_create_task_from_ticket/__manifest__.py new file mode 100644 index 0000000..ce87f58 --- /dev/null +++ b/helpdesk_create_task_from_ticket/__manifest__.py @@ -0,0 +1,26 @@ +# Copyright 2024 Quentin Mondot +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "helpdesk_create_task_from_ticket", + "version": "16.0.1.0.0", + "author": "Elabore", + "website": "https://elabore.coop", + "maintainer": "Quentin Mondot", + "license": "AGPL-3", + "category": "Tools", + "summary": "This module enriches task information when creating it from a ticket form.", + "depends": [ + "base", + "helpdesk_mgmt", + "helpdesk_mgmt_project", + "helpdesk_request_type", # to create the helpdesk.request.type model and have the field request_type_id in the helpdesk.ticket model + "project_request_data", # to have the fields service_id and request_type_id in the project.task model + "project_task_add_very_high" # to have priority values 2 and 3 on tasks + ], + "data": [ + "views/helpdesk_create_task_from_ticket.xml", + ], + "installable": True, + "auto_install": False, + "application": False, +} diff --git a/helpdesk_create_task_from_ticket/models/__init__.py b/helpdesk_create_task_from_ticket/models/__init__.py new file mode 100644 index 0000000..edf2d36 --- /dev/null +++ b/helpdesk_create_task_from_ticket/models/__init__.py @@ -0,0 +1 @@ +from . import project_task diff --git a/helpdesk_create_task_from_ticket/models/project_task.py b/helpdesk_create_task_from_ticket/models/project_task.py new file mode 100644 index 0000000..e31c635 --- /dev/null +++ b/helpdesk_create_task_from_ticket/models/project_task.py @@ -0,0 +1,28 @@ +from odoo import models, api + + +class ProjectTask(models.Model): + """ + The function "create" is overloaded to adapt the field "user_ids" from the context of helpdesk.ticket to the one of project.task + This function is called when the user clicks on the button "create" in the task field of the ticket form + The function "onchange" is overloaded to adapt the field "user_ids" from the context of helpdesk.ticket to the one of project.task + This function is called when the user clicks on the button "create and modify" in the task field of the ticket form + """ + _inherit = "project.task" + + @api.model + def create(self, vals_list): + user_ids = [self.env.context["default_user_ids"]] + result = super(ProjectTask, self.with_context( + default_user_ids=user_ids + )).create(vals_list) + + return result + + def onchange(self, values, field_name, field_onchange): + user_ids = [self.env.context["default_user_ids"]] + result = super(ProjectTask, self.with_context( + default_user_ids=user_ids + )).onchange(values, field_name, field_onchange) + + return result diff --git a/helpdesk_create_task_from_ticket/views/helpdesk_create_task_from_ticket.xml b/helpdesk_create_task_from_ticket/views/helpdesk_create_task_from_ticket.xml new file mode 100644 index 0000000..6ca1ef7 --- /dev/null +++ b/helpdesk_create_task_from_ticket/views/helpdesk_create_task_from_ticket.xml @@ -0,0 +1,23 @@ + + + + helpdesk.ticket.form.task.from.ticket + helpdesk.ticket + + + + + + { + 'default_project_id': project_id, + 'default_user_ids': user_id, + 'default_partner_id': partner_id, + 'default_service_id': category_id, + 'default_request_type_id': request_type_id, + 'default_priority': priority + } + + + + +