diff --git a/helpdesk_ticket_partner_response/README.rst b/helpdesk_ticket_partner_response/README.rst new file mode 100644 index 0000000000..884363b524 --- /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:c6d83a14ee5d9e8f7b5ac9c65cc3bf6482df385c0d1f9e996befd495eb071938 + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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..5a269ca40e --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/ca.po @@ -0,0 +1,57 @@ +# 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" +"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..bf0e7ffd98 --- /dev/null +++ b/helpdesk_ticket_partner_response/i18n/es.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" +"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/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 0000000000..3a0328b516 Binary files /dev/null and b/helpdesk_ticket_partner_response/static/description/icon.png differ 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 + + + + + + + + + + + + + + + + + diff --git a/setup/helpdesk_ticket_partner_response/odoo/addons/helpdesk_ticket_partner_response b/setup/helpdesk_ticket_partner_response/odoo/addons/helpdesk_ticket_partner_response new file mode 120000 index 0000000000..97040abba8 --- /dev/null +++ b/setup/helpdesk_ticket_partner_response/odoo/addons/helpdesk_ticket_partner_response @@ -0,0 +1 @@ +../../../../helpdesk_ticket_partner_response \ No newline at end of file diff --git a/setup/helpdesk_ticket_partner_response/setup.py b/setup/helpdesk_ticket_partner_response/setup.py new file mode 100644 index 0000000000..28c57bb640 --- /dev/null +++ b/setup/helpdesk_ticket_partner_response/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)