From 6c75b5ef9915053687065283724582a1a9ec69b8 Mon Sep 17 00:00:00 2001 From: pilarvargas-tecnativa Date: Tue, 27 Feb 2024 16:18:22 +0100 Subject: [PATCH] [MIG] mass_mailing_custom_unsubscribe: Continue migration to version 16.0 TT44333 --- mass_mailing_custom_unsubscribe/README.rst | 3 +- .../__manifest__.py | 5 +- .../controllers/main.py | 2 +- .../demo/assets.xml | 21 ------- .../i18n/mass_mailing_custom_unsubscribe.pot | 60 ++++++++++--------- .../models/mail_unsubscription.py | 1 + .../readme/CONTRIBUTORS.rst | 1 + .../static/description/index.html | 3 +- .../tests/__init__.py | 2 - .../tests/test_ui.py | 11 ++-- .../tests/test_unsubscription.py | 35 ----------- 11 files changed, 49 insertions(+), 95 deletions(-) delete mode 100644 mass_mailing_custom_unsubscribe/demo/assets.xml delete mode 100644 mass_mailing_custom_unsubscribe/tests/test_unsubscription.py diff --git a/mass_mailing_custom_unsubscribe/README.rst b/mass_mailing_custom_unsubscribe/README.rst index 551f0f84a..777ed7e2d 100644 --- a/mass_mailing_custom_unsubscribe/README.rst +++ b/mass_mailing_custom_unsubscribe/README.rst @@ -7,7 +7,7 @@ Customizable unsubscription process on mass mailing emails !! This file is generated by oca-gen-addon-readme !! !! changes will be overwritten. !! !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! - !! source digest: sha256:d9c926e659f16e8191e3847dc204ab01676856ab6bfc3e49c932c78915c305b4 + !! source digest: sha256:8b791cb541252b9af8c94def6aff4adc1823e0a17a04c763f7525491d3bb4008 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! .. |badge1| image:: https://img.shields.io/badge/maturity-Beta-yellow.png @@ -115,6 +115,7 @@ Contributors * Ernesto Tejeda * Pedro M. Baeza * Carlos Roca + * Pilar Vargas Maintainers ~~~~~~~~~~~ diff --git a/mass_mailing_custom_unsubscribe/__manifest__.py b/mass_mailing_custom_unsubscribe/__manifest__.py index 69c00bd3e..e751a2ebd 100644 --- a/mass_mailing_custom_unsubscribe/__manifest__.py +++ b/mass_mailing_custom_unsubscribe/__manifest__.py @@ -19,10 +19,10 @@ "views/mail_unsubscription_view.xml", ], "assets": { - "web.assets_backend": [ + "mass_mailing.mailing_assets": [ ( "replace", - "mass_mailing/static/src/js/unsubscribe.js", + "mass_mailing/static/src/js/mailing_portal.js", "mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js", ), ], @@ -31,7 +31,6 @@ "mass_mailing_custom_unsubscribe/static/src/js/partner.tour.esm.js", ], }, - "demo": ["demo/assets.xml"], "images": ["images/form.png"], "author": "Tecnativa, Odoo Community Association (OCA)", "website": "https://github.com/OCA/social", diff --git a/mass_mailing_custom_unsubscribe/controllers/main.py b/mass_mailing_custom_unsubscribe/controllers/main.py index 72e242c4a..2c9584868 100644 --- a/mass_mailing_custom_unsubscribe/controllers/main.py +++ b/mass_mailing_custom_unsubscribe/controllers/main.py @@ -156,4 +156,4 @@ class CustomUnsubscribe(MassMailController): extra_context["default_reason_id"] = int(reason_id) if details: extra_context["default_details"] = details - request.context = dict(request.context, **extra_context) + request.update_context(**extra_context) diff --git a/mass_mailing_custom_unsubscribe/demo/assets.xml b/mass_mailing_custom_unsubscribe/demo/assets.xml deleted file mode 100644 index 7830810cd..000000000 --- a/mass_mailing_custom_unsubscribe/demo/assets.xml +++ /dev/null @@ -1,21 +0,0 @@ - - - - - - - - diff --git a/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot b/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot index 09fcd50f2..935b0eb32 100644 --- a/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot +++ b/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot @@ -4,7 +4,7 @@ # msgid "" msgstr "" -"Project-Id-Version: Odoo Server 15.0\n" +"Project-Id-Version: Odoo Server 16.0\n" "Report-Msgid-Bugs-To: \n" "Last-Translator: \n" "Language-Team: \n" @@ -39,11 +39,12 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_needaction +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_needaction msgid "Action Needed" msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 @@ -52,7 +53,7 @@ msgid "An error occured. Please try again later or contact us." msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 @@ -61,7 +62,7 @@ msgid "An error occurred. Please try again later or contact us." msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format @@ -70,6 +71,7 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_attachment_count +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_attachment_count msgid "Attachment Count" msgstr "" @@ -131,16 +133,19 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__failed_message_ids +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__failed_message_ids msgid "Failed Messages" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_follower_ids +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_follower_ids msgid "Followers" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_partner_ids +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_partner_ids msgid "Followers (Partners)" msgstr "" @@ -156,6 +161,7 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__has_message +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__has_message msgid "Has Message" msgstr "" @@ -182,12 +188,13 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_needaction -#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_needaction msgid "If checked, new messages require your attention." msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_error +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_has_error msgid "If checked, some messages have a delivery error." msgstr "" @@ -201,6 +208,7 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_is_follower +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_is_follower msgid "Is Follower" msgstr "" @@ -249,6 +257,7 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_main_attachment_id +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_main_attachment_id msgid "Main Attachment" msgstr "" @@ -270,21 +279,25 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_content +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_content msgid "Message Content" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_error +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_has_error msgid "Message Delivery error" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_content +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_content msgid "Message content, to be used only in searches" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_ids +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_ids msgid "Messages" msgstr "" @@ -315,41 +328,42 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_needaction_counter +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_needaction_counter msgid "Number of Actions" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_error_counter +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_has_error_counter msgid "Number of errors" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_needaction_counter -msgid "Number of messages which requires an action" +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_needaction_counter +msgid "Number of messages requiring action" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_error_counter +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__message_has_error_counter msgid "Number of messages with delivery error" msgstr "" -#. module: mass_mailing_custom_unsubscribe -#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread_counter -msgid "Number of unread messages" -msgstr "" - #. module: mass_mailing_custom_unsubscribe #: model:mail.unsubscription.reason,name:mass_mailing_custom_unsubscribe.reason_other msgid "Other reason" msgstr "" #. module: mass_mailing_custom_unsubscribe +#. odoo-python #: code:addons/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py:0 #, python-format msgid "Please indicate why are you unsubscribing." msgstr "" #. module: mass_mailing_custom_unsubscribe +#. odoo-python #: code:addons/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py:0 #, python-format msgid "Please provide details on why you are unsubscribing." @@ -381,16 +395,6 @@ msgstr "" msgid "Thank you!" msgstr "" -#. module: mass_mailing_custom_unsubscribe -#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread -msgid "Unread Messages" -msgstr "" - -#. module: mass_mailing_custom_unsubscribe -#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread_counter -msgid "Unread Messages Counter" -msgstr "" - #. module: mass_mailing_custom_unsubscribe #: model_terms:ir.ui.view,arch_db:mass_mailing_custom_unsubscribe.reason_form msgid "Unsubscribe now" @@ -416,11 +420,13 @@ msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__website_message_ids +#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__website_message_ids msgid "Website Messages" msgstr "" #. module: mass_mailing_custom_unsubscribe #: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__website_message_ids +#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__website_message_ids msgid "Website communication history" msgstr "" @@ -445,7 +451,7 @@ msgid "Year" msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 @@ -454,21 +460,21 @@ msgid "You are not authorized to do this!" msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format msgid "You have been successfully unsubscribed from %s." msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format msgid "You have been successfully unsubscribed." msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format msgid "" @@ -477,7 +483,7 @@ msgid "" msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format msgid "" @@ -486,7 +492,7 @@ msgid "" msgstr "" #. module: mass_mailing_custom_unsubscribe -#. openerp-web +#. odoo-javascript #: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0 #, python-format msgid "Your changes have been saved." diff --git a/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py b/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py index 9b417dcce..7fd4112b3 100644 --- a/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py +++ b/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py @@ -98,6 +98,7 @@ class MailUnsubscriptionReason(models.Model): _name = "mail.unsubscription.reason" _description = "Mail unsubscription reason" _order = "sequence, name" + _inherit = ["mail.thread"] name = fields.Char(index=True, translate=True, required=True) details_required = fields.Boolean( diff --git a/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst b/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst index 8325c81b0..047e23a80 100644 --- a/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst +++ b/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst @@ -7,3 +7,4 @@ * Ernesto Tejeda * Pedro M. Baeza * Carlos Roca + * Pilar Vargas diff --git a/mass_mailing_custom_unsubscribe/static/description/index.html b/mass_mailing_custom_unsubscribe/static/description/index.html index f1f8d4690..7d9ccddbe 100644 --- a/mass_mailing_custom_unsubscribe/static/description/index.html +++ b/mass_mailing_custom_unsubscribe/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:d9c926e659f16e8191e3847dc204ab01676856ab6bfc3e49c932c78915c305b4 +!! source digest: sha256:8b791cb541252b9af8c94def6aff4adc1823e0a17a04c763f7525491d3bb4008 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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

This addon extends the unsubscription form to let you:

@@ -464,6 +464,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome
  • Ernesto Tejeda
  • Pedro M. Baeza
  • Carlos Roca
  • +
  • Pilar Vargas
  • diff --git a/mass_mailing_custom_unsubscribe/tests/__init__.py b/mass_mailing_custom_unsubscribe/tests/__init__.py index b42af8c1d..9aad6de37 100644 --- a/mass_mailing_custom_unsubscribe/tests/__init__.py +++ b/mass_mailing_custom_unsubscribe/tests/__init__.py @@ -2,5 +2,3 @@ # License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). from . import test_ui - -# from . import test_unsubscription diff --git a/mass_mailing_custom_unsubscribe/tests/test_ui.py b/mass_mailing_custom_unsubscribe/tests/test_ui.py index 5f413eb7e..6a666338c 100644 --- a/mass_mailing_custom_unsubscribe/tests/test_ui.py +++ b/mass_mailing_custom_unsubscribe/tests/test_ui.py @@ -4,9 +4,11 @@ from unittest import mock from werkzeug import urls +from odoo.tests import tagged from odoo.tests.common import HttpCase +@tagged("post_install", "-at_install") class UICase(HttpCase): def extract_url(self, mail, *args, **kwargs): url = mail.mailing_id._get_unsubscribe_url(self.email, mail.res_id) @@ -33,7 +35,11 @@ class UICase(HttpCase): { "name": "test contact", "email": self.email, - "list_ids": [(6, False, self.lists.ids)], + "subscription_list_ids": [ + (0, 0, {"list_id": self.lists[0].id}), + (0, 0, {"list_id": self.lists[1].id}), + (0, 0, {"list_id": self.lists[2].id}), + ], } ) self.mailing = self.env["mailing.mailing"].create( @@ -70,7 +76,6 @@ class UICase(HttpCase): # Extract the unsubscription link from the message body with self.mail_postprocess_patch: self.mailing.action_send_mail() - self.start_tour( self.url, "mass_mailing_custom_unsubscribe_tour_contact", login="admin" ) @@ -130,11 +135,9 @@ class UICase(HttpCase): # Extract the unsubscription link from the message body with self.mail_postprocess_patch: self.mailing.action_send_mail() - self.start_tour( self.url, "mass_mailing_custom_unsubscribe_tour_partner", login="demo" ) - # Check results from running tour partner = self.env["res.partner"].browse(partner_id) self.assertTrue(partner.is_blacklisted) diff --git a/mass_mailing_custom_unsubscribe/tests/test_unsubscription.py b/mass_mailing_custom_unsubscribe/tests/test_unsubscription.py deleted file mode 100644 index de8d2b91d..000000000 --- a/mass_mailing_custom_unsubscribe/tests/test_unsubscription.py +++ /dev/null @@ -1,35 +0,0 @@ -# Copyright 2016 Jairo Llopis -# License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). - -from odoo.tests.common import SavepointCase - -from .. import exceptions - - -class UnsubscriptionCase(SavepointCase): - def test_details_required(self): - """Cannot create unsubscription without details when required.""" - with self.assertRaises(exceptions.DetailsRequiredError): - self.env["mail.unsubscription"].create( - { - "email": "axelor@yourcompany.example.com", - "mass_mailing_id": self.env.ref("mass_mailing.mass_mail_1").id, - "unsubscriber_id": "res.partner,%d" - % self.env.ref("base.res_partner_2").id, - "reason_id": self.env.ref( - "mass_mailing_custom_unsubscribe.reason_other" - ).id, - } - ) - - def test_reason_required(self): - """Cannot create unsubscription without reason when required.""" - with self.assertRaises(exceptions.ReasonRequiredError): - self.env["mail.unsubscription"].create( - { - "email": "axelor@yourcompany.example.com", - "mass_mailing_id": self.env.ref("mass_mailing.mass_mail_1").id, - "unsubscriber_id": "res.partner,%d" - % self.env.ref("base.res_partner_2").id, - } - )