From efecb5f43f25df4193430317353f46665fa57e9e Mon Sep 17 00:00:00 2001 From: Mathieu Benoit Date: Sun, 23 Jul 2023 01:31:05 -0400 Subject: [PATCH] [FIX] helpdesk_mgmt: format email when receive it from new message mail gateway Before, email was like '"Name" ' Now, email is like 'name@company.com' To field partner_email into model helpdesk.ticket --- helpdesk_mgmt/models/helpdesk_ticket.py | 14 +++++++++++++- helpdesk_mgmt/tests/test_helpdesk_ticket.py | 1 + 2 files changed, 14 insertions(+), 1 deletion(-) diff --git a/helpdesk_mgmt/models/helpdesk_ticket.py b/helpdesk_mgmt/models/helpdesk_ticket.py index f417a3d72a..16ea9e39cf 100644 --- a/helpdesk_mgmt/models/helpdesk_ticket.py +++ b/helpdesk_mgmt/models/helpdesk_ticket.py @@ -1,3 +1,5 @@ +import re + from odoo import _, api, fields, models, tools from odoo.exceptions import AccessError @@ -206,6 +208,16 @@ def _track_template(self, tracking): ) return res + def _extract_email(self, label): + if not label: + return "" + emails = re.findall(r"[a-z0-9\.\-+_]+@[a-z0-9\.\-+_]+\.[a-z]+", label) + if len(emails) == 1: + return emails[0] + elif not emails: + return "" + return emails + @api.model def message_new(self, msg, custom_values=None): """Override message_new from mail gateway so we can set correct @@ -216,7 +228,7 @@ def message_new(self, msg, custom_values=None): defaults = { "name": msg.get("subject") or _("No Subject"), "description": msg.get("body"), - "partner_email": msg.get("from"), + "partner_email": self._extract_email(msg.get("from")), "partner_id": msg.get("author_id"), } defaults.update(custom_values) diff --git a/helpdesk_mgmt/tests/test_helpdesk_ticket.py b/helpdesk_mgmt/tests/test_helpdesk_ticket.py index 2f1dc8f0c6..6729d698ff 100644 --- a/helpdesk_mgmt/tests/test_helpdesk_ticket.py +++ b/helpdesk_mgmt/tests/test_helpdesk_ticket.py @@ -75,6 +75,7 @@ def test_helpdesk_ticket_message_new(self): "message_id": msg_id, "subject": title, "email_from": "Bob ", + "from": "Bob ", "to": "jill@example.com", "cc": "sally@example.com", "recipients": "jill@example.com+sally@example.com",