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
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->

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,
- }
- )