From 7b695b51dd8be9e4ade8e666c6112c555702bb6d Mon Sep 17 00:00:00 2001 From: Quentin Mondot Date: Tue, 28 Jan 2025 16:31:19 +0100 Subject: [PATCH 1/2] [FIX] helpdesk_request_type: corrected bug on attachments in new ticket form The param "max_upload_size" was missing when rendering "helpdesk_mgmt.portal_create_ticket". Instead of added it, I've overloaded the response from helpdesk_mgmt create_new_ticket --- helpdesk_request_type/controllers/main.py | 18 +++--------------- 1 file changed, 3 insertions(+), 15 deletions(-) diff --git a/helpdesk_request_type/controllers/main.py b/helpdesk_request_type/controllers/main.py index 83e7c4b..43d6c5e 100644 --- a/helpdesk_request_type/controllers/main.py +++ b/helpdesk_request_type/controllers/main.py @@ -5,22 +5,10 @@ class HelpdeskTicketControllerRequestType(HelpdeskTicketController): @http.route("/new/ticket", type="http", auth="user", website=True) def create_new_ticket(self, **kw): - categories = http.request.env["helpdesk.ticket.category"].search( - [("active", "=", True)] - ) + res = super(HelpdeskTicketControllerRequestType, self).create_new_ticket(**kw) request_types = http.request.env["helpdesk.request.type"].search([]) - email = http.request.env.user.email - name = http.request.env.user.name - return http.request.render( - "helpdesk_mgmt.portal_create_ticket", - { - "categories": categories, - "teams": self._get_teams(), - "email": email, - "name": name, - "request_types": request_types - }, - ) + res.qcontext["request_types"] = request_types + return res def _prepare_submit_ticket_vals(self, **kw): res = super()._prepare_submit_ticket_vals(**kw) -- 2.49.1 From d89f13dfb6fb092d839a730a7dd857971c05df78 Mon Sep 17 00:00:00 2001 From: Quentin Mondot Date: Fri, 31 Jan 2025 17:10:10 +0100 Subject: [PATCH 2/2] [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 + } + + + + + -- 2.49.1