From 6f276d7a35298d9a59b4ae71cdd8f250cea08916 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Tue, 1 Oct 2024 07:20:04 -0500 Subject: [PATCH 1/5] [ADD] mail_print: new module to print messages from chatter --- mail_print/README.rst | 81 ++++ mail_print/__init__.py | 0 mail_print/__manifest__.py | 29 ++ mail_print/data/report_paperformat_data.xml | 15 + mail_print/i18n/es.po | 58 +++ mail_print/i18n/mail_print.pot | 51 +++ mail_print/readme/DESCRIPTION.rst | 1 + mail_print/readme/USAGE.rst | 6 + mail_print/reports/report_mail_message.xml | 31 ++ mail_print/reports/reports.xml | 13 + mail_print/static/description/icon.png | Bin 0 -> 9455 bytes mail_print/static/description/index.html | 427 ++++++++++++++++++ .../message_action_list.xml | 12 + .../print_message/print_message.esm.js | 28 ++ .../print_message/print_message.xml | 13 + .../static/tests/tours/mail_print.esm.js | 96 ++++ mail_print/tests/__init__.py | 1 + mail_print/tests/test_mail_print.py | 21 + 18 files changed, 883 insertions(+) create mode 100644 mail_print/README.rst create mode 100644 mail_print/__init__.py create mode 100644 mail_print/__manifest__.py create mode 100644 mail_print/data/report_paperformat_data.xml create mode 100644 mail_print/i18n/es.po create mode 100644 mail_print/i18n/mail_print.pot create mode 100644 mail_print/readme/DESCRIPTION.rst create mode 100644 mail_print/readme/USAGE.rst create mode 100644 mail_print/reports/report_mail_message.xml create mode 100644 mail_print/reports/reports.xml create mode 100644 mail_print/static/description/icon.png create mode 100644 mail_print/static/description/index.html create mode 100644 mail_print/static/src/components/message_action_list/message_action_list.xml create mode 100644 mail_print/static/src/components/print_message/print_message.esm.js create mode 100644 mail_print/static/src/components/print_message/print_message.xml create mode 100644 mail_print/static/tests/tours/mail_print.esm.js create mode 100644 mail_print/tests/__init__.py create mode 100644 mail_print/tests/test_mail_print.py diff --git a/mail_print/README.rst b/mail_print/README.rst new file mode 100644 index 000000000..434d56548 --- /dev/null +++ b/mail_print/README.rst @@ -0,0 +1,81 @@ +================== +Mail Print Message +================== + +.. + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! This file is generated by oca-gen-addon-readme !! + !! changes will be overwritten. !! + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + !! source digest: sha256:ed64ce44ffbbe8f8b5778bc8a8b242c5d8e24667555852cf928ea6f5e442542f + !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! + +.. |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%2Fsocial-lightgray.png?logo=github + :target: https://github.com/OCA/social/tree/15.0/mail_print + :alt: OCA/social +.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png + :target: https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_print + :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/social&target_branch=15.0 + :alt: Try me on Runboat + +|badge1| |badge2| |badge3| |badge4| |badge5| + +This module allows users to print messages from the chatter of any document. + +**Table of contents** + +.. contents:: + :local: + +Usage +===== + +To use this module, follow these steps: + +1. Navigate to the chatter of any document. +2. Hover the mouse over any message in the chatter (excluding internal notes). +3. A print icon will appear next to the message. +4. Click the print icon to generate a printable version of the message. + +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 +~~~~~~~ + +* Tecnativa + +Maintainers +~~~~~~~~~~~ + +This module is maintained by the OCA. + +.. image:: https://odoo-community.org/logo.png + :alt: Odoo Community Association + :target: https://odoo-community.org + +OCA, or the Odoo Community Association, is a nonprofit organization whose +mission is to support the collaborative development of Odoo features and +promote its widespread use. + +This module is part of the `OCA/social `_ project on GitHub. + +You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_print/__init__.py b/mail_print/__init__.py new file mode 100644 index 000000000..e69de29bb diff --git a/mail_print/__manifest__.py b/mail_print/__manifest__.py new file mode 100644 index 000000000..73a5ed19c --- /dev/null +++ b/mail_print/__manifest__.py @@ -0,0 +1,29 @@ +# Copyright 2024 Tecnativa - Carlos Lopez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +{ + "name": "Mail Print Message", + "version": "15.0.1.0.0", + "summary": "Print messages from the chatter of any document. ", + "author": "Tecnativa, Odoo Community Association (OCA)", + "website": "https://github.com/OCA/social", + "depends": ["mail", "contacts"], + "data": [ + "data/report_paperformat_data.xml", + "reports/report_mail_message.xml", + "reports/reports.xml", + ], + "assets": { + "web.assets_backend": [ + "mail_print/static/src/components/**/*.esm.js", + ], + "web.assets_qweb": [ + "mail_print/static/src/components/*/*.xml", + ], + "web.assets_tests": [ + "mail_print/static/tests/tours/**/*", + ], + }, + "installable": True, + "auto_install": False, + "license": "AGPL-3", +} diff --git a/mail_print/data/report_paperformat_data.xml b/mail_print/data/report_paperformat_data.xml new file mode 100644 index 000000000..e18090448 --- /dev/null +++ b/mail_print/data/report_paperformat_data.xml @@ -0,0 +1,15 @@ + + + + + Mail Message + A4 + Portrait + 30 + 20 + 5 + 5 + 25 + + + diff --git a/mail_print/i18n/es.po b/mail_print/i18n/es.po new file mode 100644 index 000000000..393339768 --- /dev/null +++ b/mail_print/i18n/es.po @@ -0,0 +1,58 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_print +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.0\n" +"Report-Msgid-Bugs-To: \n" +"POT-Creation-Date: 2024-10-01 12:27+0000\n" +"PO-Revision-Date: 2024-10-01 07:28-0500\n" +"Last-Translator: \n" +"Language-Team: \n" +"Language: es\n" +"MIME-Version: 1.0\n" +"Content-Type: text/plain; charset=UTF-8\n" +"Content-Transfer-Encoding: 8bit\n" +"Plural-Forms: \n" +"X-Generator: Poedit 3.0.1\n" + +#. module: mail_print +#: model:ir.actions.report,print_report_name:mail_print.mail_message_report +msgid "(object.display_name)" +msgstr "" + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "" +"
\n" +" Reply-To: " +msgstr "" +"
\n" +" Responder a: " + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "" +"
\n" +" To: " +msgstr "" +"
\n" +" Para: " + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "Date: " +msgstr "Fecha: " + +#. module: mail_print +#: model:ir.actions.report,name:mail_print.mail_message_report +msgid "Message" +msgstr "Mensaje" + +#. module: mail_print +#. openerp-web +#: code:addons/mail_print/static/src/components/print_message/print_message.xml:0 +#, python-format +msgid "Print Message" +msgstr "Imprimir Mensaje" diff --git a/mail_print/i18n/mail_print.pot b/mail_print/i18n/mail_print.pot new file mode 100644 index 000000000..1b453114c --- /dev/null +++ b/mail_print/i18n/mail_print.pot @@ -0,0 +1,51 @@ +# Translation of Odoo Server. +# This file contains the translation of the following modules: +# * mail_print +# +msgid "" +msgstr "" +"Project-Id-Version: Odoo Server 15.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: mail_print +#: model:ir.actions.report,print_report_name:mail_print.mail_message_report +msgid "(object.display_name)" +msgstr "" + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "" +"
\n" +" Reply-To: " +msgstr "" + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "" +"
\n" +" To: " +msgstr "" + +#. module: mail_print +#: model_terms:ir.ui.view,arch_db:mail_print.report_mail_message_document +msgid "Date: " +msgstr "" + +#. module: mail_print +#: model:ir.actions.report,name:mail_print.mail_message_report +msgid "Message" +msgstr "" + +#. module: mail_print +#. openerp-web +#: code:addons/mail_print/static/src/components/print_message/print_message.xml:0 +#: code:addons/mail_print/static/src/components/print_message/print_message.xml:0 +#, python-format +msgid "Print Message" +msgstr "" diff --git a/mail_print/readme/DESCRIPTION.rst b/mail_print/readme/DESCRIPTION.rst new file mode 100644 index 000000000..59ad80d1d --- /dev/null +++ b/mail_print/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module allows users to print messages from the chatter of any document. diff --git a/mail_print/readme/USAGE.rst b/mail_print/readme/USAGE.rst new file mode 100644 index 000000000..65b8cb5d0 --- /dev/null +++ b/mail_print/readme/USAGE.rst @@ -0,0 +1,6 @@ +To use this module, follow these steps: + +1. Navigate to the chatter of any document. +2. Hover the mouse over any message in the chatter (excluding internal notes). +3. A print icon will appear next to the message. +4. Click the print icon to generate a printable version of the message. diff --git a/mail_print/reports/report_mail_message.xml b/mail_print/reports/report_mail_message.xml new file mode 100644 index 000000000..7df40f210 --- /dev/null +++ b/mail_print/reports/report_mail_message.xml @@ -0,0 +1,31 @@ + + + + + + + diff --git a/mail_print/reports/reports.xml b/mail_print/reports/reports.xml new file mode 100644 index 000000000..ed1bf4d4a --- /dev/null +++ b/mail_print/reports/reports.xml @@ -0,0 +1,13 @@ + + + + Message + mail.message + qweb-pdf + mail_print.report_mail_message + mail_print.report_mail_message + (object.display_name) + + + + diff --git a/mail_print/static/description/icon.png b/mail_print/static/description/icon.png new file mode 100644 index 0000000000000000000000000000000000000000..3a0328b516c4980e8e44cdb63fd945757ddd132d GIT binary patch literal 9455 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 z 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 Xviia!U7SGha1wx#SCgwmn*{w2TRX*I literal 0 HcmV?d00001 diff --git a/mail_print/static/description/index.html b/mail_print/static/description/index.html new file mode 100644 index 000000000..7ac06ba82 --- /dev/null +++ b/mail_print/static/description/index.html @@ -0,0 +1,427 @@ + + + + + +Mail Print Message + + + +
+

Mail Print Message

+ + +

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

+

This module allows users to print messages from the chatter of any document.

+

Table of contents

+ +
+

Usage

+

To use this module, follow these steps:

+
    +
  1. Navigate to the chatter of any document.
  2. +
  3. Hover the mouse over any message in the chatter (excluding internal notes).
  4. +
  5. A print icon will appear next to the message.
  6. +
  7. Click the print icon to generate a printable version of the message.
  8. +
+
+
+

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

+
    +
  • Tecnativa
  • +
+
+
+

Maintainers

+

This module is maintained by the OCA.

+ +Odoo Community Association + +

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

+

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

+

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

+
+
+
+ + diff --git a/mail_print/static/src/components/message_action_list/message_action_list.xml b/mail_print/static/src/components/message_action_list/message_action_list.xml new file mode 100644 index 000000000..4dbf554f8 --- /dev/null +++ b/mail_print/static/src/components/message_action_list/message_action_list.xml @@ -0,0 +1,12 @@ + + + + + + + + + diff --git a/mail_print/static/src/components/print_message/print_message.esm.js b/mail_print/static/src/components/print_message/print_message.esm.js new file mode 100644 index 000000000..04b77560d --- /dev/null +++ b/mail_print/static/src/components/print_message/print_message.esm.js @@ -0,0 +1,28 @@ +/** @odoo-module **/ +/* Copyright 2024 Tecnativa - Carlos Lopez + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +*/ +import {registerMessagingComponent} from "@mail/utils/messaging_component"; +const {Component} = owl; + +export class PrintMessage extends Component { + onClickPrintMessage() { + this.env.bus.trigger("do-action", { + action: "mail_print.mail_message_report", + options: { + additional_context: { + active_id: this.props.message_id, + active_ids: [this.props.message_id], + active_model: "mail.message", + }, + }, + }); + } +} + +PrintMessage.template = "mail_print.PrintMessage"; +PrintMessage.props = { + message_id: Number, +}; + +registerMessagingComponent(PrintMessage); diff --git a/mail_print/static/src/components/print_message/print_message.xml b/mail_print/static/src/components/print_message/print_message.xml new file mode 100644 index 000000000..d116d787f --- /dev/null +++ b/mail_print/static/src/components/print_message/print_message.xml @@ -0,0 +1,13 @@ + + + + + + diff --git a/mail_print/static/tests/tours/mail_print.esm.js b/mail_print/static/tests/tours/mail_print.esm.js new file mode 100644 index 000000000..8272fe2af --- /dev/null +++ b/mail_print/static/tests/tours/mail_print.esm.js @@ -0,0 +1,96 @@ +/** @odoo-module */ +/* Copyright 2024 Tecnativa - Carlos Lopez + License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). +*/ +import tour from "web_tour.tour"; +const contact_steps = [ + ...tour.stepUtils.goToAppSteps("contacts.menu_contacts", "Go to the Contacts."), + { + content: "Search Contact", + trigger: ".o_searchview_input", + run: "text Test", + }, + { + trigger: ".o_menu_item", + content: "Validate search", + run: "click", + }, + { + content: "Switch to list view", + trigger: ".o_list", + run: "click", + }, + { + content: "Open contact", + trigger: ".o_list_table td[name='display_name']:contains('Test')", + }, +]; +tour.register( + "mail_print.mail_print_tour", + { + test: true, + url: "/web", + }, + [ + ...contact_steps, + { + content: "Open Chat", + trigger: ".o_ChatterTopbar_buttonSendMessage", + run: "click", + }, + { + content: "Write a message", + trigger: ".o_ComposerTextInput_textarea", + run: "text Hello World", + }, + { + content: "Post a message", + trigger: ".o_Composer_buttonSend", + }, + { + content: "Hover a message", + trigger: "div.o_Message.o-discussion", + run: "click", + }, + { + content: "Print a message", + trigger: ".o_MessageActionList_actionPrint", + run: "click", + }, + ] +); + +tour.register( + "mail_print.mail_note_not_print_tour", + { + test: true, + url: "/web", + }, + [ + ...contact_steps, + { + content: "Open Chat", + trigger: ".o_ChatterTopbar_buttonLogNote", + run: "click", + }, + { + content: "Write a note", + trigger: ".o_ComposerTextInput_textarea", + run: "text This is a note", + }, + { + content: "Post a note", + trigger: ".o_Composer_buttonSend", + }, + { + content: "Hover a note", + trigger: "div.o_Message.o-not-discussion", + run: "click", + }, + { + content: "Verify that the Print button does not exist.", + trigger: + "div.o_Message.o-not-discussion:not(.o_MessageActionList_actionPrint)", + }, + ] +); diff --git a/mail_print/tests/__init__.py b/mail_print/tests/__init__.py new file mode 100644 index 000000000..6cffb37e1 --- /dev/null +++ b/mail_print/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mail_print diff --git a/mail_print/tests/test_mail_print.py b/mail_print/tests/test_mail_print.py new file mode 100644 index 000000000..b8cbeff83 --- /dev/null +++ b/mail_print/tests/test_mail_print.py @@ -0,0 +1,21 @@ +# Copyright 2024 Tecnativa - Carlos Lopez +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). + +from odoo.tests import tagged +from odoo.tests.common import HttpCase + + +@tagged("post_install", "-at_install") +class TestMailPrint(HttpCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.env["res.partner"].with_context(tracking_disable=True).create( + {"name": "Test", "email": "test@example.com"} + ) + + def test_01_mail_print_tour(self): + self.start_tour("/web", "mail_print.mail_print_tour", login="admin") + + def test_02_mail_note_not_print_tour(self): + self.start_tour("/web", "mail_print.mail_note_not_print_tour", login="admin") From 40749ba5f4289089089dbb0e45bfb915664a9b5f Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Fri, 4 Oct 2024 08:23:11 -0500 Subject: [PATCH 2/5] [FIX] mail_print: prevent errors during the test tour when web_responsive is installed. --- mail_print/README.rst | 2 +- mail_print/__manifest__.py | 2 +- mail_print/static/description/index.html | 2 +- mail_print/static/tests/tours/mail_print.esm.js | 7 ++++++- 4 files changed, 9 insertions(+), 4 deletions(-) diff --git a/mail_print/README.rst b/mail_print/README.rst index 434d56548..73fb91dc6 100644 --- a/mail_print/README.rst +++ b/mail_print/README.rst @@ -7,7 +7,7 @@ Mail Print Message !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:ed64ce44ffbbe8f8b5778bc8a8b242c5d8e24667555852cf928ea6f5e442542f + !! source digest: sha256:041738b662760ad100067a7c7f791a509fcd9811512c950df32f6496ee46fe74 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/mail_print/__manifest__.py b/mail_print/__manifest__.py index 73a5ed19c..f5d9606ce 100644 --- a/mail_print/__manifest__.py +++ b/mail_print/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Mail Print Message", - "version": "15.0.1.0.0", + "version": "15.0.1.0.1", "summary": "Print messages from the chatter of any document. ", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", diff --git a/mail_print/static/description/index.html b/mail_print/static/description/index.html index 7ac06ba82..fa82897b3 100644 --- a/mail_print/static/description/index.html +++ b/mail_print/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:ed64ce44ffbbe8f8b5778bc8a8b242c5d8e24667555852cf928ea6f5e442542f +!! source digest: sha256:041738b662760ad100067a7c7f791a509fcd9811512c950df32f6496ee46fe74 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module allows users to print messages from the chatter of any document.

diff --git a/mail_print/static/tests/tours/mail_print.esm.js b/mail_print/static/tests/tours/mail_print.esm.js index 8272fe2af..9f3463ddc 100644 --- a/mail_print/static/tests/tours/mail_print.esm.js +++ b/mail_print/static/tests/tours/mail_print.esm.js @@ -4,7 +4,12 @@ */ import tour from "web_tour.tour"; const contact_steps = [ - ...tour.stepUtils.goToAppSteps("contacts.menu_contacts", "Go to the Contacts."), + { + trigger: ".o_navbar_apps_menu button", + }, + { + trigger: '.o_app[data-menu-xmlid="contacts.menu_contacts"]', + }, { content: "Search Contact", trigger: ".o_searchview_input", From bfac37d090beec1e6a71a2a33bb3c7e2672d28a9 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Wed, 16 Oct 2024 08:34:13 -0500 Subject: [PATCH 3/5] [IMP] mail_print: Allow printing messages from incoming mail Before this commit, the option to print messages was only available for messages sent from Odoo. After this commit, it is now possible to print incoming messages as well. --- mail_print/README.rst | 2 +- mail_print/__manifest__.py | 2 +- mail_print/static/description/index.html | 2 +- .../src/components/message_action_list/message_action_list.xml | 2 +- 4 files changed, 4 insertions(+), 4 deletions(-) diff --git a/mail_print/README.rst b/mail_print/README.rst index 73fb91dc6..24399e80f 100644 --- a/mail_print/README.rst +++ b/mail_print/README.rst @@ -7,7 +7,7 @@ Mail Print Message !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:041738b662760ad100067a7c7f791a509fcd9811512c950df32f6496ee46fe74 + !! source digest: sha256:0cd861f29fc0a68aebccb18a4db08b607f68edca8c3672e499e013ed99f8fda6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png diff --git a/mail_print/__manifest__.py b/mail_print/__manifest__.py index f5d9606ce..be59378f2 100644 --- a/mail_print/__manifest__.py +++ b/mail_print/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Mail Print Message", - "version": "15.0.1.0.1", + "version": "15.0.1.1.0", "summary": "Print messages from the chatter of any document. ", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", diff --git a/mail_print/static/description/index.html b/mail_print/static/description/index.html index fa82897b3..72e196e8e 100644 --- a/mail_print/static/description/index.html +++ b/mail_print/static/description/index.html @@ -367,7 +367,7 @@ ul.auto-toc { !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -!! source digest: sha256:041738b662760ad100067a7c7f791a509fcd9811512c950df32f6496ee46fe74 +!! source digest: sha256:0cd861f29fc0a68aebccb18a4db08b607f68edca8c3672e499e013ed99f8fda6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This module allows users to print messages from the chatter of any document.

diff --git a/mail_print/static/src/components/message_action_list/message_action_list.xml b/mail_print/static/src/components/message_action_list/message_action_list.xml index 4dbf554f8..6da359944 100644 --- a/mail_print/static/src/components/message_action_list/message_action_list.xml +++ b/mail_print/static/src/components/message_action_list/message_action_list.xml @@ -4,7 +4,7 @@ From 609747f0d008772fc5e64fefecb06e687737318b Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Mon, 30 Dec 2024 12:30:17 -0500 Subject: [PATCH 4/5] [IMP] mail_print: pre-commit auto fixes --- mail_print/README.rst | 20 ++++++++++--------- mail_print/pyproject.toml | 3 +++ .../{DESCRIPTION.rst => DESCRIPTION.md} | 3 ++- mail_print/readme/USAGE.md | 7 +++++++ mail_print/readme/USAGE.rst | 6 ------ mail_print/static/description/index.html | 12 ++++++----- 6 files changed, 30 insertions(+), 21 deletions(-) create mode 100644 mail_print/pyproject.toml rename mail_print/readme/{DESCRIPTION.rst => DESCRIPTION.md} (82%) create mode 100644 mail_print/readme/USAGE.md delete mode 100644 mail_print/readme/USAGE.rst diff --git a/mail_print/README.rst b/mail_print/README.rst index 24399e80f..a139cace6 100644 --- a/mail_print/README.rst +++ b/mail_print/README.rst @@ -17,18 +17,19 @@ Mail Print Message :target: http://www.gnu.org/licenses/agpl-3.0-standalone.html :alt: License: AGPL-3 .. |badge3| image:: https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github - :target: https://github.com/OCA/social/tree/15.0/mail_print + :target: https://github.com/OCA/social/tree/17.0/mail_print :alt: OCA/social .. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png - :target: https://translation.odoo-community.org/projects/social-15-0/social-15-0-mail_print + :target: https://translation.odoo-community.org/projects/social-17-0/social-17-0-mail_print :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/social&target_branch=15.0 + :target: https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=17.0 :alt: Try me on Runboat |badge1| |badge2| |badge3| |badge4| |badge5| -This module allows users to print messages from the chatter of any document. +This module allows users to print messages from the chatter of any +document. **Table of contents** @@ -41,7 +42,8 @@ Usage To use this module, follow these steps: 1. Navigate to the chatter of any document. -2. Hover the mouse over any message in the chatter (excluding internal notes). +2. Hover the mouse over any message in the chatter (excluding internal + notes). 3. A print icon will appear next to the message. 4. Click the print icon to generate a printable version of the message. @@ -51,7 +53,7 @@ Bug Tracker Bugs are tracked on `GitHub Issues `_. In case of trouble, please check there if your issue has already been reported. If you spotted it first, help us to smash it by providing a detailed and welcomed -`feedback `_. +`feedback `_. Do not contact contributors directly about support or help with technical issues. @@ -59,12 +61,12 @@ Credits ======= Authors -~~~~~~~ +------- * Tecnativa Maintainers -~~~~~~~~~~~ +----------- This module is maintained by the OCA. @@ -76,6 +78,6 @@ OCA, or the Odoo Community Association, is a nonprofit organization whose mission is to support the collaborative development of Odoo features and promote its widespread use. -This module is part of the `OCA/social `_ project on GitHub. +This module is part of the `OCA/social `_ project on GitHub. You are welcome to contribute. To learn how please visit https://odoo-community.org/page/Contribute. diff --git a/mail_print/pyproject.toml b/mail_print/pyproject.toml new file mode 100644 index 000000000..4231d0ccc --- /dev/null +++ b/mail_print/pyproject.toml @@ -0,0 +1,3 @@ +[build-system] +requires = ["whool"] +build-backend = "whool.buildapi" diff --git a/mail_print/readme/DESCRIPTION.rst b/mail_print/readme/DESCRIPTION.md similarity index 82% rename from mail_print/readme/DESCRIPTION.rst rename to mail_print/readme/DESCRIPTION.md index 59ad80d1d..d1c1a9be8 100644 --- a/mail_print/readme/DESCRIPTION.rst +++ b/mail_print/readme/DESCRIPTION.md @@ -1 +1,2 @@ -This module allows users to print messages from the chatter of any document. +This module allows users to print messages from the chatter of any +document. diff --git a/mail_print/readme/USAGE.md b/mail_print/readme/USAGE.md new file mode 100644 index 000000000..9dcc56bc6 --- /dev/null +++ b/mail_print/readme/USAGE.md @@ -0,0 +1,7 @@ +To use this module, follow these steps: + +1. Navigate to the chatter of any document. +2. Hover the mouse over any message in the chatter (excluding internal + notes). +3. A print icon will appear next to the message. +4. Click the print icon to generate a printable version of the message. diff --git a/mail_print/readme/USAGE.rst b/mail_print/readme/USAGE.rst deleted file mode 100644 index 65b8cb5d0..000000000 --- a/mail_print/readme/USAGE.rst +++ /dev/null @@ -1,6 +0,0 @@ -To use this module, follow these steps: - -1. Navigate to the chatter of any document. -2. Hover the mouse over any message in the chatter (excluding internal notes). -3. A print icon will appear next to the message. -4. Click the print icon to generate a printable version of the message. diff --git a/mail_print/static/description/index.html b/mail_print/static/description/index.html index 72e196e8e..94d377b01 100644 --- a/mail_print/static/description/index.html +++ b/mail_print/static/description/index.html @@ -369,8 +369,9 @@ ul.auto-toc { !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! !! source digest: sha256:0cd861f29fc0a68aebccb18a4db08b607f68edca8c3672e499e013ed99f8fda6 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> -

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

-

This module allows users to print messages from the chatter of any document.

+

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

+

This module allows users to print messages from the chatter of any +document.

Table of contents

    @@ -388,7 +389,8 @@ ul.auto-toc {

    To use this module, follow these steps:

    1. Navigate to the chatter of any document.
    2. -
    3. Hover the mouse over any message in the chatter (excluding internal notes).
    4. +
    5. Hover the mouse over any message in the chatter (excluding internal +notes).
    6. A print icon will appear next to the message.
    7. Click the print icon to generate a printable version of the message.
    @@ -398,7 +400,7 @@ ul.auto-toc {

    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.

@@ -418,7 +420,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome

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

-

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

+

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

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

From 6015dfdc2095d322a088973170d6390a5f7fa319 Mon Sep 17 00:00:00 2001 From: Carlos Lopez Date: Tue, 31 Dec 2024 07:41:46 -0500 Subject: [PATCH 5/5] [IMP] mail_print: Migration to 17 --- mail_print/__manifest__.py | 8 +-- .../message_action_list.xml | 12 ---- .../print_message/print_message.esm.js | 16 ++--- .../print_message/print_message.xml | 12 ++-- .../src/core/common/message_actions.esm.js | 11 +++ .../static/tests/tours/mail_print.esm.js | 71 +++++-------------- mail_print/tests/test_mail_print.py | 12 +++- 7 files changed, 53 insertions(+), 89 deletions(-) delete mode 100644 mail_print/static/src/components/message_action_list/message_action_list.xml create mode 100644 mail_print/static/src/core/common/message_actions.esm.js diff --git a/mail_print/__manifest__.py b/mail_print/__manifest__.py index be59378f2..b5cd2dcdc 100644 --- a/mail_print/__manifest__.py +++ b/mail_print/__manifest__.py @@ -2,7 +2,7 @@ # License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). { "name": "Mail Print Message", - "version": "15.0.1.1.0", + "version": "17.0.1.0.0", "summary": "Print messages from the chatter of any document. ", "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", @@ -14,10 +14,8 @@ ], "assets": { "web.assets_backend": [ - "mail_print/static/src/components/**/*.esm.js", - ], - "web.assets_qweb": [ - "mail_print/static/src/components/*/*.xml", + "mail_print/static/src/**/*.esm.js", + "mail_print/static/src/**/*.xml", ], "web.assets_tests": [ "mail_print/static/tests/tours/**/*", diff --git a/mail_print/static/src/components/message_action_list/message_action_list.xml b/mail_print/static/src/components/message_action_list/message_action_list.xml deleted file mode 100644 index 6da359944..000000000 --- a/mail_print/static/src/components/message_action_list/message_action_list.xml +++ /dev/null @@ -1,12 +0,0 @@ - - - - - - - - - diff --git a/mail_print/static/src/components/print_message/print_message.esm.js b/mail_print/static/src/components/print_message/print_message.esm.js index 04b77560d..6b018f9b1 100644 --- a/mail_print/static/src/components/print_message/print_message.esm.js +++ b/mail_print/static/src/components/print_message/print_message.esm.js @@ -2,19 +2,15 @@ /* Copyright 2024 Tecnativa - Carlos Lopez License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). */ -import {registerMessagingComponent} from "@mail/utils/messaging_component"; const {Component} = owl; export class PrintMessage extends Component { onClickPrintMessage() { - this.env.bus.trigger("do-action", { - action: "mail_print.mail_message_report", - options: { - additional_context: { - active_id: this.props.message_id, - active_ids: [this.props.message_id], - active_model: "mail.message", - }, + this.env.services.action.doAction("mail_print.mail_message_report", { + additionalContext: { + active_id: this.props.message_id, + active_ids: [this.props.message_id], + active_model: "mail.message", }, }); } @@ -24,5 +20,3 @@ PrintMessage.template = "mail_print.PrintMessage"; PrintMessage.props = { message_id: Number, }; - -registerMessagingComponent(PrintMessage); diff --git a/mail_print/static/src/components/print_message/print_message.xml b/mail_print/static/src/components/print_message/print_message.xml index d116d787f..5ab44ab81 100644 --- a/mail_print/static/src/components/print_message/print_message.xml +++ b/mail_print/static/src/components/print_message/print_message.xml @@ -1,13 +1,13 @@ - - + diff --git a/mail_print/static/src/core/common/message_actions.esm.js b/mail_print/static/src/core/common/message_actions.esm.js new file mode 100644 index 000000000..d8e23e1b8 --- /dev/null +++ b/mail_print/static/src/core/common/message_actions.esm.js @@ -0,0 +1,11 @@ +/* @odoo-module */ + +import {PrintMessage} from "../../components/print_message/print_message.esm"; +import {messageActionsRegistry} from "@mail/core/common/message_actions"; + +messageActionsRegistry.add("print", { + callComponent: PrintMessage, + props: (component) => ({message_id: component.props.message.id}), + condition: (component) => !component.props.message.is_note, + sequence: 10, +}); diff --git a/mail_print/static/tests/tours/mail_print.esm.js b/mail_print/static/tests/tours/mail_print.esm.js index 9f3463ddc..3475e991f 100644 --- a/mail_print/static/tests/tours/mail_print.esm.js +++ b/mail_print/static/tests/tours/mail_print.esm.js @@ -2,7 +2,7 @@ /* Copyright 2024 Tecnativa - Carlos Lopez License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl.html). */ -import tour from "web_tour.tour"; +import {registry} from "@web/core/registry"; const contact_steps = [ { trigger: ".o_navbar_apps_menu button", @@ -27,75 +27,40 @@ const contact_steps = [ }, { content: "Open contact", - trigger: ".o_list_table td[name='display_name']:contains('Test')", + trigger: ".o_list_table td[name='complete_name']:contains('Test')", }, ]; -tour.register( - "mail_print.mail_print_tour", - { - test: true, - url: "/web", - }, - [ +registry.category("web_tour.tours").add("mail_print.mail_print_tour", { + test: true, + url: "/web", + steps: () => [ ...contact_steps, - { - content: "Open Chat", - trigger: ".o_ChatterTopbar_buttonSendMessage", - run: "click", - }, - { - content: "Write a message", - trigger: ".o_ComposerTextInput_textarea", - run: "text Hello World", - }, - { - content: "Post a message", - trigger: ".o_Composer_buttonSend", - }, { content: "Hover a message", - trigger: "div.o_Message.o-discussion", + trigger: "div.o-mail-Message[aria-label='Message']", run: "click", }, { content: "Print a message", - trigger: ".o_MessageActionList_actionPrint", + trigger: ".mail_print_message", run: "click", }, - ] -); + ], +}); -tour.register( - "mail_print.mail_note_not_print_tour", - { - test: true, - url: "/web", - }, - [ +registry.category("web_tour.tours").add("mail_print.mail_note_not_print_tour", { + test: true, + url: "/web", + steps: () => [ ...contact_steps, - { - content: "Open Chat", - trigger: ".o_ChatterTopbar_buttonLogNote", - run: "click", - }, - { - content: "Write a note", - trigger: ".o_ComposerTextInput_textarea", - run: "text This is a note", - }, - { - content: "Post a note", - trigger: ".o_Composer_buttonSend", - }, { content: "Hover a note", - trigger: "div.o_Message.o-not-discussion", + trigger: "div.o-mail-Message[aria-label='Note']", run: "click", }, { content: "Verify that the Print button does not exist.", - trigger: - "div.o_Message.o-not-discussion:not(.o_MessageActionList_actionPrint)", + trigger: "div.o-mail-Message[aria-label='Note']:not(.mail_print_message)", }, - ] -); + ], +}); diff --git a/mail_print/tests/test_mail_print.py b/mail_print/tests/test_mail_print.py index b8cbeff83..19e727b9e 100644 --- a/mail_print/tests/test_mail_print.py +++ b/mail_print/tests/test_mail_print.py @@ -10,12 +10,20 @@ class TestMailPrint(HttpCase): @classmethod def setUpClass(cls): super().setUpClass() - cls.env["res.partner"].with_context(tracking_disable=True).create( - {"name": "Test", "email": "test@example.com"} + cls.partner = ( + cls.env["res.partner"] + .with_context(tracking_disable=True) + .create({"name": "Test", "email": "test@example.com"}) ) def test_01_mail_print_tour(self): + self.partner.message_post( + body="Hello World", message_type="comment", subtype_xmlid="mail.mt_comment" + ) self.start_tour("/web", "mail_print.mail_print_tour", login="admin") def test_02_mail_note_not_print_tour(self): + self.partner.message_post( + body="This is a note", message_type="comment", subtype_xmlid="mail.mt_note" + ) self.start_tour("/web", "mail_print.mail_note_not_print_tour", login="admin")