From c7a11c8a08dc7c6003b7af14e089fdca86f304db Mon Sep 17 00:00:00 2001 From: Marc Durepos Date: Wed, 8 Nov 2023 09:07:23 -0500 Subject: [PATCH] New small module to have only one ticket created per email received. --- .../__init__.py | 1 + .../__manifest__.py | 31 +++++++++++++++++++ .../models/__init__.py | 1 + .../models/mail_thread.py | 17 ++++++++++ 4 files changed, 50 insertions(+) create mode 100644 bemade_helpdesk_one_ticket_per_email/__init__.py create mode 100644 bemade_helpdesk_one_ticket_per_email/__manifest__.py create mode 100644 bemade_helpdesk_one_ticket_per_email/models/__init__.py create mode 100644 bemade_helpdesk_one_ticket_per_email/models/mail_thread.py diff --git a/bemade_helpdesk_one_ticket_per_email/__init__.py b/bemade_helpdesk_one_ticket_per_email/__init__.py new file mode 100644 index 0000000..0650744 --- /dev/null +++ b/bemade_helpdesk_one_ticket_per_email/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/bemade_helpdesk_one_ticket_per_email/__manifest__.py b/bemade_helpdesk_one_ticket_per_email/__manifest__.py new file mode 100644 index 0000000..f95f101 --- /dev/null +++ b/bemade_helpdesk_one_ticket_per_email/__manifest__.py @@ -0,0 +1,31 @@ +# +# Bemade Inc. +# +# Copyright (C) 2023-June Bemade Inc. (). +# Author: Marc Durepos (Contact : mdurepos@durpro.com) +# +# This program is under the terms of the Odoo Proprietary License v1.0 (OPL-1) +# It is forbidden to publish, distribute, sublicense, or sell copies of the Software +# or modified copies of the Software. +# +# THE SOFTWARE IS PROVIDED "AS IS", WITHOUT WARRANTY OF ANY KIND, EXPRESS OR +# IMPLIED, INCLUDING BUT NOT LIMITED TO THE WARRANTIES OF MERCHANTABILITY, +# FITNESS FOR A PARTICULAR PURPOSE AND NONINFRINGEMENT. +# IN NO EVENT SHALL THE AUTHORS OR COPYRIGHT HOLDERS BE LIABLE FOR ANY CLAIM, +# DAMAGES OR OTHER LIABILITY, WHETHER IN AN ACTION OF CONTRACT, TORT OR OTHERWISE, +# ARISING FROM, OUT OF OR IN CONNECTION WITH THE SOFTWARE OR THE USE OR OTHER +# DEALINGS IN THE SOFTWARE. +# +{ + 'name': 'Helpdesk One Ticket Per Email', + 'version': '15.0.1.0.0', + 'summary': 'Restrict ticket creation to a single ticket per email received.', + 'category': 'Helpdesk', + 'author': 'Bemade Inc.', + 'website': 'http://www.bemade.org', + 'license': 'OPL-1', + 'depends': ['helpdesk'], + 'data': [], + 'installable': True, + 'auto_install': False +} diff --git a/bemade_helpdesk_one_ticket_per_email/models/__init__.py b/bemade_helpdesk_one_ticket_per_email/models/__init__.py new file mode 100644 index 0000000..b70a9f2 --- /dev/null +++ b/bemade_helpdesk_one_ticket_per_email/models/__init__.py @@ -0,0 +1 @@ +from . import mail_thread diff --git a/bemade_helpdesk_one_ticket_per_email/models/mail_thread.py b/bemade_helpdesk_one_ticket_per_email/models/mail_thread.py new file mode 100644 index 0000000..606bed8 --- /dev/null +++ b/bemade_helpdesk_one_ticket_per_email/models/mail_thread.py @@ -0,0 +1,17 @@ +from odoo import models, fields, api, _ + + +class MailThread(models.AbstractModel): + _inherit = 'mail.thread' + + @api.model + def message_route(self, message, message_dict, model=None, thread_id=None, custom_values=None): + res = super().message_route(message, message_dict, model, thread_id, custom_values) + main_route = None + for tuple in res: + if tuple[0] in ('helpdesk.team', 'helpdesk.ticket'): + if not main_route: + main_route = tuple + else: + res.remove(tuple) + return res