From 4647bf4a23a951afd6ef207e8aafd7d7663c4891 Mon Sep 17 00:00:00 2001 From: matthieusaison Date: Mon, 16 Feb 2026 13:55:05 +0100 Subject: [PATCH 1/3] [IMP] helpdesk_mgmt_sale: add btn create ticket and display sales Add message on sale order --- helpdesk_mgmt_sale/models/helpdesk_ticket.py | 16 +++++++++++++++- helpdesk_mgmt_sale/models/sale_order.py | 19 +++++++++++++++++++ .../views/helpdesk_ticket_views.xml | 3 +++ helpdesk_mgmt_sale/views/sale_order_views.xml | 8 ++++++++ 4 files changed, 45 insertions(+), 1 deletion(-) diff --git a/helpdesk_mgmt_sale/models/helpdesk_ticket.py b/helpdesk_mgmt_sale/models/helpdesk_ticket.py index c7d7a58017..1ecaa92c3c 100644 --- a/helpdesk_mgmt_sale/models/helpdesk_ticket.py +++ b/helpdesk_mgmt_sale/models/helpdesk_ticket.py @@ -1,4 +1,4 @@ -from odoo import api, fields, models +from odoo import _, api, fields, models class HelpdeskTicket(models.Model): @@ -23,3 +23,17 @@ def action_view_sale_orders(self): "default_partner_id": self.partner_id.id, } return action + + @api.model_create_multi + def create(self, vals_list): + tickets = super().create(vals_list) + if self.env.context.get("from_sale_order"): + # only one ticket is possible here + for sale in tickets.sale_order_ids: + sale.message_post( + body=_( + f"Helpdesk Ticket {tickets.name} created by {self.env.user.name}" + ) + ) + + return tickets diff --git a/helpdesk_mgmt_sale/models/sale_order.py b/helpdesk_mgmt_sale/models/sale_order.py index b1e89a4605..bbf61b0369 100644 --- a/helpdesk_mgmt_sale/models/sale_order.py +++ b/helpdesk_mgmt_sale/models/sale_order.py @@ -13,3 +13,22 @@ class SaleOrder(models.Model): def _compute_ticket_count(self): for order in self: order.ticket_count = len(order.ticket_ids) + + def action_create_helpdesk_ticket(self): + self.ensure_one() + + return { + "type": "ir.actions.act_window", + "name": "Create Helpdesk ticket", + "res_model": "helpdesk.ticket", + "view_mode": "form", + "view_id": self.env.ref("helpdesk_mgmt.ticket_view_form").id, + "target": "new", + "context": { + "default_partner_id": self.partner_id.id, + "default_name": self.name, + "default_origin": self.name, + "default_sale_order_ids": [(4, self.id)], + "from_sale_order": True, + }, + } diff --git a/helpdesk_mgmt_sale/views/helpdesk_ticket_views.xml b/helpdesk_mgmt_sale/views/helpdesk_ticket_views.xml index 16455a4745..0681606c32 100644 --- a/helpdesk_mgmt_sale/views/helpdesk_ticket_views.xml +++ b/helpdesk_mgmt_sale/views/helpdesk_ticket_views.xml @@ -17,6 +17,9 @@ + + + diff --git a/helpdesk_mgmt_sale/views/sale_order_views.xml b/helpdesk_mgmt_sale/views/sale_order_views.xml index 6be0789e01..4de0ddfef7 100644 --- a/helpdesk_mgmt_sale/views/sale_order_views.xml +++ b/helpdesk_mgmt_sale/views/sale_order_views.xml @@ -28,6 +28,14 @@ + +