From bee9b93f363de0b07456bd19677931412ff6ade3 Mon Sep 17 00:00:00 2001 From: Antoni Marroig Campomar Date: Fri, 27 Dec 2024 23:53:01 +0100 Subject: [PATCH 01/20] [16.0][ADD] helpdesk_ticket_customer_response: New module helpdesk_ticket_customer_response --- helpdesk_ticket_partner_response/README.rst | 104 +++++++++++++++ helpdesk_ticket_partner_response/__init__.py | 4 + .../__manifest__.py | 18 +++ .../controllers/__init__.py | 3 + .../controllers/mail.py | 95 ++++++++++++++ helpdesk_ticket_partner_response/i18n/ca.po | 58 ++++++++ helpdesk_ticket_partner_response/i18n/es.po | 59 +++++++++ .../i18n/helpdesk_ticket_partner_response.pot | 52 ++++++++ .../models/__init__.py | 3 + .../models/helpdesk_ticket_team.py | 29 ++++ .../readme/CONFIGURE.md | 2 + .../readme/CONTRIBUTORS.md | 2 + .../readme/DESCRIPTION.md | 1 + .../readme/USAGE.md | 1 + .../static/description/icon.png | Bin 0 -> 9455 bytes .../static/description/icon.svg | 79 +++++++++++ .../static/description/index.html | 124 ++++++++++++++++++ .../tests/__init__.py | 3 + .../tests/test_partner_response.py | 78 +++++++++++ .../views/helpdesk_ticket_team.xml | 34 +++++ 20 files changed, 749 insertions(+) create mode 100644 helpdesk_ticket_partner_response/README.rst create mode 100644 helpdesk_ticket_partner_response/__init__.py create mode 100644 helpdesk_ticket_partner_response/__manifest__.py create mode 100644 helpdesk_ticket_partner_response/controllers/__init__.py create mode 100644 helpdesk_ticket_partner_response/controllers/mail.py create mode 100644 helpdesk_ticket_partner_response/i18n/ca.po create mode 100644 helpdesk_ticket_partner_response/i18n/es.po create mode 100644 helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot create mode 100644 helpdesk_ticket_partner_response/models/__init__.py create mode 100644 helpdesk_ticket_partner_response/models/helpdesk_ticket_team.py create mode 100644 helpdesk_ticket_partner_response/readme/CONFIGURE.md create mode 100644 helpdesk_ticket_partner_response/readme/CONTRIBUTORS.md create mode 100644 helpdesk_ticket_partner_response/readme/DESCRIPTION.md create mode 100644 helpdesk_ticket_partner_response/readme/USAGE.md create mode 100644 helpdesk_ticket_partner_response/static/description/icon.png create mode 100644 helpdesk_ticket_partner_response/static/description/icon.svg create mode 100644 helpdesk_ticket_partner_response/static/description/index.html create mode 100644 helpdesk_ticket_partner_response/tests/__init__.py create mode 100644 helpdesk_ticket_partner_response/tests/test_partner_response.py create mode 100644 helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst new file mode 100644 index 0000000000..4dfe313aa1 --- /dev/null +++ b/helpdesk_ticket_partner_response/README.rst @@ -0,0 +1,104 @@ +================================ +Helpdesk Ticket Partner Response +================================ + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:ba0afeaf6a51755decd7ebf7af7aaa74ea7961d668a33ea358408f3452caa97b + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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_ticket_partner_response + :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_ticket_partner_response + :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| + +Autoupdate ticket stage when a partner posts a message on the ticket +from the portal or by sending an email. + +**Table of contents** + +.. contents:: + :local: + +Configuration +============= + +Set ticket source and destination stages from where if a message by the +partner is posted autopdation have to be triggered. To setup this +configuration you have to go to Helpdesk > Settings > Teams > Autoupdate +ticket stage + +Usage +===== + +This module adds the option from helpdesk team to automate the ticket +stage update when a partner posts a message on the same ticket. This is +useful when exists an specific stage for the tickets that his last +update is answer by the partner. + +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 +------- + +* Antoni Marroig +* APSL-Nagarro + +Contributors +------------ + +[APSL-Nagarro](https://apsl.tech): + +- Antoni Marroig + +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. + +.. |maintainer-peluko00| image:: https://github.com/peluko00.png?size=40px + :target: https://github.com/peluko00 + :alt: peluko00 + +Current `maintainer `__: + +|maintainer-peluko00| + +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_ticket_partner_response/__init__.py b/helpdesk_ticket_partner_response/__init__.py new file mode 100644 index 0000000000..f4a659efb5 --- /dev/null +++ b/helpdesk_ticket_partner_response/__init__.py @@ -0,0 +1,4 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import models +from . import controllers diff --git a/helpdesk_ticket_partner_response/__manifest__.py b/helpdesk_ticket_partner_response/__manifest__.py new file mode 100644 index 0000000000..45799cf017 --- /dev/null +++ b/helpdesk_ticket_partner_response/__manifest__.py @@ -0,0 +1,18 @@ +# Copyright 2024 Antoni Marroig(APSL-Nagarro) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +{ + "name": "Helpdesk Ticket Partner Response", + "summary": "Change ticket stage when partner response", + "version": "16.0.1.0.0", + "category": "Helpdesk", + "website": "https://github.com/OCA/helpdesk", + "author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)", + "maintainers": ["peluko00"], + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["helpdesk_mgmt"], + "data": [ + "views/helpdesk_ticket_team.xml", + ], +} diff --git a/helpdesk_ticket_partner_response/controllers/__init__.py b/helpdesk_ticket_partner_response/controllers/__init__.py new file mode 100644 index 0000000000..a5c40ab7f0 --- /dev/null +++ b/helpdesk_ticket_partner_response/controllers/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import mail diff --git a/helpdesk_ticket_partner_response/controllers/mail.py b/helpdesk_ticket_partner_response/controllers/mail.py new file mode 100644 index 0000000000..e5e74948f6 --- /dev/null +++ b/helpdesk_ticket_partner_response/controllers/mail.py @@ -0,0 +1,95 @@ +# Copyright 2024 Antoni Marroig(APSL-Nagarro) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import odoo.http as http +from odoo.http import request +from odoo.tools import plaintext2html + +from odoo.addons.portal.controllers.mail import PortalChatter, _message_post_helper + + +class HelpdeskCustomerResponse(PortalChatter): + def change_status_ticket_from_portal(self, post_values): + if post_values["res_model"] == "helpdesk.ticket": + ticket_id = post_values["res_id"] + ticket = request.env["helpdesk.ticket"].sudo().browse(int(ticket_id)) + if ( + ticket + and request.env.user.partner_id.id == ticket.partner_id.id + and ticket.team_id.autoupdate_ticket_stage + and ticket.stage_id in ticket.team_id.autopupdate_src_stage_ids + ): + ticket.stage_id = ticket.team_id.autopupdate_dest_stage_id.id + + @http.route( + ["/mail/chatter_post"], + type="json", + methods=["POST"], + auth="public", + website=True, + ) + def portal_chatter_post( + self, + res_model, + res_id, + message, + attachment_ids=None, + attachment_tokens=None, + **kw + ): + if not self._portal_post_has_content( + res_model, + res_id, + message, + attachment_ids=attachment_ids, + attachment_tokens=attachment_tokens, + **kw + ): + return + + res_id = int(res_id) + + self._portal_post_check_attachments( + attachment_ids or [], attachment_tokens or [] + ) + + result = {"default_message": message} + # message is received in plaintext and saved in html + if message: + message = plaintext2html(message) + post_values = { + "res_model": res_model, + "res_id": res_id, + "message": message, + "send_after_commit": False, + "attachment_ids": False, # will be added afterward + } + post_values.update( + (fname, kw.get(fname)) for fname in self._portal_post_filter_params() + ) + post_values["_hash"] = kw.get("hash") + message = _message_post_helper(**post_values) + result.update({"default_message_id": message.id}) + + if attachment_ids: + # sudo write the attachment to bypass the read access + # verification in mail message + record = request.env[res_model].browse(res_id) + message_values = {"res_id": res_id, "model": res_model} + attachments = record._message_post_process_attachments( + [], attachment_ids, message_values + ) + + if attachments.get("attachment_ids"): + message.sudo().write(attachments) + + result.update( + { + "default_attachment_ids": message.attachment_ids.sudo().read( + ["id", "name", "mimetype", "file_size", "access_token"] + ) + } + ) + + self.change_status_ticket_from_portal(post_values) + return result diff --git a/helpdesk_ticket_partner_response/i18n/ca.po b/helpdesk_ticket_partner_response/i18n/ca.po new file mode 100644 index 0000000000..13a95064bc --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/ca.po @@ -0,0 +1,58 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-02 09:19+0000\n" +"PO-Revision-Date: 2025-01-02 09:19+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "Etapa d'actualització automàtica de tiquets" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "Etapa de destinació d'actualització automàtica" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "Etapes d'origen d'actualització automàtica" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "Equip del tiquet del centre d'assistència" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" +"Si un soci publica un missatge en un ticket en aquestes etapes, la pròpia " +"etapa de el ticket s'actualitzarà pel que s'estableix a l'etapa de " +"destinació d'actualització automàtica" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "Etapa objectiu a la publicació de missatges del soci" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "Actualitzar l'etapa del ticket quan el soci registra un missatge nou." diff --git a/helpdesk_ticket_partner_response/i18n/es.po b/helpdesk_ticket_partner_response/i18n/es.po new file mode 100644 index 0000000000..e84bd5590a --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/es.po @@ -0,0 +1,59 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 16.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2025-01-02 09:19+0000\n" +"PO-Revision-Date: 2025-01-02 09:19+0000\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: \n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: \n" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "Etapa de actualización automática de tickets" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "Etapa de destino de actualización automática" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "Etapas de origen de actualización automática" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "Equipo de ticket Helpdesk" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" +"Si un socio publica un mensaje en un ticket en esta etapa, la propia etapa " +"de el ticket se actualizará según el establecido en la etapa de destino de " +"actualización automática" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "Etapa objetivo en la publicación del mensaje del socio" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" +"Etapa de actualización del ticket cuando el socio registra un nuevo mensaje." diff --git a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot new file mode 100644 index 0000000000..8b12e40048 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot @@ -0,0 +1,52 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +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_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" diff --git a/helpdesk_ticket_partner_response/models/__init__.py b/helpdesk_ticket_partner_response/models/__init__.py new file mode 100644 index 0000000000..a68d1884da --- /dev/null +++ b/helpdesk_ticket_partner_response/models/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import helpdesk_ticket_team diff --git a/helpdesk_ticket_partner_response/models/helpdesk_ticket_team.py b/helpdesk_ticket_partner_response/models/helpdesk_ticket_team.py new file mode 100644 index 0000000000..9ec12e6058 --- /dev/null +++ b/helpdesk_ticket_partner_response/models/helpdesk_ticket_team.py @@ -0,0 +1,29 @@ +# Copyright 2024 Antoni Marroig(APSL-Nagarro) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import fields, models + + +class HelpdeskTicketTeam(models.Model): + _inherit = "helpdesk.ticket.team" + + autoupdate_ticket_stage = fields.Boolean( + string="Auto Update Ticket Stage", + help="Update ticket stage when a new message is registered by the partner.", + default=False, + ) + autopupdate_src_stage_ids = fields.Many2many( + comodel_name="helpdesk.ticket.stage", + relation="change_stage_partner_response", + string="Autoupdate Source Stages", + help=( + "If a partner posts a message in a ticket on this stages, " + "the own stage of the ticket will be update by the one set on " + "Autoupdate Destination Stage " + ), + ) + autopupdate_dest_stage_id = fields.Many2one( + "helpdesk.ticket.stage", + string="Autoupdate Destination Stage", + help=("Target stage on partner's message post "), + ) diff --git a/helpdesk_ticket_partner_response/readme/CONFIGURE.md b/helpdesk_ticket_partner_response/readme/CONFIGURE.md new file mode 100644 index 0000000000..9814f70715 --- /dev/null +++ b/helpdesk_ticket_partner_response/readme/CONFIGURE.md @@ -0,0 +1,2 @@ +Set ticket source and destination stages from where if a message by the partner is posted autopdation have to be triggered. +To setup this configuration you have to go to Helpdesk > Settings > Teams > Autoupdate ticket stage \ No newline at end of file diff --git a/helpdesk_ticket_partner_response/readme/CONTRIBUTORS.md b/helpdesk_ticket_partner_response/readme/CONTRIBUTORS.md new file mode 100644 index 0000000000..ce96c12a15 --- /dev/null +++ b/helpdesk_ticket_partner_response/readme/CONTRIBUTORS.md @@ -0,0 +1,2 @@ +\[APSL-Nagarro\](): + - Antoni Marroig \<\> diff --git a/helpdesk_ticket_partner_response/readme/DESCRIPTION.md b/helpdesk_ticket_partner_response/readme/DESCRIPTION.md new file mode 100644 index 0000000000..c041a49b49 --- /dev/null +++ b/helpdesk_ticket_partner_response/readme/DESCRIPTION.md @@ -0,0 +1 @@ +Autoupdate ticket stage when a partner posts a message on the ticket from the portal or by sending an email. \ No newline at end of file diff --git a/helpdesk_ticket_partner_response/readme/USAGE.md b/helpdesk_ticket_partner_response/readme/USAGE.md new file mode 100644 index 0000000000..eddfc1908b --- /dev/null +++ b/helpdesk_ticket_partner_response/readme/USAGE.md @@ -0,0 +1 @@ +This module adds the option from helpdesk team to automate the ticket stage update when a partner posts a message on the same ticket. This is useful when exists an specific stage for the tickets that his last update is answer by the partner. diff --git a/helpdesk_ticket_partner_response/static/description/icon.png b/helpdesk_ticket_partner_response/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 zcmW++2RxMjAAjx~&dlBk9S+%}OXg)AGE&Cb*&}d0jUxM@u(PQx^-s)697TX`ehR4?GS^qbkof1cslKgkU)h65qZ9Oc=ml_0temigYLJfnz{IDzUf>bGs4N!v3=Z3jMq&A#7%rM5eQ#dc?k~! zVpnB`o+K7|Al`Q_U;eD$B zfJtP*jH`siUq~{KE)`jP2|#TUEFGRryE2`i0**z#*^6~AI|YzIWy$Cu#CSLW3q=GA z6`?GZymC;dCPk~rBS%eCb`5OLr;RUZ;D`}um=H)BfVIq%7VhiMr)_#G0N#zrNH|__ zc+blN2UAB0=617@>_u;MPHN;P;N#YoE=)R#i$k_`UAA>WWCcEVMh~L_ zj--gtp&|K1#58Yz*AHCTMziU1Jzt_jG0I@qAOHsk$2}yTmVkBp_eHuY$A9)>P6o~I z%aQ?!(GqeQ-Y+b0I(m9pwgi(IIZZzsbMv+9w{PFtd_<_(LA~0H(xz{=FhLB@(1&qHA5EJw1>>=%q2f&^X>IQ{!GJ4e9U z&KlB)z(84HmNgm2hg2C0>WM{E(DdPr+EeU_N@57;PC2&DmGFW_9kP&%?X4}+xWi)( z;)z%wI5>D4a*5XwD)P--sPkoY(a~WBw;E~AW`Yue4kFa^LM3X`8x|}ZUeMnqr}>kH zG%WWW>3ml$Yez?i%)2pbKPI7?5o?hydokgQyZsNEr{a|mLdt;X2TX(#B1j35xPnPW z*bMSSOauW>o;*=kO8ojw91VX!qoOQb)zHJ!odWB}d+*K?#sY_jqPdg{Sm2HdYzdEx zOGVPhVRTGPtv0o}RfVP;Nd(|CB)I;*t&QO8h zFfekr30S!-LHmV_Su-W+rEwYXJ^;6&3|L$mMC8*bQptyOo9;>Qb9Q9`ySe3%V$A*9 zeKEe+b0{#KWGp$F+tga)0RtI)nhMa-K@JS}2krK~n8vJ=Ngm?R!9G<~RyuU0d?nz# z-5EK$o(!F?hmX*2Yt6+coY`6jGbb7tF#6nHA zuKk=GGJ;ZwON1iAfG$E#Y7MnZVmrY|j0eVI(DN_MNFJmyZ|;w4tf@=CCDZ#5N_0K= z$;R~bbk?}TpfDjfB&aiQ$VA}s?P}xPERJG{kxk5~R`iRS(SK5d+Xs9swCozZISbnS zk!)I0>t=A<-^z(cmSFz3=jZ23u13X><0b)P)^1T_))Kr`e!-pb#q&J*Q`p+B6la%C zuVl&0duN<;uOsB3%T9Fp8t{ED108<+W(nOZd?gDnfNBC3>M8WE61$So|P zVvqH0SNtDTcsUdzaMDpT=Ty0pDHHNL@Z0w$Y`XO z2M-_r1S+GaH%pz#Uy0*w$Vdl=X=rQXEzO}d6J^R6zjM1u&c9vYLvLp?W7w(?np9x1 zE_0JSAJCPB%i7p*Wvg)pn5T`8k3-uR?*NT|J`eS#_#54p>!p(mLDvmc-3o0mX*mp_ zN*AeS<>#^-{S%W<*mz^!X$w_2dHWpcJ6^j64qFBft-o}o_Vx80o0>}Du;>kLts;$8 zC`7q$QI(dKYG`Wa8#wl@V4jVWBRGQ@1dr-hstpQL)Tl+aqVpGpbSfN>5i&QMXfiZ> zaA?T1VGe?rpQ@;+pkrVdd{klI&jVS@I5_iz!=UMpTsa~mBga?1r}aRBm1WS;TT*s0f0lY=JBl66Upy)-k4J}lh=P^8(SXk~0xW=T9v*B|gzIhN z>qsO7dFd~mgxAy4V?&)=5ieYq?zi?ZEoj)&2o)RLy=@hbCRcfT5jigwtQGE{L*8<@Yd{zg;CsL5mvzfDY}P-wos_6PfprFVaeqNE%h zKZhLtcQld;ZD+>=nqN~>GvROfueSzJD&BE*}XfU|H&(FssBqY=hPCt`d zH?@s2>I(|;fcW&YM6#V#!kUIP8$Nkdh0A(bEVj``-AAyYgwY~jB zT|I7Bf@%;7aL7Wf4dZ%VqF$eiaC38OV6oy3Z#TER2G+fOCd9Iaoy6aLYbPTN{XRPz z;U!V|vBf%H!}52L2gH_+j;`bTcQRXB+y9onc^wLm5wi3-Be}U>k_u>2Eg$=k!(l@I zcCg+flakT2Nej3i0yn+g+}%NYb?ta;R?(g5SnwsQ49U8Wng8d|{B+lyRcEDvR3+`O{zfmrmvFrL6acVP%yG98X zo&+VBg@px@i)%o?dG(`T;n*$S5*rnyiR#=wW}}GsAcfyQpE|>a{=$Hjg=-*_K;UtD z#z-)AXwSRY?OPefw^iI+ z)AXz#PfEjlwTes|_{sB?4(O@fg0AJ^g8gP}ex9Ucf*@_^J(s_5jJV}c)s$`Myn|Kd z$6>}#q^n{4vN@+Os$m7KV+`}c%4)4pv@06af4-x5#wj!KKb%caK{A&Y#Rfs z-po?Dcb1({W=6FKIUirH&(yg=*6aLCekcKwyfK^JN5{wcA3nhO(o}SK#!CINhI`-I z1)6&n7O&ZmyFMuNwvEic#IiOAwNkR=u5it{B9n2sAJV5pNhar=j5`*N!Na;c7g!l$ z3aYBqUkqqTJ=Re-;)s!EOeij=7SQZ3Hq}ZRds%IM*PtM$wV z@;rlc*NRK7i3y5BETSKuumEN`Xu_8GP1Ri=OKQ$@I^ko8>H6)4rjiG5{VBM>B|%`&&s^)jS|-_95&yc=GqjNo{zFkw%%HHhS~e=s zD#sfS+-?*t|J!+ozP6KvtOl!R)@@-z24}`9{QaVLD^9VCSR2b`b!KC#o;Ki<+wXB6 zx3&O0LOWcg4&rv4QG0)4yb}7BFSEg~=IR5#ZRj8kg}dS7_V&^%#Do==#`u zpy6{ox?jWuR(;pg+f@mT>#HGWHAJRRDDDv~@(IDw&R>9643kK#HN`!1vBJHnC+RM&yIh8{gG2q zA%e*U3|N0XSRa~oX-3EAneep)@{h2vvd3Xvy$7og(sayr@95+e6~Xvi1tUqnIxoIH zVWo*OwYElb#uyW{Imam6f2rGbjR!Y3`#gPqkv57dB6K^wRGxc9B(t|aYDGS=m$&S!NmCtrMMaUg(c zc2qC=2Z`EEFMW-me5B)24AqF*bV5Dr-M5ig(l-WPS%CgaPzs6p_gnCIvTJ=Y<6!gT zVt@AfYCzjjsMEGi=rDQHo0yc;HqoRNnNFeWZgcm?f;cp(6CNylj36DoL(?TS7eU#+ z7&mfr#y))+CJOXQKUMZ7QIdS9@#-}7y2K1{8)cCt0~-X0O!O?Qx#E4Og+;A2SjalQ zs7r?qn0H044=sDN$SRG$arw~n=+T_DNdSrarmu)V6@|?1-ZB#hRn`uilTGPJ@fqEy zGt(f0B+^JDP&f=r{#Y_wi#AVDf-y!RIXU^0jXsFpf>=Ji*TeqSY!H~AMbJdCGLhC) zn7Rx+sXw6uYj;WRYrLd^5IZq@6JI1C^YkgnedZEYy<&4(z%Q$5yv#Boo{AH8n$a zhb4Y3PWdr269&?V%uI$xMcUrMzl=;w<_nm*qr=c3Rl@i5wWB;e-`t7D&c-mcQl7x! zZWB`UGcw=Y2=}~wzrfLx=uet<;m3~=8I~ZRuzvMQUQdr+yTV|ATf1Uuomr__nDf=X zZ3WYJtHp_ri(}SQAPjv+Y+0=fH4krOP@S&=zZ-t1jW1o@}z;xk8 z(Nz1co&El^HK^NrhVHa-_;&88vTU>_J33=%{if;BEY*J#1n59=07jrGQ#IP>@u#3A z;!q+E1Rj3ZJ+!4bq9F8PXJ@yMgZL;>&gYA0%_Kbi8?S=XGM~dnQZQ!yBSgcZhY96H zrWnU;k)qy`rX&&xlDyA%(a1Hhi5CWkmg(`Gb%m(HKi-7Z!LKGRP_B8@`7&hdDy5n= z`OIxqxiVfX@OX1p(mQu>0Ai*v_cTMiw4qRt3~NBvr9oBy0)r>w3p~V0SCm=An6@3n)>@z!|o-$HvDK z|3D2ZMJkLE5loMKl6R^ez@Zz%S$&mbeoqH5`Bb){Ei21q&VP)hWS2tjShfFtGE+$z zzCR$P#uktu+#!w)cX!lWN1XU%K-r=s{|j?)Akf@q#3b#{6cZCuJ~gCxuMXRmI$nGtnH+-h z+GEi!*X=AP<|fG`1>MBdTb?28JYc=fGvAi2I<$B(rs$;eoJCyR6_bc~p!XR@O-+sD z=eH`-ye})I5ic1eL~TDmtfJ|8`0VJ*Yr=hNCd)G1p2MMz4C3^Mj?7;!w|Ly%JqmuW zlIEW^Ft%z?*|fpXda>Jr^1noFZEwFgVV%|*XhH@acv8rdGxeEX{M$(vG{Zw+x(ei@ zmfXb22}8-?Fi`vo-YVrTH*C?a8%M=Hv9MqVH7H^J$KsD?>!SFZ;ZsvnHr_gn=7acz z#W?0eCdVhVMWN12VV^$>WlQ?f;P^{(&pYTops|btm6aj>_Uz+hqpGwB)vWp0Cf5y< zft8-je~nn?W11plq}N)4A{l8I7$!ks_x$PXW-2XaRFswX_BnF{R#6YIwMhAgd5F9X zGmwdadS6(a^fjHtXg8=l?Rc0Sm%hk6E9!5cLVloEy4eh(=FwgP`)~I^5~pBEWo+F6 zSf2ncyMurJN91#cJTy_u8Y}@%!bq1RkGC~-bV@SXRd4F{R-*V`bS+6;W5vZ(&+I<9$;-V|eNfLa5n-6% z2(}&uGRF;p92eS*sE*oR$@pexaqr*meB)VhmIg@h{uzkk$9~qh#cHhw#>O%)b@+(| z^IQgqzuj~Sk(J;swEM-3TrJAPCq9k^^^`q{IItKBRXYe}e0Tdr=Huf7da3$l4PdpwWDop%^}n;dD#K4s#DYA8SHZ z&1!riV4W4R7R#C))JH1~axJ)RYnM$$lIR%6fIVA@zV{XVyx}C+a-Dt8Y9M)^KU0+H zR4IUb2CJ{Hg>CuaXtD50jB(_Tcx=Z$^WYu2u5kubqmwp%drJ6 z?Fo40g!Qd<-l=TQxqHEOuPX0;^z7iX?Ke^a%XT<13TA^5`4Xcw6D@Ur&VT&CUe0d} z1GjOVF1^L@>O)l@?bD~$wzgf(nxX1OGD8fEV?TdJcZc2KoUe|oP1#=$$7ee|xbY)A zDZq+cuTpc(fFdj^=!;{k03C69lMQ(|>uhRfRu%+!k&YOi-3|1QKB z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/helpdesk_ticket_partner_response/static/description/icon.svg b/helpdesk_ticket_partner_response/static/description/icon.svg new file mode 100644 index 0000000000..a7a26d0932 --- /dev/null +++ b/helpdesk_ticket_partner_response/static/description/icon.svg @@ -0,0 +1,79 @@ + + + + + + + + image/svg+xml + + + + + + + + + + + diff --git a/helpdesk_ticket_partner_response/static/description/index.html b/helpdesk_ticket_partner_response/static/description/index.html new file mode 100644 index 0000000000..f92d18ab8d --- /dev/null +++ b/helpdesk_ticket_partner_response/static/description/index.html @@ -0,0 +1,124 @@ +
+
+
+

Module name

+

This module was written to extend the functionality of ... to support ... and allow you to ...

+
+
+
+ +
+
+
+

Installation

+
+
+

To install this module, you need to: +

    +
  • ...
  • +
+

+
+
+
+ + + +
+
+
+
+ +
+
+
+

Configuration

+
+
+

To configure this module, you need to: +

    +
  • ...
  • +
+

+
+
+
+ + + +
+
+
+
+ +
+
+
+

Usage

+
+
+

To use this module, you need to: +

    +
  • ...
  • +
+

+

For further information, please visit: +

+

+
+
+
+ + + +
+
+
+
+ +
+
+
+

Known issues / Roadmap

+
+
+

+

    +
  • ...
  • +
+

+
+
+
+ + + +
+
+
+
+ +
+
+
+

Credits

+
+
+

Contributors

+ +
+
+

Maintainer

+

+ This module is maintained by the OCA.
+ 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.
+ To contribute to this module, please visit http://odoo-community.org.
+ +

+
+
+
diff --git a/helpdesk_ticket_partner_response/tests/__init__.py b/helpdesk_ticket_partner_response/tests/__init__.py new file mode 100644 index 0000000000..189e05392b --- /dev/null +++ b/helpdesk_ticket_partner_response/tests/__init__.py @@ -0,0 +1,3 @@ +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from . import test_partner_response diff --git a/helpdesk_ticket_partner_response/tests/test_partner_response.py b/helpdesk_ticket_partner_response/tests/test_partner_response.py new file mode 100644 index 0000000000..f82168587e --- /dev/null +++ b/helpdesk_ticket_partner_response/tests/test_partner_response.py @@ -0,0 +1,78 @@ +# Copyright 2024 Antoni Marroig(APSL-Nagarro) +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +import json + +from odoo import http + +from odoo.addons.base.tests.common import HttpCaseWithUserPortal + + +class TestCustomerResponse(HttpCaseWithUserPortal): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.helpdesk_team1 = cls.env.ref("helpdesk_mgmt.helpdesk_team_1") + cls.stage_new = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_new") + cls.stage_in_progress = cls.env.ref( + "helpdesk_mgmt.helpdesk_ticket_stage_in_progress" + ) + cls.stage_done = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_done") + cls.helpdesk_team1.update( + { + "autoupdate_ticket_stage": True, + "autopupdate_src_stage_ids": [(4, cls.stage_in_progress.id)], + "autopupdate_dest_stage_id": cls.stage_done.id, + } + ) + + def _create_ticket(self, team, partner): + ticket = self.env["helpdesk.ticket"].create( + { + "name": "Ticket (%s)" % (team.name), + "description": "Description", + "team_id": team.id, + "partner_id": partner.id, + "priority": "1", + } + ) + return ticket + + def _create_message_new(self, ticket): + return self.url_open( + url="/mail/chatter_post", + data=json.dumps( + { + "params": { + "res_model": "helpdesk.ticket", + "res_id": ticket.id, + "message": "Test message", + "csrf_token": http.Request.csrf_token(self), + }, + } + ), + headers={"Content-Type": "application/json"}, + ) + + def test_change_stage_customer_answered(self): + self.authenticate("portal", "portal") + self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) + self.ticket_id.stage_id = self.stage_in_progress + res = self._create_message_new(self.ticket_id) + self.assertEqual(res.status_code, 200) + self.assertEqual(self.ticket_id.stage_id, self.stage_done) + + def test_no_change_stage_customer_answered(self): + self.authenticate("portal", "portal") + self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) + res = self._create_message_new(self.ticket_id) + self.assertEqual(res.status_code, 200) + self.assertEqual(self.ticket_id.stage_id, self.stage_new) + + def test_change_stage_deactivated(self): + self.authenticate("portal", "portal") + self.helpdesk_team1.autoupdate_ticket_stage = False + self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) + res = self._create_message_new(self.ticket_id) + self.assertEqual(res.status_code, 200) + self.assertEqual(self.ticket_id.stage_id, self.stage_new) diff --git a/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml new file mode 100644 index 0000000000..b3862f1e46 --- /dev/null +++ b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml @@ -0,0 +1,34 @@ + + + + helpdesk.ticket.team.form.inherit + helpdesk.ticket.team + + + + + + + + + + + + + + + + + From d96e92043fd3222c5448f30a17482f70e2972263 Mon Sep 17 00:00:00 2001 From: mymage Date: Thu, 2 Jan 2025 16:28:35 +0000 Subject: [PATCH 02/20] Added translation using Weblate (Italian) --- helpdesk_ticket_partner_response/i18n/it.po | 53 +++++++++++++++++++++ 1 file changed, 53 insertions(+) create mode 100644 helpdesk_ticket_partner_response/i18n/it.po diff --git a/helpdesk_ticket_partner_response/i18n/it.po b/helpdesk_ticket_partner_response/i18n/it.po new file mode 100644 index 0000000000..c046d34edb --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/it.po @@ -0,0 +1,53 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +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_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" From 5a983007d8e712fa46d427aeddf9f14f5931bf61 Mon Sep 17 00:00:00 2001 From: mymage Date: Sat, 4 Jan 2025 13:23:32 +0000 Subject: [PATCH 03/20] Translated using Weblate (Italian) Currently translated at 100.0% (7 of 7 strings) Translation: helpdesk-16.0/helpdesk-16.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_ticket_partner_response/it/ --- helpdesk_ticket_partner_response/i18n/it.po | 19 +++++++++++++------ 1 file changed, 13 insertions(+), 6 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/it.po b/helpdesk_ticket_partner_response/i18n/it.po index c046d34edb..040b7915b2 100644 --- a/helpdesk_ticket_partner_response/i18n/it.po +++ b/helpdesk_ticket_partner_response/i18n/it.po @@ -6,34 +6,36 @@ 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-04 16: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_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage #: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit msgid "Auto Update Ticket Stage" -msgstr "" +msgstr "Aggiorna automaticamente fase ticket" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Autoupdate Destination Stage" -msgstr "" +msgstr "Aggiorna automaticamente fase destinazione" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids msgid "Autoupdate Source Stages" -msgstr "" +msgstr "Aggiorna automaticamente fase origine" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" -msgstr "" +msgstr "Team ticket assistenza clienti" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids @@ -41,13 +43,18 @@ msgid "" "If a partner posts a message in a ticket on this stages, the own stage of " "the ticket will be update by the one set on Autoupdate Destination Stage " msgstr "" +"Se un partner invia un messaggio in un ticket in questa fase, la stessa fase " +"del ticket verrà aggiornata a quella impostata in Aggiornamento automatico " +"fase destinazione " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Target stage on partner's message post " -msgstr "" +msgstr "Fase obiettivo nell'invio messaggio del partner " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage msgid "Update ticket stage when a new message is registered by the partner." msgstr "" +"Aggiorna la fase del ticket quando un nuovo messaggio viene registrato dal " +"partner." From 0b7cdcee766dc5fc10cc79920dde32c1411d2203 Mon Sep 17 00:00:00 2001 From: Antoni Marroig Campomar Date: Thu, 9 Jan 2025 13:50:05 +0100 Subject: [PATCH 04/20] [16.0][FIX] helpdesk_ticket_partner_response: Fix mail thread change stage --- helpdesk_ticket_partner_response/README.rst | 2 +- .../__manifest__.py | 2 +- helpdesk_ticket_partner_response/i18n/ca.po | 5 + helpdesk_ticket_partner_response/i18n/es.po | 5 + .../i18n/helpdesk_ticket_partner_response.pot | 5 + helpdesk_ticket_partner_response/i18n/it.po | 5 + .../models/__init__.py | 1 + .../models/mail_thread.py | 27 + .../static/description/index.html | 568 ++++++++++++++---- 9 files changed, 494 insertions(+), 126 deletions(-) create mode 100644 helpdesk_ticket_partner_response/models/mail_thread.py diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst index 4dfe313aa1..88363e4bfb 100644 --- a/helpdesk_ticket_partner_response/README.rst +++ b/helpdesk_ticket_partner_response/README.rst @@ -7,7 +7,7 @@ Helpdesk Ticket Partner Response !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ba0afeaf6a51755decd7ebf7af7aaa74ea7961d668a33ea358408f3452caa97b + !! source digest: sha256:41ec07506f9e5e571fc48a6559155e4f2b4a8dfa0a9be0bf8b4afef9dd4efab9 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/helpdesk_ticket_partner_response/__manifest__.py b/helpdesk_ticket_partner_response/__manifest__.py index 45799cf017..a70ccce193 100644 --- a/helpdesk_ticket_partner_response/__manifest__.py +++ b/helpdesk_ticket_partner_response/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Partner Response", "summary": "Change ticket stage when partner response", - "version": "16.0.1.0.0", + "version": "16.0.1.1.0", "category": "Helpdesk", "website": "https://github.com/OCA/helpdesk", "author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)", diff --git a/helpdesk_ticket_partner_response/i18n/ca.po b/helpdesk_ticket_partner_response/i18n/ca.po index 13a95064bc..8072f2fc1d 100644 --- a/helpdesk_ticket_partner_response/i18n/ca.po +++ b/helpdesk_ticket_partner_response/i18n/ca.po @@ -32,6 +32,11 @@ msgstr "Etapa de destinació d'actualització automàtica" msgid "Autoupdate Source Stages" msgstr "Etapes d'origen d'actualització automàtica" +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" diff --git a/helpdesk_ticket_partner_response/i18n/es.po b/helpdesk_ticket_partner_response/i18n/es.po index e84bd5590a..19b1b6cfb7 100644 --- a/helpdesk_ticket_partner_response/i18n/es.po +++ b/helpdesk_ticket_partner_response/i18n/es.po @@ -32,6 +32,11 @@ msgstr "Etapa de destino de actualización automática" msgid "Autoupdate Source Stages" msgstr "Etapas de origen de actualización automática" +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" diff --git a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot index 8b12e40048..23d59848c8 100644 --- a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot +++ b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot @@ -29,6 +29,11 @@ msgstr "" msgid "Autoupdate Source Stages" msgstr "" +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" diff --git a/helpdesk_ticket_partner_response/i18n/it.po b/helpdesk_ticket_partner_response/i18n/it.po index 040b7915b2..6dae86cbc6 100644 --- a/helpdesk_ticket_partner_response/i18n/it.po +++ b/helpdesk_ticket_partner_response/i18n/it.po @@ -32,6 +32,11 @@ msgstr "Aggiorna automaticamente fase destinazione" msgid "Autoupdate Source Stages" msgstr "Aggiorna automaticamente fase origine" +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" diff --git a/helpdesk_ticket_partner_response/models/__init__.py b/helpdesk_ticket_partner_response/models/__init__.py index a68d1884da..4ee2a1e429 100644 --- a/helpdesk_ticket_partner_response/models/__init__.py +++ b/helpdesk_ticket_partner_response/models/__init__.py @@ -1,3 +1,4 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from . import helpdesk_ticket_team +from . import mail_thread diff --git a/helpdesk_ticket_partner_response/models/mail_thread.py b/helpdesk_ticket_partner_response/models/mail_thread.py new file mode 100644 index 0000000000..41354c85f0 --- /dev/null +++ b/helpdesk_ticket_partner_response/models/mail_thread.py @@ -0,0 +1,27 @@ +from odoo import api, models + + +class MailThread(models.AbstractModel): + _inherit = "mail.thread" + + @api.model + def _message_route_process(self, message, message_dict, routes): + self.change_status_ticket_from_portal(routes) + return super()._message_route_process(message, message_dict, routes) + + def change_status_ticket_from_portal(self, routes): + if routes and routes[0][0] == "helpdesk.ticket": + ticket_id = routes[0][1] + ticket = self.env["helpdesk.ticket"].sudo().browse(int(ticket_id)) + partner_id = ( + self.env["res.users"] + .search([("id", "=", routes[0][3])], limit=1) + .partner_id.id + ) + if ( + ticket + and partner_id == ticket.partner_id.id + and ticket.team_id.autoupdate_ticket_stage + and ticket.stage_id in ticket.team_id.autopupdate_src_stage_ids + ): + ticket.stage_id = ticket.team_id.autopupdate_dest_stage_id.id diff --git a/helpdesk_ticket_partner_response/static/description/index.html b/helpdesk_ticket_partner_response/static/description/index.html index f92d18ab8d..1a55e03562 100644 --- a/helpdesk_ticket_partner_response/static/description/index.html +++ b/helpdesk_ticket_partner_response/static/description/index.html @@ -1,124 +1,444 @@ -
-
-
-

Module name

-

This module was written to extend the functionality of ... to support ... and allow you to ...

-
-
-
- -
-
-
-

Installation

-
-
-

To install this module, you need to: -

    -
  • ...
  • -
-

-
-
-
- - - -
-
-
-
- -
-
-
-

Configuration

-
-
-

To configure this module, you need to: -

    -
  • ...
  • -
-

-
-
-
- - - -
-
-
-
- -
-
-
-

Usage

-
-
-

To use this module, you need to: -

    -
  • ...
  • -
-

-

For further information, please visit: -

-

-
-
-
- - - -
-
-
-
- -
-
-
-

Known issues / Roadmap

-
-
-

-

    -
  • ...
  • -
-

-
-
-
- - - -
-
-
-
- -
-
-
-

Credits

-
-
-

Contributors

- -
-
-

Maintainer

-

- This module is maintained by the OCA.
- 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.
- To contribute to this module, please visit http://odoo-community.org.
- -

-
-
-
+ + + + + +Helpdesk Ticket Partner Response + + + +
+

Helpdesk Ticket Partner Response

+ + +

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

+

Autoupdate ticket stage when a partner posts a message on the ticket +from the portal or by sending an email.

+

Table of contents

+ +
+

Configuration

+

Set ticket source and destination stages from where if a message by the +partner is posted autopdation have to be triggered. To setup this +configuration you have to go to Helpdesk > Settings > Teams > Autoupdate +ticket stage

+
+
+

Usage

+

This module adds the option from helpdesk team to automate the ticket +stage update when a partner posts a message on the same ticket. This is +useful when exists an specific stage for the tickets that his last +update is answer by the partner.

+
+
+

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

+
    +
  • Antoni Marroig
  • +
  • APSL-Nagarro
  • +
+
+
+

Contributors

+

[APSL-Nagarro](https://apsl.tech):

+ +
+
+

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.

+

Current maintainer:

+

peluko00

+

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.

+
+
+
+ + From 631c9130f94e8b7aba358486083e657a65fece92 Mon Sep 17 00:00:00 2001 From: mymage Date: Mon, 10 Feb 2025 07:43:56 +0000 Subject: [PATCH 05/20] Translated using Weblate (Italian) Currently translated at 100.0% (8 of 8 strings) Translation: helpdesk-16.0/helpdesk-16.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-16-0/helpdesk-16-0-helpdesk_ticket_partner_response/it/ --- helpdesk_ticket_partner_response/i18n/it.po | 4 ++-- 1 file changed, 2 insertions(+), 2 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/it.po b/helpdesk_ticket_partner_response/i18n/it.po index 6dae86cbc6..d64adbd681 100644 --- a/helpdesk_ticket_partner_response/i18n/it.po +++ b/helpdesk_ticket_partner_response/i18n/it.po @@ -6,7 +6,7 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" -"PO-Revision-Date: 2025-01-04 16:06+0000\n" +"PO-Revision-Date: 2025-02-10 07:53+0000\n" "Last-Translator: mymage \n" "Language-Team: none\n" "Language: it\n" @@ -35,7 +35,7 @@ msgstr "Aggiorna automaticamente fase origine" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "Discussione e-mail" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team From 8a64149550186b7edc54897179917d24e0358b25 Mon Sep 17 00:00:00 2001 From: Antoni Marroig Campomar Date: Wed, 9 Apr 2025 11:01:51 +0200 Subject: [PATCH 06/20] [IMP] helpdesk_ticket_partner_response: pre-commit auto fixes --- helpdesk_ticket_partner_response/controllers/mail.py | 4 ++-- helpdesk_ticket_partner_response/pyproject.toml | 3 +++ 2 files changed, 5 insertions(+), 2 deletions(-) create mode 100644 helpdesk_ticket_partner_response/pyproject.toml diff --git a/helpdesk_ticket_partner_response/controllers/mail.py b/helpdesk_ticket_partner_response/controllers/mail.py index e5e74948f6..53a3c1cbb0 100644 --- a/helpdesk_ticket_partner_response/controllers/mail.py +++ b/helpdesk_ticket_partner_response/controllers/mail.py @@ -35,7 +35,7 @@ def portal_chatter_post( message, attachment_ids=None, attachment_tokens=None, - **kw + **kw, ): if not self._portal_post_has_content( res_model, @@ -43,7 +43,7 @@ def portal_chatter_post( message, attachment_ids=attachment_ids, attachment_tokens=attachment_tokens, - **kw + **kw, ): return diff --git a/helpdesk_ticket_partner_response/pyproject.toml b/helpdesk_ticket_partner_response/pyproject.toml new file mode 100644 index 0000000000..4231d0cccb --- /dev/null +++ b/helpdesk_ticket_partner_response/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" From 365d5ef3dd24ec3d8da5ede156d339dbb17b00f5 Mon Sep 17 00:00:00 2001 From: Antoni Marroig Campomar Date: Wed, 9 Apr 2025 11:12:17 +0200 Subject: [PATCH 07/20] [MIG] helpdesk_ticket_partner_response: Migration to 17.0 --- helpdesk_ticket_partner_response/README.rst | 12 ++++++------ helpdesk_ticket_partner_response/__manifest__.py | 2 +- .../i18n/helpdesk_ticket_partner_response.pot | 2 +- .../static/description/index.html | 8 ++++---- .../views/helpdesk_ticket_team.xml | 6 +++--- 5 files changed, 15 insertions(+), 15 deletions(-) diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst index 88363e4bfb..f0f0489bac 100644 --- a/helpdesk_ticket_partner_response/README.rst +++ b/helpdesk_ticket_partner_response/README.rst @@ -7,7 +7,7 @@ Helpdesk Ticket Partner Response !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:41ec07506f9e5e571fc48a6559155e4f2b4a8dfa0a9be0bf8b4afef9dd4efab9 + !! source digest: sha256:aba1a0cdf14aa499e0ca1f4584b7685fe7d40ba3701f18cbc93129fb23995720 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -17,13 +17,13 @@ Helpdesk Ticket Partner Response :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_ticket_partner_response + :target: https://github.com/OCA/helpdesk/tree/17.0/helpdesk_ticket_partner_response :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_ticket_partner_response + :target: https://translation.odoo-community.org/projects/helpdesk-17-0/helpdesk-17-0-helpdesk_ticket_partner_response :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| @@ -58,7 +58,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. @@ -99,6 +99,6 @@ Current `maintainer `__: |maintainer-peluko00| -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_ticket_partner_response/__manifest__.py b/helpdesk_ticket_partner_response/__manifest__.py index a70ccce193..43e03c8e9d 100644 --- a/helpdesk_ticket_partner_response/__manifest__.py +++ b/helpdesk_ticket_partner_response/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Partner Response", "summary": "Change ticket stage when partner response", - "version": "16.0.1.1.0", + "version": "17.0.1.0.0", "category": "Helpdesk", "website": "https://github.com/OCA/helpdesk", "author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)", diff --git a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot index 23d59848c8..4642fc1ce2 100644 --- a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot +++ b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 16.0\n" +"Project-Id-Version: Odoo Server 17.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" diff --git a/helpdesk_ticket_partner_response/static/description/index.html b/helpdesk_ticket_partner_response/static/description/index.html index 1a55e03562..5846da1813 100644 --- a/helpdesk_ticket_partner_response/static/description/index.html +++ b/helpdesk_ticket_partner_response/static/description/index.html @@ -367,9 +367,9 @@

Helpdesk Ticket Partner Response

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:41ec07506f9e5e571fc48a6559155e4f2b4a8dfa0a9be0bf8b4afef9dd4efab9 +!! source digest: sha256:aba1a0cdf14aa499e0ca1f4584b7685fe7d40ba3701f18cbc93129fb23995720 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

Autoupdate ticket stage when a partner posts a message on the ticket from the portal or by sending an email.

Table of contents

@@ -405,7 +405,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.

@@ -435,7 +435,7 @@

Maintainers

promote its widespread use.

Current maintainer:

peluko00

-

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_ticket_partner_response/views/helpdesk_ticket_team.xml b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml index b3862f1e46..19b4edb5d1 100644 --- a/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml +++ b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml @@ -13,18 +13,18 @@ From 8e4102c5f1d236e522526b3e9fe3b30f5f568fa7 Mon Sep 17 00:00:00 2001 From: Marcel Savegnago Date: Thu, 22 May 2025 22:36:13 +0000 Subject: [PATCH 08/20] Added translation using Weblate (Portuguese (Brazil)) --- .../i18n/pt_BR.po | 58 +++++++++++++++++++ 1 file changed, 58 insertions(+) create mode 100644 helpdesk_ticket_partner_response/i18n/pt_BR.po diff --git a/helpdesk_ticket_partner_response/i18n/pt_BR.po b/helpdesk_ticket_partner_response/i18n/pt_BR.po new file mode 100644 index 0000000000..8c3219b722 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/pt_BR.po @@ -0,0 +1,58 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 17.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: pt_BR\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_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" From e7d682ded1ec3d3bee6aa01a670f6158e37d77f3 Mon Sep 17 00:00:00 2001 From: Anjeel Haria Date: Thu, 29 May 2025 16:54:20 +0530 Subject: [PATCH 09/20] [IMP] helpdesk_ticket_partner_response: pre-commit auto fixes --- .../views/helpdesk_ticket_team.xml | 5 ++--- 1 file changed, 2 insertions(+), 3 deletions(-) diff --git a/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml index 19b4edb5d1..9ba087b487 100644 --- a/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml +++ b/helpdesk_ticket_partner_response/views/helpdesk_ticket_team.xml @@ -16,13 +16,12 @@ invisible="not autoupdate_ticket_stage" > - - - From fa6343012e97dd7d9d11c78664ba63c82f44d6bf Mon Sep 17 00:00:00 2001 From: Anjeel Haria Date: Fri, 30 May 2025 10:26:01 +0530 Subject: [PATCH 10/20] [MIG] helpdesk_ticket_partner_response: Migration to 18.0 Updated test scripts --- helpdesk_ticket_partner_response/README.rst | 18 +-- helpdesk_ticket_partner_response/__init__.py | 1 - .../__manifest__.py | 2 +- .../controllers/__init__.py | 3 - .../controllers/mail.py | 95 --------------- .../i18n/helpdesk_ticket_partner_response.pot | 7 +- .../models/__init__.py | 1 + .../models/helpdesk_ticket.py | 19 +++ .../models/mail_thread.py | 32 +++-- .../static/description/index.html | 34 +++--- .../tests/test_partner_response.py | 115 +++++++++++++----- 11 files changed, 159 insertions(+), 168 deletions(-) delete mode 100644 helpdesk_ticket_partner_response/controllers/__init__.py delete mode 100644 helpdesk_ticket_partner_response/controllers/mail.py create mode 100644 helpdesk_ticket_partner_response/models/helpdesk_ticket.py diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst index f0f0489bac..3a164c5155 100644 --- a/helpdesk_ticket_partner_response/README.rst +++ b/helpdesk_ticket_partner_response/README.rst @@ -1,3 +1,7 @@ +.. image:: https://odoo-community.org/readme-banner-image + :target: https://odoo-community.org/get-involved?utm_source=readme + :alt: Odoo Community Association + ================================ Helpdesk Ticket Partner Response ================================ @@ -7,23 +11,23 @@ Helpdesk Ticket Partner Response !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:aba1a0cdf14aa499e0ca1f4584b7685fe7d40ba3701f18cbc93129fb23995720 + !! source digest: sha256:518233a4e599df6efa329b659a6c3e55dc9322f055e2136c4209e49a621b8c44 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |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 +.. |badge2| image:: https://img.shields.io/badge/license-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/17.0/helpdesk_ticket_partner_response + :target: https://github.com/OCA/helpdesk/tree/18.0/helpdesk_ticket_partner_response :alt: OCA/helpdesk .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/helpdesk-17-0/helpdesk-17-0-helpdesk_ticket_partner_response + :target: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response :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=17.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=18.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -58,7 +62,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. @@ -99,6 +103,6 @@ Current `maintainer `__: |maintainer-peluko00| -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_ticket_partner_response/__init__.py b/helpdesk_ticket_partner_response/__init__.py index f4a659efb5..31660d6a96 100644 --- a/helpdesk_ticket_partner_response/__init__.py +++ b/helpdesk_ticket_partner_response/__init__.py @@ -1,4 +1,3 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). from . import models -from . import controllers diff --git a/helpdesk_ticket_partner_response/__manifest__.py b/helpdesk_ticket_partner_response/__manifest__.py index 43e03c8e9d..43d504cea6 100644 --- a/helpdesk_ticket_partner_response/__manifest__.py +++ b/helpdesk_ticket_partner_response/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Partner Response", "summary": "Change ticket stage when partner response", - "version": "17.0.1.0.0", + "version": "18.0.1.0.0", "category": "Helpdesk", "website": "https://github.com/OCA/helpdesk", "author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)", diff --git a/helpdesk_ticket_partner_response/controllers/__init__.py b/helpdesk_ticket_partner_response/controllers/__init__.py deleted file mode 100644 index a5c40ab7f0..0000000000 --- a/helpdesk_ticket_partner_response/controllers/__init__.py +++ /dev/null @@ -1,3 +0,0 @@ -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -from . import mail diff --git a/helpdesk_ticket_partner_response/controllers/mail.py b/helpdesk_ticket_partner_response/controllers/mail.py deleted file mode 100644 index 53a3c1cbb0..0000000000 --- a/helpdesk_ticket_partner_response/controllers/mail.py +++ /dev/null @@ -1,95 +0,0 @@ -# Copyright 2024 Antoni Marroig(APSL-Nagarro) -# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). - -import odoo.http as http -from odoo.http import request -from odoo.tools import plaintext2html - -from odoo.addons.portal.controllers.mail import PortalChatter, _message_post_helper - - -class HelpdeskCustomerResponse(PortalChatter): - def change_status_ticket_from_portal(self, post_values): - if post_values["res_model"] == "helpdesk.ticket": - ticket_id = post_values["res_id"] - ticket = request.env["helpdesk.ticket"].sudo().browse(int(ticket_id)) - if ( - ticket - and request.env.user.partner_id.id == ticket.partner_id.id - and ticket.team_id.autoupdate_ticket_stage - and ticket.stage_id in ticket.team_id.autopupdate_src_stage_ids - ): - ticket.stage_id = ticket.team_id.autopupdate_dest_stage_id.id - - @http.route( - ["/mail/chatter_post"], - type="json", - methods=["POST"], - auth="public", - website=True, - ) - def portal_chatter_post( - self, - res_model, - res_id, - message, - attachment_ids=None, - attachment_tokens=None, - **kw, - ): - if not self._portal_post_has_content( - res_model, - res_id, - message, - attachment_ids=attachment_ids, - attachment_tokens=attachment_tokens, - **kw, - ): - return - - res_id = int(res_id) - - self._portal_post_check_attachments( - attachment_ids or [], attachment_tokens or [] - ) - - result = {"default_message": message} - # message is received in plaintext and saved in html - if message: - message = plaintext2html(message) - post_values = { - "res_model": res_model, - "res_id": res_id, - "message": message, - "send_after_commit": False, - "attachment_ids": False, # will be added afterward - } - post_values.update( - (fname, kw.get(fname)) for fname in self._portal_post_filter_params() - ) - post_values["_hash"] = kw.get("hash") - message = _message_post_helper(**post_values) - result.update({"default_message_id": message.id}) - - if attachment_ids: - # sudo write the attachment to bypass the read access - # verification in mail message - record = request.env[res_model].browse(res_id) - message_values = {"res_id": res_id, "model": res_model} - attachments = record._message_post_process_attachments( - [], attachment_ids, message_values - ) - - if attachments.get("attachment_ids"): - message.sudo().write(attachments) - - result.update( - { - "default_attachment_ids": message.attachment_ids.sudo().read( - ["id", "name", "mimetype", "file_size", "access_token"] - ) - } - ) - - self.change_status_ticket_from_portal(post_values) - return result diff --git a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot index 4642fc1ce2..46af89238f 100644 --- a/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot +++ b/helpdesk_ticket_partner_response/i18n/helpdesk_ticket_partner_response.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 17.0\n" +"Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -34,6 +34,11 @@ msgstr "" msgid "Email Thread" msgstr "" +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket +msgid "Helpdesk Ticket" +msgstr "" + #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" diff --git a/helpdesk_ticket_partner_response/models/__init__.py b/helpdesk_ticket_partner_response/models/__init__.py index 4ee2a1e429..5365f12442 100644 --- a/helpdesk_ticket_partner_response/models/__init__.py +++ b/helpdesk_ticket_partner_response/models/__init__.py @@ -1,4 +1,5 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). +from . import helpdesk_ticket from . import helpdesk_ticket_team from . import mail_thread diff --git a/helpdesk_ticket_partner_response/models/helpdesk_ticket.py b/helpdesk_ticket_partner_response/models/helpdesk_ticket.py new file mode 100644 index 0000000000..3e27648614 --- /dev/null +++ b/helpdesk_ticket_partner_response/models/helpdesk_ticket.py @@ -0,0 +1,19 @@ +# Copyright 2025 Onestein - Anjeel Haria +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). + +from odoo import models + + +class HelpdeskTicket(models.Model): + _inherit = "helpdesk.ticket" + + def _message_post_after_hook(self, message, msg_vals): + """Change status of ticket if the required conditions are satisfied""" + if ( + self + and self.env.user.partner_id.id == self.partner_id.id + and self.team_id.autoupdate_ticket_stage + and self.stage_id in self.team_id.autopupdate_src_stage_ids + ): + self.sudo().stage_id = self.team_id.autopupdate_dest_stage_id.id + return super()._message_post_after_hook(message, msg_vals) diff --git a/helpdesk_ticket_partner_response/models/mail_thread.py b/helpdesk_ticket_partner_response/models/mail_thread.py index 41354c85f0..9890f6bb50 100644 --- a/helpdesk_ticket_partner_response/models/mail_thread.py +++ b/helpdesk_ticket_partner_response/models/mail_thread.py @@ -12,16 +12,22 @@ def _message_route_process(self, message, message_dict, routes): def change_status_ticket_from_portal(self, routes): if routes and routes[0][0] == "helpdesk.ticket": ticket_id = routes[0][1] - ticket = self.env["helpdesk.ticket"].sudo().browse(int(ticket_id)) - partner_id = ( - self.env["res.users"] - .search([("id", "=", routes[0][3])], limit=1) - .partner_id.id - ) - if ( - ticket - and partner_id == ticket.partner_id.id - and ticket.team_id.autoupdate_ticket_stage - and ticket.stage_id in ticket.team_id.autopupdate_src_stage_ids - ): - ticket.stage_id = ticket.team_id.autopupdate_dest_stage_id.id + if ticket_id: + ticket = self.env["helpdesk.ticket"].sudo().browse(int(ticket_id)) + if ticket and routes[0][3]: + partner_id = ( + self.env["res.users"] + .search([("id", "=", routes[0][3])], limit=1) + .partner_id.id + ) + if partner_id: + if ( + ticket + and partner_id == ticket.partner_id.id + and ticket.team_id.autoupdate_ticket_stage + and ticket.stage_id + in ticket.team_id.autopupdate_src_stage_ids + ): + ticket.stage_id = ( + ticket.team_id.autopupdate_dest_stage_id.id + ) diff --git a/helpdesk_ticket_partner_response/static/description/index.html b/helpdesk_ticket_partner_response/static/description/index.html index 5846da1813..e89691337d 100644 --- a/helpdesk_ticket_partner_response/static/description/index.html +++ b/helpdesk_ticket_partner_response/static/description/index.html @@ -3,7 +3,7 @@ -Helpdesk Ticket Partner Response +README.rst -
-

Helpdesk Ticket Partner Response

+
+ + +Odoo Community Association + +
+

Helpdesk Ticket Partner Response

-

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

Autoupdate ticket stage when a partner posts a message on the ticket from the portal or by sending an email.

Table of contents

@@ -387,45 +392,45 @@

Helpdesk Ticket Partner Response

-

Configuration

+

Configuration

Set ticket source and destination stages from where if a message by the partner is posted autopdation have to be triggered. To setup this configuration you have to go to Helpdesk > Settings > Teams > Autoupdate ticket stage

-

Usage

+

Usage

This module adds the option from helpdesk team to automate the ticket stage update when a partner posts a message on the same ticket. This is useful when exists an specific stage for the tickets that his last update is answer by the partner.

-

Bug Tracker

+

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.

-

Credits

+

Credits

-

Authors

+

Authors

  • Antoni Marroig
  • APSL-Nagarro
-

Contributors

+

Contributors

[APSL-Nagarro](https://apsl.tech):

-

Maintainers

+

Maintainers

This module is maintained by the OCA.

Odoo Community Association @@ -435,10 +440,11 @@

Maintainers

promote its widespread use.

Current maintainer:

peluko00

-

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_ticket_partner_response/tests/test_partner_response.py b/helpdesk_ticket_partner_response/tests/test_partner_response.py index f82168587e..5e8fc2e252 100644 --- a/helpdesk_ticket_partner_response/tests/test_partner_response.py +++ b/helpdesk_ticket_partner_response/tests/test_partner_response.py @@ -1,11 +1,47 @@ # Copyright 2024 Antoni Marroig(APSL-Nagarro) # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl). -import json +from odoo.addons.base.tests.common import HttpCaseWithUserPortal -from odoo import http +MAIL_TEMPLATE = """Return-Path: +To: {to} +Received: by mail1.openerp.com (Postfix, from userid 10002) + id 5DF9ABFB2A; Fri, 30 May 2025 16:16:39 +0200 (CEST) +From: {email_from} +Subject: {subject} +MIME-Version: 1.0 +Content-Type: multipart/alternative; + boundary="----=_Part_4200734_24778174.1344608186754" +Date: Fri, 30 May 2025 14:16:26 +0000 +Message-ID: {msg_id} +------=_Part_4200734_24778174.1344608186754 +Content-Type: text/plain; charset=utf-8 +Content-Transfer-Encoding: quoted-printable -from odoo.addons.base.tests.common import HttpCaseWithUserPortal +Thanks for the update. Please go ahead ! + +-- +Your Dear Customer +------=_Part_4200734_24778174.1344608186754 +Content-Type: text/html; charset=utf-8 +Content-Transfer-Encoding: quoted-printable + + + + =20 + + =20 + =20 + +

Thanks for the update. Please go ahead !

+ +

--
+ Your Dear Customer +

+ + +------=_Part_4200734_24778174.1344608186754-- +""" class TestCustomerResponse(HttpCaseWithUserPortal): @@ -28,51 +64,64 @@ def setUpClass(cls): def _create_ticket(self, team, partner): ticket = self.env["helpdesk.ticket"].create( - { - "name": "Ticket (%s)" % (team.name), - "description": "Description", - "team_id": team.id, - "partner_id": partner.id, - "priority": "1", - } + [ + { + "name": f"Ticket ({team.name})", + "description": "Description", + "team_id": team.id, + "partner_id": partner.id, + "priority": "1", + } + ] ) return ticket - def _create_message_new(self, ticket): - return self.url_open( - url="/mail/chatter_post", - data=json.dumps( - { - "params": { - "res_model": "helpdesk.ticket", - "res_id": ticket.id, - "message": "Test message", - "csrf_token": http.Request.csrf_token(self), - }, - } - ), - headers={"Content-Type": "application/json"}, + def message_process(self): + MailThread = self.env["mail.thread"] + message = MAIL_TEMPLATE.format( + to=self.env.user.email, + subject="Your ticket has been created !!", + email_from=self.partner_portal.email, + msg_id="168242744424.20.2028152230359369389@dd607af32154", + ) + MailThread.message_process( + model="helpdesk.ticket", + message=message, + save_original=False, + strip_attachments=True, + thread_id=self.ticket.id, ) def test_change_stage_customer_answered(self): - self.authenticate("portal", "portal") self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) self.ticket_id.stage_id = self.stage_in_progress - res = self._create_message_new(self.ticket_id) - self.assertEqual(res.status_code, 200) + self.ticket_id.with_user(self.user_portal).message_post(body="Test message") self.assertEqual(self.ticket_id.stage_id, self.stage_done) def test_no_change_stage_customer_answered(self): - self.authenticate("portal", "portal") self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) - res = self._create_message_new(self.ticket_id) - self.assertEqual(res.status_code, 200) + self.ticket_id.with_user(self.user_portal).message_post(body="Test message") self.assertEqual(self.ticket_id.stage_id, self.stage_new) def test_change_stage_deactivated(self): - self.authenticate("portal", "portal") self.helpdesk_team1.autoupdate_ticket_stage = False self.ticket_id = self._create_ticket(self.helpdesk_team1, self.partner_portal) - res = self._create_message_new(self.ticket_id) - self.assertEqual(res.status_code, 200) + self.ticket_id.with_user(self.user_portal).message_post(body="Test message") self.assertEqual(self.ticket_id.stage_id, self.stage_new) + + def test_change_stage_customer_answered_through_mail(self): + self.ticket = self._create_ticket(self.helpdesk_team1, self.partner_portal) + self.ticket.stage_id = self.stage_in_progress + self.message_process() + self.assertEqual(self.ticket.stage_id, self.stage_done) + + def test_no_change_stage_customer_answered_through_mail(self): + self.ticket = self._create_ticket(self.helpdesk_team1, self.partner_portal) + self.message_process() + self.assertEqual(self.ticket.stage_id, self.stage_new) + + def test_change_stage_deactivated_through_mail(self): + self.helpdesk_team1.autoupdate_ticket_stage = False + self.ticket = self._create_ticket(self.helpdesk_team1, self.partner_portal) + self.message_process() + self.assertEqual(self.ticket.stage_id, self.stage_new) From 48fa182caadfb723b771b16c4723b34f10f8c262 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bet=C3=BCl=20=C3=96=C4=9Fmen?= Date: Mon, 1 Dec 2025 07:18:39 +0000 Subject: [PATCH 11/20] Added translation using Weblate (Turkish) --- helpdesk_ticket_partner_response/i18n/tr.po | 63 +++++++++++++++++++++ 1 file changed, 63 insertions(+) create mode 100644 helpdesk_ticket_partner_response/i18n/tr.po diff --git a/helpdesk_ticket_partner_response/i18n/tr.po b/helpdesk_ticket_partner_response/i18n/tr.po new file mode 100644 index 0000000000..660d21fce3 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/tr.po @@ -0,0 +1,63 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: tr\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_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket +msgid "Helpdesk Ticket" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" From 734b15547f1d61d3fde96fdcdf688188e3429c94 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Bet=C3=BCl=20=C3=96=C4=9Fmen?= Date: Mon, 1 Dec 2025 07:20:09 +0000 Subject: [PATCH 12/20] Translated using Weblate (Turkish) Currently translated at 100.0% (9 of 9 strings) Translation: helpdesk-18.0/helpdesk-18.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response/tr/ --- helpdesk_ticket_partner_response/i18n/tr.po | 23 ++++++++++++++------- 1 file changed, 15 insertions(+), 8 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/tr.po b/helpdesk_ticket_partner_response/i18n/tr.po index 660d21fce3..45fb5b7207 100644 --- a/helpdesk_ticket_partner_response/i18n/tr.po +++ b/helpdesk_ticket_partner_response/i18n/tr.po @@ -6,44 +6,46 @@ msgid "" msgstr "" "Project-Id-Version: Odoo Server 18.0\n" "Report-Msgid-Bugs-To: \n" -"Last-Translator: Automatically generated\n" +"PO-Revision-Date: 2025-12-01 09:42+0000\n" +"Last-Translator: Betül Öğmen \n" "Language-Team: none\n" "Language: tr\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.10.4\n" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage #: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit msgid "Auto Update Ticket Stage" -msgstr "" +msgstr "Otomatik Güncelleme Destek Kaydı Aşaması" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Autoupdate Destination Stage" -msgstr "" +msgstr "Otomatik Güncelleme Hedef Aşaması" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids msgid "Autoupdate Source Stages" -msgstr "" +msgstr "Otomatik Güncelleme Kaynak Aşamaları" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "E-Posta İşlemleri" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket msgid "Helpdesk Ticket" -msgstr "" +msgstr "Yardım Masası Talebi" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team msgid "Helpdesk Ticket Team" -msgstr "" +msgstr "Yardım Masası Destek Kayıtı Ekibi" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids @@ -51,13 +53,18 @@ msgid "" "If a partner posts a message in a ticket on this stages, the own stage of " "the ticket will be update by the one set on Autoupdate Destination Stage " msgstr "" +"Bir iş ortağı bu aşamalardaki bir destek kaydına bir mesaj gönderirse, " +"destek kaydın kendi aşaması Otomatik Güncelleme Hedef Aşamasında ayarlanan " +"aşama ile güncellenecektir. " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Target stage on partner's message post " -msgstr "" +msgstr "İş ortağının mesaj gönderisindeki hedef aşama " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage msgid "Update ticket stage when a new message is registered by the partner." msgstr "" +"Partner tarafından yeni bir mesaj kaydedildiğinde destek kaydı aşamasını " +"güncelle." From c421501b3398bf01d593f43bc56611a42dbe1f97 Mon Sep 17 00:00:00 2001 From: myacc-pro Date: Wed, 17 Dec 2025 21:33:19 +0000 Subject: [PATCH 13/20] Added translation using Weblate (Latvian) --- helpdesk_ticket_partner_response/i18n/lv.po | 64 +++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 helpdesk_ticket_partner_response/i18n/lv.po diff --git a/helpdesk_ticket_partner_response/i18n/lv.po b/helpdesk_ticket_partner_response/i18n/lv.po new file mode 100644 index 0000000000..3299e42014 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/lv.po @@ -0,0 +1,64 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: lv\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=3; plural=(n % 10 == 0 || n % 100 >= 11 && n % 100 <= " +"19) ? 0 : ((n % 10 == 1 && n % 100 != 11) ? 1 : 2);\n" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket +msgid "Helpdesk Ticket" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" From b68b016f1c12116d496e92cdc9bac44d0d321d5b Mon Sep 17 00:00:00 2001 From: Ed-Spain Date: Sun, 10 May 2026 09:56:09 +0000 Subject: [PATCH 14/20] Translated using Weblate (Spanish) Currently translated at 100.0% (8 of 8 strings) Translation: helpdesk-18.0/helpdesk-18.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response/es/ --- helpdesk_ticket_partner_response/i18n/es.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/es.po b/helpdesk_ticket_partner_response/i18n/es.po index 19b1b6cfb7..288da7a829 100644 --- a/helpdesk_ticket_partner_response/i18n/es.po +++ b/helpdesk_ticket_partner_response/i18n/es.po @@ -7,14 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-02 09:19+0000\n" -"PO-Revision-Date: 2025-01-02 09:19+0000\n" -"Last-Translator: \n" +"PO-Revision-Date: 2026-05-10 10:19+0000\n" +"Last-Translator: Ed-Spain \n" "Language-Team: \n" -"Language: \n" +"Language: es\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.15.2\n" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage @@ -35,7 +36,7 @@ msgstr "Etapas de origen de actualización automática" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "Hilo de correo" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team From cbca98ebfdb6901e1ce52bcb2d4a968ba80565b7 Mon Sep 17 00:00:00 2001 From: QuiJoQuim Date: Tue, 12 May 2026 21:13:48 +0000 Subject: [PATCH 15/20] Translated using Weblate (Catalan) Currently translated at 100.0% (8 of 8 strings) Translation: helpdesk-18.0/helpdesk-18.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response/ca/ --- helpdesk_ticket_partner_response/i18n/ca.po | 11 ++++++----- 1 file changed, 6 insertions(+), 5 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/ca.po b/helpdesk_ticket_partner_response/i18n/ca.po index 8072f2fc1d..be42a9a926 100644 --- a/helpdesk_ticket_partner_response/i18n/ca.po +++ b/helpdesk_ticket_partner_response/i18n/ca.po @@ -7,14 +7,15 @@ msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-02 09:19+0000\n" -"PO-Revision-Date: 2025-01-02 09:19+0000\n" -"Last-Translator: \n" +"PO-Revision-Date: 2026-05-12 23:45+0000\n" +"Last-Translator: QuiJoQuim \n" "Language-Team: \n" -"Language: \n" +"Language: ca\n" "MIME-Version: 1.0\n" "Content-Type: text/plain; charset=UTF-8\n" "Content-Transfer-Encoding: \n" -"Plural-Forms: \n" +"Plural-Forms: nplurals=2; plural=n != 1;\n" +"X-Generator: Weblate 5.15.2\n" #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage @@ -35,7 +36,7 @@ msgstr "Etapes d'origen d'actualització automàtica" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread msgid "Email Thread" -msgstr "" +msgstr "Fil de correus" #. module: helpdesk_ticket_partner_response #: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team From d46bee0b50505ec10405cdf06168df27eeca9537 Mon Sep 17 00:00:00 2001 From: QuiJoQuim Date: Tue, 12 May 2026 21:23:02 +0000 Subject: [PATCH 16/20] Translated using Weblate (Spanish) Currently translated at 100.0% (8 of 8 strings) Translation: helpdesk-18.0/helpdesk-18.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response/es/ --- helpdesk_ticket_partner_response/i18n/es.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/es.po b/helpdesk_ticket_partner_response/i18n/es.po index 288da7a829..28e81c77a5 100644 --- a/helpdesk_ticket_partner_response/i18n/es.po +++ b/helpdesk_ticket_partner_response/i18n/es.po @@ -7,8 +7,8 @@ msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-02 09:19+0000\n" -"PO-Revision-Date: 2026-05-10 10:19+0000\n" -"Last-Translator: Ed-Spain \n" +"PO-Revision-Date: 2026-05-12 23:45+0000\n" +"Last-Translator: QuiJoQuim \n" "Language-Team: \n" "Language: es\n" "MIME-Version: 1.0\n" @@ -50,13 +50,13 @@ msgid "" "the ticket will be update by the one set on Autoupdate Destination Stage " msgstr "" "Si un socio publica un mensaje en un ticket en esta etapa, la propia etapa " -"de el ticket se actualizará según el establecido en la etapa de destino de " -"actualización automática" +"del ticket se actualizará según el establecido en la etapa de destino de " +"actualización automática " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Target stage on partner's message post " -msgstr "Etapa objetivo en la publicación del mensaje del socio" +msgstr "Etapa objetivo en la publicación del mensaje del socio " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage From 183436338a0a6c740900d4901001667716cabfb6 Mon Sep 17 00:00:00 2001 From: QuiJoQuim Date: Wed, 13 May 2026 08:46:43 +0000 Subject: [PATCH 17/20] Translated using Weblate (Catalan) Currently translated at 100.0% (8 of 8 strings) Translation: helpdesk-18.0/helpdesk-18.0-helpdesk_ticket_partner_response Translate-URL: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response/ca/ --- helpdesk_ticket_partner_response/i18n/ca.po | 10 +++++----- 1 file changed, 5 insertions(+), 5 deletions(-) diff --git a/helpdesk_ticket_partner_response/i18n/ca.po b/helpdesk_ticket_partner_response/i18n/ca.po index be42a9a926..02b329797c 100644 --- a/helpdesk_ticket_partner_response/i18n/ca.po +++ b/helpdesk_ticket_partner_response/i18n/ca.po @@ -7,7 +7,7 @@ msgstr "" "Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "POT-Creation-Date: 2025-01-02 09:19+0000\n" -"PO-Revision-Date: 2026-05-12 23:45+0000\n" +"PO-Revision-Date: 2026-05-13 11:07+0000\n" "Last-Translator: QuiJoQuim \n" "Language-Team: \n" "Language: ca\n" @@ -49,14 +49,14 @@ msgid "" "If a partner posts a message in a ticket on this stages, the own stage of " "the ticket will be update by the one set on Autoupdate Destination Stage " msgstr "" -"Si un soci publica un missatge en un ticket en aquestes etapes, la pròpia " -"etapa de el ticket s'actualitzarà pel que s'estableix a l'etapa de " -"destinació d'actualització automàtica" +"Si un soci publica un missatge en un ticket en aquestes etapes, la mateixa " +"etapa del ticket s'actualitzarà pel que s'estableix a l'etapa de destinació " +"d'actualització automàtica " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id msgid "Target stage on partner's message post " -msgstr "Etapa objectiu a la publicació de missatges del soci" +msgstr "Etapa objectiu a la publicació de missatges del soci " #. module: helpdesk_ticket_partner_response #: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage From 68c067305e32be31975cb87f120be3d64106a0c8 Mon Sep 17 00:00:00 2001 From: Mohamed Essam Salem Date: Sun, 17 May 2026 11:44:06 +0000 Subject: [PATCH 18/20] Added translation using Weblate (Arabic) --- helpdesk_ticket_partner_response/i18n/ar.po | 64 +++++++++++++++++++++ 1 file changed, 64 insertions(+) create mode 100644 helpdesk_ticket_partner_response/i18n/ar.po diff --git a/helpdesk_ticket_partner_response/i18n/ar.po b/helpdesk_ticket_partner_response/i18n/ar.po new file mode 100644 index 0000000000..d9f0193046 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/ar.po @@ -0,0 +1,64 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * helpdesk_ticket_partner_response +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 18.0\n" +"Report-Msgid-Bugs-To: \n" +"Last-Translator: Automatically generated\n" +"Language-Team: none\n" +"Language: ar\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: \n" +"Plural-Forms: nplurals=6; plural=n==0 ? 0 : n==1 ? 1 : n==2 ? 2 : n%100>=3 " +"&& n%100<=10 ? 3 : n%100>=11 ? 4 : 5;\n" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +#: model_terms:ir.ui.view,arch_db:helpdesk_ticket_partner_response.view_helpdesk_team_form_inherit +msgid "Auto Update Ticket Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Autoupdate Destination Stage" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,field_description:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "Autoupdate Source Stages" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_mail_thread +msgid "Email Thread" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket +msgid "Helpdesk Ticket" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model,name:helpdesk_ticket_partner_response.model_helpdesk_ticket_team +msgid "Helpdesk Ticket Team" +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_src_stage_ids +msgid "" +"If a partner posts a message in a ticket on this stages, the own stage of " +"the ticket will be update by the one set on Autoupdate Destination Stage " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autopupdate_dest_stage_id +msgid "Target stage on partner's message post " +msgstr "" + +#. module: helpdesk_ticket_partner_response +#: model:ir.model.fields,help:helpdesk_ticket_partner_response.field_helpdesk_ticket_team__autoupdate_ticket_stage +msgid "Update ticket stage when a new message is registered by the partner." +msgstr "" From 1bc30c4fe539b08f4c1df179f81f588e72472a35 Mon Sep 17 00:00:00 2001 From: Don Kendall Date: Sun, 14 Jun 2026 14:57:08 -0400 Subject: [PATCH 19/20] [IMP] helpdesk_ticket_partner_response: pre-commit auto fixes --- helpdesk_ticket_partner_response/README.rst | 12 ++++++------ .../static/description/index.html | 8 ++++---- 2 files changed, 10 insertions(+), 10 deletions(-) diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst index 3a164c5155..97e8411cde 100644 --- a/helpdesk_ticket_partner_response/README.rst +++ b/helpdesk_ticket_partner_response/README.rst @@ -11,7 +11,7 @@ Helpdesk Ticket Partner Response !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:518233a4e599df6efa329b659a6c3e55dc9322f055e2136c4209e49a621b8c44 + !! source digest: sha256:41d6f07e50ca5bf24a2440c7482dc043d5daf0fb0189930a29dec46e272ba45c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -21,13 +21,13 @@ Helpdesk Ticket Partner Response :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/18.0/helpdesk_ticket_partner_response + :target: https://github.com/OCA/helpdesk/tree/19.0/helpdesk_ticket_partner_response :alt: OCA/helpdesk .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/helpdesk-18-0/helpdesk-18-0-helpdesk_ticket_partner_response + :target: https://translation.odoo-community.org/projects/helpdesk-19-0/helpdesk-19-0-helpdesk_ticket_partner_response :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=18.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/helpdesk&target_branch=19.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| @@ -62,7 +62,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. @@ -103,6 +103,6 @@ Current `maintainer `__: |maintainer-peluko00| -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_ticket_partner_response/static/description/index.html b/helpdesk_ticket_partner_response/static/description/index.html index e89691337d..a17b8a43db 100644 --- a/helpdesk_ticket_partner_response/static/description/index.html +++ b/helpdesk_ticket_partner_response/static/description/index.html @@ -372,9 +372,9 @@

Helpdesk Ticket Partner Response

!! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:518233a4e599df6efa329b659a6c3e55dc9322f055e2136c4209e49a621b8c44 +!! source digest: sha256:41d6f07e50ca5bf24a2440c7482dc043d5daf0fb0189930a29dec46e272ba45c !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

Autoupdate ticket stage when a partner posts a message on the ticket from the portal or by sending an email.

Table of contents

@@ -410,7 +410,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.

@@ -440,7 +440,7 @@

Maintainers

promote its widespread use.

Current maintainer:

peluko00

-

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.

From 17f80d82c00a500c2835c6318b041b2b5a6dae87 Mon Sep 17 00:00:00 2001 From: Don Kendall Date: Sun, 14 Jun 2026 14:57:08 -0400 Subject: [PATCH 20/20] [MIG] helpdesk_ticket_partner_response: Migration to 19.0 --- helpdesk_ticket_partner_response/__manifest__.py | 2 +- .../tests/test_partner_response.py | 4 +++- 2 files changed, 4 insertions(+), 2 deletions(-) diff --git a/helpdesk_ticket_partner_response/__manifest__.py b/helpdesk_ticket_partner_response/__manifest__.py index 43d504cea6..c04a6cb224 100644 --- a/helpdesk_ticket_partner_response/__manifest__.py +++ b/helpdesk_ticket_partner_response/__manifest__.py @@ -3,7 +3,7 @@ { "name": "Helpdesk Ticket Partner Response", "summary": "Change ticket stage when partner response", - "version": "18.0.1.0.0", + "version": "19.0.1.0.0", "category": "Helpdesk", "website": "https://github.com/OCA/helpdesk", "author": "Antoni Marroig, APSL-Nagarro, Odoo Community Association (OCA)", diff --git a/helpdesk_ticket_partner_response/tests/test_partner_response.py b/helpdesk_ticket_partner_response/tests/test_partner_response.py index 5e8fc2e252..39c532a1f2 100644 --- a/helpdesk_ticket_partner_response/tests/test_partner_response.py +++ b/helpdesk_ticket_partner_response/tests/test_partner_response.py @@ -48,7 +48,9 @@ class TestCustomerResponse(HttpCaseWithUserPortal): @classmethod def setUpClass(cls): super().setUpClass() - cls.helpdesk_team1 = cls.env.ref("helpdesk_mgmt.helpdesk_team_1") + cls.helpdesk_team1 = cls.env["helpdesk.ticket.team"].create( + {"name": "Test Team"} + ) cls.stage_new = cls.env.ref("helpdesk_mgmt.helpdesk_ticket_stage_new") cls.stage_in_progress = cls.env.ref( "helpdesk_mgmt.helpdesk_ticket_stage_in_progress"