From 6753e34f2d22e66f3734b089abeee775361e5ca6 Mon Sep 17 00:00:00 2001 From: Anjeel Haria Date: Tue, 16 Jul 2024 10:38:44 +0530 Subject: [PATCH 1/7] [ADD] helpdesk_mgmt_merge pre-commit fixes pre-commit fixes --- helpdesk_mgmt_merge/README.rst | 86 ++++ helpdesk_mgmt_merge/__init__.py | 1 + helpdesk_mgmt_merge/__manifest__.py | 17 + helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst | 1 + helpdesk_mgmt_merge/readme/DESCRIPTION.rst | 4 + helpdesk_mgmt_merge/readme/USAGE.rst | 3 + .../security/ir.model.access.csv | 2 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/index.html | 432 ++++++++++++++++++ helpdesk_mgmt_merge/tests/__init__.py | 4 + .../tests/test_helpdesk_mgmt_merge.py | 37 ++ helpdesk_mgmt_merge/wizard/__init__.py | 1 + .../wizard/helpdesk_ticket_merge.py | 127 +++++ .../wizard/helpdesk_ticket_merge_views.xml | 62 +++ 14 files changed, 777 insertions(+) create mode 100644 helpdesk_mgmt_merge/README.rst create mode 100644 helpdesk_mgmt_merge/__init__.py create mode 100644 helpdesk_mgmt_merge/__manifest__.py create mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst create mode 100644 helpdesk_mgmt_merge/readme/DESCRIPTION.rst create mode 100644 helpdesk_mgmt_merge/readme/USAGE.rst create mode 100644 helpdesk_mgmt_merge/security/ir.model.access.csv create mode 100644 helpdesk_mgmt_merge/static/description/icon.png create mode 100644 helpdesk_mgmt_merge/static/description/index.html create mode 100644 helpdesk_mgmt_merge/tests/__init__.py create mode 100644 helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py create mode 100644 helpdesk_mgmt_merge/wizard/__init__.py create mode 100644 helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py create mode 100644 helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst new file mode 100644 index 0000000000..52126ff944 --- /dev/null +++ b/helpdesk_mgmt_merge/README.rst @@ -0,0 +1,86 @@ +===================== +Helpdesk Ticket Merge +===================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png + :target: https://odoo-community.org/page/development-status + :alt: Beta +.. |badge2| image:: https://img.shields.io/badge/licence-AGPL--3-blue.png + :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html + :alt: License: AGPL-3 +.. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhelpdesk-lightgray.png?logo=github + :target: https://github.com/OCA/helpdesk/tree/16.0/helpdesk_mgmt_merge + :alt: OCA/helpdesk +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge + :alt: Translate me on Weblate +.. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=16.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module adds a wizard to merge helpdesk tickets. + + +A wizard that can be called from tree view of helpdesk ticket. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, you need to: + +#. Merge helpdesk ticket + +Bug Tracker +=========== + +Bugs are tracked on `GitHub Issues `_. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +`feedback `_. + +Do not contact contributors directly about support or help with technical issues. + +Credits +======= + +Authors +~~~~~~~ + +* Onestein + +Contributors +~~~~~~~~~~~~ + +* `Onestein `_ + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/helpdesk `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/helpdesk_mgmt_merge/__init__.py b/helpdesk_mgmt_merge/__init__.py new file mode 100644 index 0000000000..40272379f7 --- /dev/null +++ b/helpdesk_mgmt_merge/__init__.py @@ -0,0 +1 @@ +from . import wizard diff --git a/helpdesk_mgmt_merge/__manifest__.py b/helpdesk_mgmt_merge/__manifest__.py new file mode 100644 index 0000000000..776459da04 --- /dev/null +++ b/helpdesk_mgmt_merge/__manifest__.py @@ -0,0 +1,17 @@ +# Copyright 2024 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). +{ + "name": "Helpdesk Ticket Merge", + "summary": "Wizard to merge helpdesk tickets", + "version": "16.0.1.0.0", + "author": "Onestein, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/helpdesk", + "license": "AGPL-3", + "category": "After-Sales", + "depends": ["helpdesk_mgmt"], + "data": [ + "security/ir.model.access.csv", + "wizard/helpdesk_ticket_merge_views.xml", + ], + "installable": True, +} diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst new file mode 100644 index 0000000000..85125abb22 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* `Onestein `_ diff --git a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst b/helpdesk_mgmt_merge/readme/DESCRIPTION.rst new file mode 100644 index 0000000000..9b2325de67 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/DESCRIPTION.rst @@ -0,0 +1,4 @@ +This module adds a wizard to merge helpdesk tickets. + + +A wizard that can be called from tree view of helpdesk ticket. diff --git a/helpdesk_mgmt_merge/readme/USAGE.rst b/helpdesk_mgmt_merge/readme/USAGE.rst new file mode 100644 index 0000000000..ff5ef47eae --- /dev/null +++ b/helpdesk_mgmt_merge/readme/USAGE.rst @@ -0,0 +1,3 @@ +To use this module, you need to: + +#. Merge helpdesk ticket diff --git a/helpdesk_mgmt_merge/security/ir.model.access.csv b/helpdesk_mgmt_merge/security/ir.model.access.csv new file mode 100644 index 0000000000..1dddeedd84 --- /dev/null +++ b/helpdesk_mgmt_merge/security/ir.model.access.csv @@ -0,0 +1,2 @@ +id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink +access_helpdesk_ticket_merge_user,access_helpdesk_ticket_merge_user,model_helpdesk_ticket_merge,helpdesk_mgmt.group_helpdesk_user,1,1,1,1 diff --git a/helpdesk_mgmt_merge/static/description/icon.png b/helpdesk_mgmt_merge/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html new file mode 100644 index 0000000000..6aae1acc7e --- /dev/null +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -0,0 +1,432 @@ + + + + + +Helpdesk Ticket Merge + + + +
+

Helpdesk Ticket Merge

+ + +

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

+

This module adds a wizard to merge helpdesk tickets.

+

A wizard that can be called from tree view of helpdesk ticket.

+

Table of contents

+ +
+

Usage

+

To use this module, you need to:

+
    +
  1. Merge helpdesk ticket
  2. +
+
+
+

Bug Tracker

+

Bugs are tracked on GitHub Issues. +In case of trouble, please check there if your issue has already been reported. +If you spotted it first, help us to smash it by providing a detailed and welcomed +feedback.

+

Do not contact contributors directly about support or help with technical issues.

+
+
+

Credits

+
+

Authors

+
    +
  • Onestein
  • +
+
+ +
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use.

+

This module is part of the OCA/helpdesk project on GitHub.

+

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

+
+
+
+ + diff --git a/helpdesk_mgmt_merge/tests/__init__.py b/helpdesk_mgmt_merge/tests/__init__.py new file mode 100644 index 0000000000..13e1d6a1ff --- /dev/null +++ b/helpdesk_mgmt_merge/tests/__init__.py @@ -0,0 +1,4 @@ +# Copyright 2024 Onestein +# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). + +from . import test_helpdesk_mgmt_merge diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py new file mode 100644 index 0000000000..34d9e268fd --- /dev/null +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -0,0 +1,37 @@ +from odoo.tests import common + + +class TestHelpdeskTicketMerge(common.TransactionCase): + @classmethod + def setUpClass(cls): + super(TestHelpdeskTicketMerge, cls).setUpClass() + cls.HelpdeskTicketMerge = cls.env["helpdesk.ticket.merge"] + cls.ticket_1 = cls._create_ticket(cls, "Ticket 1", "Description for Ticket 1") + cls.ticket_2 = cls._create_ticket(cls, "Ticket 2", "Description for Ticket 2") + + def _create_ticket(self, name, description): + return self.env["helpdesk.ticket"].create( + { + "name": name, + "description": description, + } + ) + + def test_helpdesk_ticket_merge_create_new_ticket(self): + self.ticket_merge_1 = self.HelpdeskTicketMerge.with_context( + active_ids=[self.ticket_1.id, self.ticket_2.id] + ).create({"create_new_ticket": True, "dst_ticket_name": "Test 1"}) + self.ticket_merge_1.merge_tickets() + self.assertEqual(self.ticket_merge_1.dst_ticket_id.name, "Test 1") + + def test_helpdesk_ticket_merge_with_existing_ticket(self): + self.ticket_merge_2 = self.HelpdeskTicketMerge.with_context( + active_ids=[self.ticket_1.id, self.ticket_2.id] + ).create({}) + self.assertFalse(self.ticket_merge_2.user_id) + self.ticket_2.user_id = self.env.user.id + self.ticket_merge_2.dst_ticket_id = self.ticket_2.id + self.ticket_merge_2._onchange_dst_ticket_id() + self.assertTrue(self.ticket_merge_2.user_id) + self.ticket_merge_2.merge_tickets() + self.assertEqual(self.ticket_merge_2.dst_ticket_id.name, "Ticket 2") diff --git a/helpdesk_mgmt_merge/wizard/__init__.py b/helpdesk_mgmt_merge/wizard/__init__.py new file mode 100644 index 0000000000..859f517776 --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/__init__.py @@ -0,0 +1 @@ +from . import helpdesk_ticket_merge diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py new file mode 100644 index 0000000000..74a56c601e --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -0,0 +1,127 @@ +from odoo import _, api, fields, models + + +class HelpdeskTicketMerge(models.TransientModel): + _name = "helpdesk.ticket.merge" + _description = "Helpdesk Ticket Merge" + + ticket_ids = fields.Many2many( + "helpdesk.ticket", string="Tickets to Merge", required=True + ) + user_id = fields.Many2one("res.users", string="Assigned to") + create_new_ticket = fields.Boolean(string="Create a new ticket") + dst_ticket_name = fields.Char(string="New ticket name") + dst_helpdesk_team_id = fields.Many2one( + "helpdesk.ticket.team", string="Destination Helpdesk Team" + ) + dst_ticket_id = fields.Many2one( + "helpdesk.ticket", string="Merge into an existing ticket" + ) + + def merge_tickets(self): + tag_ids = self.ticket_ids.mapped("tag_ids").ids + attachment_ids = self.ticket_ids.mapped("attachment_ids").ids + user_ids = self.ticket_ids.mapped("user_ids").ids + values = { + "tag_ids": [(4, tag_id) for tag_id in tag_ids], + "attachment_ids": [(4, attachment_id) for attachment_id in attachment_ids], + "user_ids": [(4, user_id) for user_id in user_ids], + } + values["user_id"] = self.user_id.id + if self.create_new_ticket: + partner_ids = self.ticket_ids.mapped("partner_id") + ticket_category_ids = self.ticket_ids.mapped("category_id").ids + priorities = self.ticket_ids.mapped("priority") + values.update( + { + "name": self.dst_ticket_name, + "team_id": self.dst_helpdesk_team_id.id, + "description": self._merge_description(self.ticket_ids), + "partner_id": len(set(partner_ids)) == 1 + and partner_ids[0].id + or False, + "partner_name": len(set(partner_ids)) == 1 + and partner_ids[0].name + or False, + "partner_email": len(set(partner_ids)) == 1 + and partner_ids[0].email + or False, + "category_id": len(set(ticket_category_ids)) == 1 + and ticket_category_ids[0] + or False, + "priority": len(set(priorities)) == 1 and priorities[0] or False, + } + ) + + self.dst_ticket_id = self.env["helpdesk.ticket"].create(values) + else: + values["description"] = "\n".join( + ( + self.dst_ticket_id.description or "", + self._merge_description(self.ticket_ids - self.dst_ticket_id), + ) + ) + self.dst_ticket_id.write(values) + + merged_tickets = self.ticket_ids - self.dst_ticket_id + self._merge_followers(merged_tickets) + for ticket in merged_tickets: + self._add_message("to", self.dst_ticket_id.number, ticket) + ticket_numbers = ", ".join(merged_tickets.mapped("number")) + self._add_message("from", ticket_numbers, self.dst_ticket_id) + merged_tickets.write({"active": False}) + + return { + "type": "ir.actions.act_window", + "res_model": "helpdesk.ticket", + "views": [[False, "form"]], + "res_id": self.dst_ticket_id.id, + } + + def _merge_description(self, tickets): + return "\n".join( + tickets.mapped( + lambda ticket: _("Description from ticket %(name)s: %(description)s") + % { + "name": ticket.name, + "description": ticket.description or _("No description"), + } + ) + ) + + def _merge_followers(self, merged_tickets): + self.dst_ticket_id.message_subscribe( + partner_ids=(merged_tickets).mapped("message_partner_ids").ids, + ) + + def default_get(self, fields): + result = super(HelpdeskTicketMerge, self).default_get(fields) + selected_tickets = self.env["helpdesk.ticket"].browse( + self.env.context.get("active_ids", False) + ) + assigned_tickets = selected_tickets.filtered(lambda ticket: ticket.user_id) + result.update( + { + "ticket_ids": selected_tickets.ids, + "user_id": assigned_tickets and assigned_tickets[0].user_id.id or False, + "dst_helpdesk_team_id": selected_tickets[0].team_id.id, + "dst_ticket_id": selected_tickets[0].id, + } + ) + return result + + @api.onchange("dst_ticket_id") + def _onchange_dst_ticket_id(self): + if self.dst_ticket_id.user_id: + self.user_id = self.dst_ticket_id.user_id + + def _add_message(self, way, ticket_numbers, ticket): + """Send a message post with to advise the helpdesk ticket about the merge. + :param way : choice between "from" or "to" + :param ticket_numbers : list of helpdesk ticket numbers to add in the body + :param ticket : the ticket where the message will be posted + """ + subject = "Merge helpdesk ticket" + body = _(f"This helpdesk ticket has been merged {way} {ticket_numbers}") + + ticket.message_post(body=body, subject=subject, content_subtype="plaintext") diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml new file mode 100644 index 0000000000..4c2a21ab18 --- /dev/null +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml @@ -0,0 +1,62 @@ + + + + helpdesk.ticket.merge.form + helpdesk.ticket.merge + +
+ + + + + + + + + + + + + + NB: This will archive the selected tickets (Except the destination ticket) + +
+
+
+
+
+ + + + Merge Helpdesk Tickets + ir.actions.act_window + helpdesk.ticket.merge + form + + new + + +
From e0e2097ecc2b10f522c7666b164384fd49ad8852 Mon Sep 17 00:00:00 2001 From: oca-ci Date: Mon, 20 Jan 2025 07:31:43 +0000 Subject: [PATCH 2/7] [UPD] Update helpdesk_mgmt_merge.pot --- .../i18n/helpdesk_mgmt_merge.pot | 120 ++++++++++++++++++ 1 file changed, 120 insertions(+) create mode 100644 helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot diff --git a/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot b/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot new file mode 100644 index 0000000000..a6dc711ab9 --- /dev/null +++ b/helpdesk_mgmt_merge/i18n/helpdesk_mgmt_merge.pot @@ -0,0 +1,120 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: \n" +"Language-Team: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "" +"NB: This will archive the selected tickets " +"(Except the destination ticket)" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id +msgid "Assigned to" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Cancel" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket +msgid "Create a new ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid +msgid "Created by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date +msgid "Created on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "Description from ticket %(name)s: %(description)s" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id +msgid "Destination Helpdesk Team" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name +msgid "Display Name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge +msgid "Helpdesk Ticket Merge" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id +msgid "ID" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update +msgid "Last Modified on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date +msgid "Last Updated on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge +msgid "Merge Helpdesk Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Merge Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id +msgid "Merge into an existing ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name +msgid "New ticket name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "No description" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids +msgid "Tickets to Merge" +msgstr "" From 56bde9c551e2e8c48f2a6aed67bccd1848e4e80a Mon Sep 17 00:00:00 2001 From: OCA-git-bot Date: Mon, 20 Jan 2025 07:35:04 +0000 Subject: [PATCH 3/7] [BOT] post-merge updates --- helpdesk_mgmt_merge/README.rst | 2 +- helpdesk_mgmt_merge/static/description/index.html | 2 +- 2 files changed, 2 insertions(+), 2 deletions(-) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index 52126ff944..26dac16cf3 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -7,7 +7,7 @@ Helpdesk Ticket Merge !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d + !! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index 6aae1acc7e..4e7fea706f 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -367,7 +367,7 @@

Helpdesk Ticket Merge

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:b0aa8c4c4af1e41895ede779fa024d884619125d0883dc24bad4fd8fd9a84e8d +!! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

This module adds a wizard to merge helpdesk tickets.

From 38277eee52295b45cde4e32ab25a237a63c87ed2 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 20 Jan 2025 14:36:38 +0000 Subject: [PATCH 4/7] Added translation using Weblate (Italian) --- helpdesk_mgmt_merge/i18n/it.po | 121 +++++++++++++++++++++++++++++++++ 1 file changed, 121 insertions(+) create mode 100644 helpdesk_mgmt_merge/i18n/it.po diff --git a/helpdesk_mgmt_merge/i18n/it.po b/helpdesk_mgmt_merge/i18n/it.po new file mode 100644 index 0000000000..cd10ad11c3 --- /dev/null +++ b/helpdesk_mgmt_merge/i18n/it.po @@ -0,0 +1,121 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_mgmt_merge +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: it\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "" +"NB: This will archive the selected tickets " +"(Except the destination ticket)" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id +msgid "Assigned to" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Cancel" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket +msgid "Create a new ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid +msgid "Created by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date +msgid "Created on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "Description from ticket %(name)s: %(description)s" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id +msgid "Destination Helpdesk Team" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name +msgid "Display Name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge +msgid "Helpdesk Ticket Merge" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id +msgid "ID" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update +msgid "Last Modified on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid +msgid "Last Updated by" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date +msgid "Last Updated on" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge +msgid "Merge Helpdesk Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form +msgid "Merge Tickets" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id +msgid "Merge into an existing ticket" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name +msgid "New ticket name" +msgstr "" + +#. module: helpdesk_mgmt_merge +#. odoo-python +#: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 +#, python-format +msgid "No description" +msgstr "" + +#. module: helpdesk_mgmt_merge +#: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids +msgid "Tickets to Merge" +msgstr "" From 1ce17054f83838893acf41660273e1d079648f6f Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 20 Jan 2025 14:38:55 +0000 Subject: [PATCH 5/7] Translated using Weblate (Italian) Currently translated at 100.0% (20 of 20 strings) Translation: helpdesk-16.0/helpdesk-16.0-helpdesk_mgmt_merge Translate-URL: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge/it/ --- helpdesk_mgmt_merge/i18n/it.po | 44 ++++++++++++++++++---------------- 1 file changed, 24 insertions(+), 20 deletions(-) diff --git a/helpdesk_mgmt_merge/i18n/it.po b/helpdesk_mgmt_merge/i18n/it.po index cd10ad11c3..36fa55f6a0 100644 --- a/helpdesk_mgmt_merge/i18n/it.po +++ b/helpdesk_mgmt_merge/i18n/it.po @@ -6,13 +6,15 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-01-20 17:06+0000\n" +"Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" "Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.6.2\n" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form @@ -20,102 +22,104 @@ msgid "" "NB: This will archive the selected tickets " "(Except the destination ticket)" msgstr "" +"NB: questo archivierà i ticket selezionati (" +"tranne il ticket di destinazione)" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__user_id msgid "Assigned to" -msgstr "" +msgstr "Assegnato a" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form msgid "Cancel" -msgstr "" +msgstr "Annulla" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_new_ticket msgid "Create a new ticket" -msgstr "" +msgstr "Crea un nuovo ticket" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_uid msgid "Created by" -msgstr "" +msgstr "Creato da" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__create_date msgid "Created on" -msgstr "" +msgstr "Creato il" #. module: helpdesk_mgmt_merge #. odoo-python #: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 #, python-format msgid "Description from ticket %(name)s: %(description)s" -msgstr "" +msgstr "Descrizione dal ticket %(name)s: %(description)s" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_helpdesk_team_id msgid "Destination Helpdesk Team" -msgstr "" +msgstr "Team assistenza clienti destinazione" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__display_name msgid "Display Name" -msgstr "" +msgstr "Nome visualizzato" #. module: helpdesk_mgmt_merge #: model:ir.model,name:helpdesk_mgmt_merge.model_helpdesk_ticket_merge msgid "Helpdesk Ticket Merge" -msgstr "" +msgstr "Unione ticket assistenza clienti" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__id msgid "ID" -msgstr "" +msgstr "ID" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge____last_update msgid "Last Modified on" -msgstr "" +msgstr "Ultima modifica il" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_uid msgid "Last Updated by" -msgstr "" +msgstr "Ultimo aggiornamento di" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__write_date msgid "Last Updated on" -msgstr "" +msgstr "Ultimo aggiornamento il" #. module: helpdesk_mgmt_merge #: model:ir.actions.act_window,name:helpdesk_mgmt_merge.action_helpdesk_ticket_merge msgid "Merge Helpdesk Tickets" -msgstr "" +msgstr "Unisci ticket assistenza clienti" #. module: helpdesk_mgmt_merge #: model_terms:ir.ui.view,arch_db:helpdesk_mgmt_merge.helpdesk_ticket_merge_view_form msgid "Merge Tickets" -msgstr "" +msgstr "Unisci ticket" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_id msgid "Merge into an existing ticket" -msgstr "" +msgstr "Unisci ad un ticket esistente" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__dst_ticket_name msgid "New ticket name" -msgstr "" +msgstr "Nuovo nome ticket" #. module: helpdesk_mgmt_merge #. odoo-python #: code:addons/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py:0 #, python-format msgid "No description" -msgstr "" +msgstr "Nessuna descrizione" #. module: helpdesk_mgmt_merge #: model:ir.model.fields,field_description:helpdesk_mgmt_merge.field_helpdesk_ticket_merge__ticket_ids msgid "Tickets to Merge" -msgstr "" +msgstr "Ticket da unire" From 71d55a994b7fb3968497fe28f1cbec4a1e325e98 Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Wed, 19 Feb 2025 12:54:27 +0530 Subject: [PATCH 6/7] [IMP] helpdesk_mgmt_merge: pre-commit auto fixes --- helpdesk_mgmt_merge/README.rst | 21 +++++++++---------- helpdesk_mgmt_merge/pyproject.toml | 3 +++ helpdesk_mgmt_merge/readme/CONTRIBUTORS.md | 1 + helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst | 1 - .../{DESCRIPTION.rst => DESCRIPTION.md} | 1 - .../readme/{USAGE.rst => USAGE.md} | 2 +- .../static/description/index.html | 6 +++--- .../tests/test_helpdesk_mgmt_merge.py | 2 +- .../wizard/helpdesk_ticket_merge.py | 2 +- 9 files changed, 20 insertions(+), 19 deletions(-) create mode 100644 helpdesk_mgmt_merge/pyproject.toml create mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.md delete mode 100644 helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst rename helpdesk_mgmt_merge/readme/{DESCRIPTION.rst => DESCRIPTION.md} (99%) rename helpdesk_mgmt_merge/readme/{USAGE.rst => USAGE.md} (56%) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index 26dac16cf3..df688d9d26 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -17,20 +17,19 @@ Helpdesk Ticket Merge :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fhelpdesk-lightgray.png?logo=github - :target: https://github.com/OCA/helpdesk/tree/16.0/helpdesk_mgmt_merge + :target: https://github.com/OCA/helpdesk/tree/17.0/helpdesk_mgmt_merge :alt: OCA/helpdesk .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_mgmt_merge + :target: https://translation.odoo-community.org/projects/helpdesk-17-0/helpdesk-17-0-helpdesk_mgmt_merge :alt: Translate me on Weblate .. |badge5| image:: https://img.shields.io/badge/runboat-Try%20me-875A7B.png - :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=16.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| This module adds a wizard to merge helpdesk tickets. - A wizard that can be called from tree view of helpdesk ticket. **Table of contents** @@ -43,7 +42,7 @@ Usage To use this module, you need to: -#. Merge helpdesk ticket +1. Merge helpdesk ticket Bug Tracker =========== @@ -51,7 +50,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -59,17 +58,17 @@ Credits ======= Authors -~~~~~~~ +------- * Onestein Contributors -~~~~~~~~~~~~ +------------ -* `Onestein `_ +- `Onestein `__ Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -81,6 +80,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/helpdesk `_ project on GitHub. +This module is part of the `OCA/helpdesk `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/helpdesk_mgmt_merge/pyproject.toml b/helpdesk_mgmt_merge/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/helpdesk_mgmt_merge/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..3a4386c7d7 --- /dev/null +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md @@ -0,0 +1 @@ +- [Onestein](http://www.onestein.eu) diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst deleted file mode 100644 index 85125abb22..0000000000 --- a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.rst +++ /dev/null @@ -1 +0,0 @@ -* `Onestein `_ diff --git a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst b/helpdesk_mgmt_merge/readme/DESCRIPTION.md similarity index 99% rename from helpdesk_mgmt_merge/readme/DESCRIPTION.rst rename to helpdesk_mgmt_merge/readme/DESCRIPTION.md index 9b2325de67..dfe795fcd0 100644 --- a/helpdesk_mgmt_merge/readme/DESCRIPTION.rst +++ b/helpdesk_mgmt_merge/readme/DESCRIPTION.md @@ -1,4 +1,3 @@ This module adds a wizard to merge helpdesk tickets. - A wizard that can be called from tree view of helpdesk ticket. diff --git a/helpdesk_mgmt_merge/readme/USAGE.rst b/helpdesk_mgmt_merge/readme/USAGE.md similarity index 56% rename from helpdesk_mgmt_merge/readme/USAGE.rst rename to helpdesk_mgmt_merge/readme/USAGE.md index ff5ef47eae..980ebe6f77 100644 --- a/helpdesk_mgmt_merge/readme/USAGE.rst +++ b/helpdesk_mgmt_merge/readme/USAGE.md @@ -1,3 +1,3 @@ To use this module, you need to: -#. Merge helpdesk ticket +1. Merge helpdesk ticket diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index 4e7fea706f..9fc6ba48e2 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -369,7 +369,7 @@

Helpdesk Ticket Merge

!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:3848c0b7fe0360c78d7aca6c2705918e708cf06afb9b4ec9bfc830d9f3637486 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

+

Beta License: AGPL-3 OCA/helpdesk Translate me on Weblate Try me on Runboat

This module adds a wizard to merge helpdesk tickets.

A wizard that can be called from tree view of helpdesk ticket.

Table of contents

@@ -397,7 +397,7 @@

Bug Tracker

Bugs are tracked on GitHub Issues. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -feedback.

+feedback.

Do not contact contributors directly about support or help with technical issues.

@@ -423,7 +423,7 @@

Maintainers

OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use.

-

This module is part of the OCA/helpdesk project on GitHub.

+

This module is part of the OCA/helpdesk project on GitHub.

You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute.

diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py index 34d9e268fd..0316091f7a 100644 --- a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -4,7 +4,7 @@ class TestHelpdeskTicketMerge(common.TransactionCase): @classmethod def setUpClass(cls): - super(TestHelpdeskTicketMerge, cls).setUpClass() + super().setUpClass() cls.HelpdeskTicketMerge = cls.env["helpdesk.ticket.merge"] cls.ticket_1 = cls._create_ticket(cls, "Ticket 1", "Description for Ticket 1") cls.ticket_2 = cls._create_ticket(cls, "Ticket 2", "Description for Ticket 2") diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py index 74a56c601e..89fbed6eae 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -95,7 +95,7 @@ def _merge_followers(self, merged_tickets): ) def default_get(self, fields): - result = super(HelpdeskTicketMerge, self).default_get(fields) + result = super().default_get(fields) selected_tickets = self.env["helpdesk.ticket"].browse( self.env.context.get("active_ids", False) ) From 922fe630ef9533f481401033ed9c5f2da623c19c Mon Sep 17 00:00:00 2001 From: Bhavesh Heliconia Date: Wed, 19 Feb 2025 12:57:49 +0530 Subject: [PATCH 7/7] [MIG] helpdesk_mgmt_merge: Migration to 17.0 --- helpdesk_mgmt_merge/README.rst | 3 + helpdesk_mgmt_merge/__manifest__.py | 2 +- helpdesk_mgmt_merge/readme/CONTRIBUTORS.md | 2 + .../static/description/index.html | 4 ++ .../tests/test_helpdesk_mgmt_merge.py | 4 +- .../wizard/helpdesk_ticket_merge.py | 20 ++++-- .../wizard/helpdesk_ticket_merge_views.xml | 63 ++++++++++--------- 7 files changed, 59 insertions(+), 39 deletions(-) diff --git a/helpdesk_mgmt_merge/README.rst b/helpdesk_mgmt_merge/README.rst index df688d9d26..3f376552d1 100644 --- a/helpdesk_mgmt_merge/README.rst +++ b/helpdesk_mgmt_merge/README.rst @@ -66,6 +66,9 @@ Contributors ------------ - `Onestein `__ +- `Heliconia Solutions Pvt. Ltd. `__ + + - Bhavesh Heliconia Maintainers ----------- diff --git a/helpdesk_mgmt_merge/__manifest__.py b/helpdesk_mgmt_merge/__manifest__.py index 776459da04..3cb1d53623 100644 --- a/helpdesk_mgmt_merge/__manifest__.py +++ b/helpdesk_mgmt_merge/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Merge", "summary": "Wizard to merge helpdesk tickets", - "version": "16.0.1.0.0", + "version": "17.0.1.0.0", "author": "Onestein, Odoo Community Association (OCA)", "website": "https://github.com/OCA/helpdesk", "license": "AGPL-3", diff --git a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md index 3a4386c7d7..e3142d6147 100644 --- a/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md +++ b/helpdesk_mgmt_merge/readme/CONTRIBUTORS.md @@ -1 +1,3 @@ - [Onestein](http://www.onestein.eu) +- [Heliconia Solutions Pvt. Ltd.](https://www.heliconia.io) + - Bhavesh Heliconia diff --git a/helpdesk_mgmt_merge/static/description/index.html b/helpdesk_mgmt_merge/static/description/index.html index 9fc6ba48e2..54f9c8ee05 100644 --- a/helpdesk_mgmt_merge/static/description/index.html +++ b/helpdesk_mgmt_merge/static/description/index.html @@ -412,6 +412,10 @@

Authors

Contributors

diff --git a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py index 0316091f7a..74b8f92434 100644 --- a/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py +++ b/helpdesk_mgmt_merge/tests/test_helpdesk_mgmt_merge.py @@ -1,7 +1,7 @@ -from odoo.tests import common +from odoo.addons.base.tests.common import BaseCommon -class TestHelpdeskTicketMerge(common.TransactionCase): +class TestHelpdeskTicketMerge(BaseCommon): @classmethod def setUpClass(cls): super().setUpClass() diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py index 89fbed6eae..d864ec0266 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge.py @@ -1,4 +1,4 @@ -from odoo import _, api, fields, models +from odoo import Command, _, api, fields, models class HelpdeskTicketMerge(models.TransientModel): @@ -23,10 +23,13 @@ def merge_tickets(self): attachment_ids = self.ticket_ids.mapped("attachment_ids").ids user_ids = self.ticket_ids.mapped("user_ids").ids values = { - "tag_ids": [(4, tag_id) for tag_id in tag_ids], - "attachment_ids": [(4, attachment_id) for attachment_id in attachment_ids], - "user_ids": [(4, user_id) for user_id in user_ids], + "tag_ids": [Command.link(tag_id) for tag_id in tag_ids], + "attachment_ids": [ + Command.link(attachment_id) for attachment_id in attachment_ids + ], + "user_ids": [Command.link(user_id) for user_id in user_ids], } + values["user_id"] = self.user_id.id if self.create_new_ticket: partner_ids = self.ticket_ids.mapped("partner_id") @@ -102,7 +105,7 @@ def default_get(self, fields): assigned_tickets = selected_tickets.filtered(lambda ticket: ticket.user_id) result.update( { - "ticket_ids": selected_tickets.ids, + "ticket_ids": [Command.set(selected_tickets.ids)], "user_id": assigned_tickets and assigned_tickets[0].user_id.id or False, "dst_helpdesk_team_id": selected_tickets[0].team_id.id, "dst_ticket_id": selected_tickets[0].id, @@ -124,4 +127,9 @@ def _add_message(self, way, ticket_numbers, ticket): subject = "Merge helpdesk ticket" body = _(f"This helpdesk ticket has been merged {way} {ticket_numbers}") - ticket.message_post(body=body, subject=subject, content_subtype="plaintext") + ticket.message_post( + body=body, + subject=subject, + message_type="comment", + subtype_id=self.env.ref("mail.mt_comment").id, + ) diff --git a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml index 4c2a21ab18..9177d37355 100644 --- a/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml +++ b/helpdesk_mgmt_merge/wizard/helpdesk_ticket_merge_views.xml @@ -1,54 +1,57 @@ - - helpdesk.ticket.merge.form - helpdesk.ticket.merge - -
- + + helpdesk.ticket.merge.form + helpdesk.ticket.merge + + + + - - - - - - - + + + + + - - - - + NB: This will archive the selected tickets (Except the destination ticket) - -
-
- -
-
- + + +
+
Merge Helpdesk Tickets