From fc38567fb2cab3ab9f37b22dc01b80adda04077e Mon Sep 17 00:00:00 2001
From: Carlos Roca
Date: Wed, 26 Aug 2020 08:57:06 +0200
Subject: [PATCH] [MIG] mass_mailing_custom_unsubscribe: Migration to v13.0
---
mass_mailing_custom_unsubscribe/README.rst | 11 +-
.../__manifest__.py | 2 +-
.../controllers/main.py | 13 +--
.../demo/assets.xml | 3 +-
.../i18n/mass_mailing_custom_unsubscribe.pot | 105 +++++++++---------
.../models/mail_blacklist.py | 4 +-
.../models/mail_mass_mailing.py | 11 +-
.../models/mail_mass_mailing_list.py | 2 +-
.../models/mail_unsubscription.py | 14 +--
.../readme/CONTRIBUTORS.rst | 1 +
.../static/description/index.html | 7 +-
.../static/src/js/unsubscribe.js | 12 +-
.../tests/test_ui.py | 23 ++--
.../views/mail_mass_mailing_list_view.xml | 4 +-
.../views/mail_unsubscription_reason_view.xml | 2 +-
15 files changed, 103 insertions(+), 111 deletions(-)
diff --git a/mass_mailing_custom_unsubscribe/README.rst b/mass_mailing_custom_unsubscribe/README.rst
index e585b58ee..dc2c639f6 100644
--- a/mass_mailing_custom_unsubscribe/README.rst
+++ b/mass_mailing_custom_unsubscribe/README.rst
@@ -14,13 +14,13 @@ Customizable unsubscription process on mass mailing emails
: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/12.0/mass_mailing_custom_unsubscribe
+ :target: https://github.com/OCA/social/tree/13.0/mass_mailing_custom_unsubscribe
:alt: OCA/social
.. |badge4| image:: https://img.shields.io/badge/weblate-Translate%20me-F47D42.png
- :target: https://translation.odoo-community.org/projects/social-12-0/social-12-0-mass_mailing_custom_unsubscribe
+ :target: https://translation.odoo-community.org/projects/social-13-0/social-13-0-mass_mailing_custom_unsubscribe
:alt: Translate me on Weblate
.. |badge5| image:: https://img.shields.io/badge/runbot-Try%20me-875A7B.png
- :target: https://runbot.odoo-community.org/runbot/205/12.0
+ :target: https://runbot.odoo-community.org/runbot/205/13.0
:alt: Try me on Runbot
|badge1| |badge2| |badge3| |badge4| |badge5|
@@ -88,7 +88,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 smashing it by providing a detailed and welcomed
-`feedback `_.
+`feedback `_.
Do not contact contributors directly about support or help with technical issues.
@@ -111,6 +111,7 @@ Contributors
* David Vidal
* Ernesto Tejeda
* Pedro M. Baeza
+ * Carlos Roca
Maintainers
~~~~~~~~~~~
@@ -125,6 +126,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/mass_mailing_custom_unsubscribe/__manifest__.py b/mass_mailing_custom_unsubscribe/__manifest__.py
index f723c5ca0..f87dedd2e 100644
--- a/mass_mailing_custom_unsubscribe/__manifest__.py
+++ b/mass_mailing_custom_unsubscribe/__manifest__.py
@@ -6,7 +6,7 @@
"name": "Customizable unsubscription process on mass mailing emails",
"summary": "Know and track (un)subscription reasons, GDPR compliant",
"category": "Marketing",
- "version": "12.0.1.0.2",
+ "version": "13.0.1.0.0",
"depends": ["mass_mailing"],
"data": [
"security/ir.model.access.csv",
diff --git a/mass_mailing_custom_unsubscribe/controllers/main.py b/mass_mailing_custom_unsubscribe/controllers/main.py
index 0db8084ec..72e242c4a 100644
--- a/mass_mailing_custom_unsubscribe/controllers/main.py
+++ b/mass_mailing_custom_unsubscribe/controllers/main.py
@@ -16,7 +16,7 @@ class CustomUnsubscribe(MassMailController):
def reason_form(self, mailing_id, email, res_id, reasons, token):
"""Get the unsubscription reason form.
- :param mail.mass_mailing mailing:
+ :param mailing.mailing mailing:
Mailing where the unsubscription is being processed.
:param str email:
@@ -46,6 +46,8 @@ class CustomUnsubscribe(MassMailController):
"Called `mailing()` with: %r", (mailing_id, email, res_id, token, post)
)
reasons = request.env["mail.unsubscription.reason"].search([])
+ if not res_id:
+ res_id = "0"
res_id = res_id and int(res_id)
try:
# Check if we already have a reason for unsubscription
@@ -57,13 +59,10 @@ class CustomUnsubscribe(MassMailController):
# Unsubscribe, saving reason and details by context
details = post.get("details", False)
self._add_extra_context(mailing_id, res_id, reason_id, details)
- mailing_obj = request.env["mail.mass_mailing"]
+ mailing_obj = request.env["mailing.mailing"]
mass_mailing = mailing_obj.sudo().browse(mailing_id)
model = mass_mailing.mailing_model_real
- if (
- "opt_out" in request.env[model]._fields
- and model != "mail.mass_mailing.contact"
- ):
+ if "opt_out" in request.env[model]._fields and model != "mailing.contact":
mass_mailing.update_opt_out_other(email, [res_id], True)
result = request.render(
"mass_mailing.page_unsubscribed",
@@ -81,7 +80,7 @@ class CustomUnsubscribe(MassMailController):
# You could get a DetailsRequiredError here, but only if HTML5
# validation fails, which should not happen in modern browsers
result = super().mailing(mailing_id, email, res_id, token=token, **post)
- if model == "mail.mass_mailing.contact":
+ if model == "mailing.contact":
# update list_ids taking into account
# not_cross_unsubscriptable field
result.qcontext.update(
diff --git a/mass_mailing_custom_unsubscribe/demo/assets.xml b/mass_mailing_custom_unsubscribe/demo/assets.xml
index 943dbe782..ca828bc29 100644
--- a/mass_mailing_custom_unsubscribe/demo/assets.xml
+++ b/mass_mailing_custom_unsubscribe/demo/assets.xml
@@ -18,7 +18,8 @@
-
+
+
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 27ab7a954..4f233b724 100644
--- a/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot
+++ b/mass_mailing_custom_unsubscribe/i18n/mass_mailing_custom_unsubscribe.pot
@@ -1,12 +1,12 @@
# Translation of Odoo Server.
# This file contains the translation of the following modules:
-# * mass_mailing_custom_unsubscribe
+# * mass_mailing_custom_unsubscribe
#
msgid ""
msgstr ""
-"Project-Id-Version: Odoo Server 12.0\n"
+"Project-Id-Version: Odoo Server 13.0\n"
"Report-Msgid-Bugs-To: \n"
-"Last-Translator: <>\n"
+"Last-Translator: \n"
"Language-Team: \n"
"MIME-Version: 1.0\n"
"Content-Type: text/plain; charset=UTF-8\n"
@@ -42,27 +42,22 @@ msgstr ""
msgid "Action Needed"
msgstr ""
-#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__allow_private
-msgid "Allow Private"
-msgstr ""
-
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:89
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:94
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:221
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:230
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:260
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:270
+#: 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
+#: 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
#, python-format
msgid "An error occured. Please try again later or contact us."
msgstr ""
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:163
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:169
+#: 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
msgid "An error occurred. Your changes have not been saved, try again later."
msgstr ""
@@ -73,7 +68,7 @@ msgid "Attachment Count"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: selection:mail.unsubscription,action:0
+#: model:ir.model.fields.selection,name:mass_mailing_custom_unsubscribe.selection__mail_unsubscription__action__blacklist_add
msgid "Blacklisting"
msgstr ""
@@ -101,7 +96,7 @@ msgid "Date"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: selection:mail.unsubscription,action:0
+#: model:ir.model.fields.selection,name:mass_mailing_custom_unsubscribe.selection__mail_unsubscription__action__blacklist_rm
msgid "De-blacklisting"
msgstr ""
@@ -179,24 +174,24 @@ msgstr ""
msgid "ID"
msgstr ""
-#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread
-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_needaction
+#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_unread
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__message_has_sms_error
msgid "If checked, some messages have a delivery error."
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mail_mass_mailing_list__not_cross_unsubscriptable
-msgid "If you mark this field, this list won't be shown when unsubscribing from other mailing list, in the section: 'Is there any other mailing list you want to leave?'"
+#: model:ir.model.fields,help:mass_mailing_custom_unsubscribe.field_mailing_list__not_cross_unsubscriptable
+msgid ""
+"If you mark this field, this list won't be shown when unsubscribing from "
+"other mailing list, in the section: 'Is there any other mailing list you "
+"want to leave?'"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
@@ -238,7 +233,7 @@ msgid "Mail unsubscription reason"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model,name:mass_mailing_custom_unsubscribe.model_mail_mass_mailing_list
+#: model:ir.model,name:mass_mailing_custom_unsubscribe.model_mailing_list
msgid "Mailing List"
msgstr ""
@@ -253,7 +248,7 @@ msgid "Main Attachment"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model,name:mass_mailing_custom_unsubscribe.model_mail_mass_mailing
+#: model:ir.model,name:mass_mailing_custom_unsubscribe.model_mailing_mailing
msgid "Mass Mailing"
msgstr ""
@@ -309,7 +304,7 @@ msgid "Name"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_mass_mailing_list__not_cross_unsubscriptable
+#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mailing_list__not_cross_unsubscriptable
msgid "Not cross unsubscriptable"
msgstr ""
@@ -320,7 +315,7 @@ msgstr ""
#. module: mass_mailing_custom_unsubscribe
#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_error_counter
-msgid "Number of error"
+msgid "Number of errors"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
@@ -344,13 +339,13 @@ msgid "Other reason"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: code:addons/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py:89
+#: 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
-#: code:addons/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py:98
+#: code:addons/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py:0
#, python-format
msgid "Please provide details on why you are unsubscribing."
msgstr ""
@@ -366,13 +361,18 @@ msgstr ""
msgid "Reason"
msgstr ""
+#. module: mass_mailing_custom_unsubscribe
+#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__message_has_sms_error
+msgid "SMS Delivery error"
+msgstr ""
+
#. module: mass_mailing_custom_unsubscribe
#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription_reason__sequence
msgid "Sequence"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: selection:mail.unsubscription,action:0
+#: model:ir.model.fields.selection,name:mass_mailing_custom_unsubscribe.selection__mail_unsubscription__action__subscription
msgid "Subscription"
msgstr ""
@@ -397,7 +397,7 @@ msgid "Unsubscribe now"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
-#: selection:mail.unsubscription,action:0
+#: model:ir.model.fields.selection,name:mass_mailing_custom_unsubscribe.selection__mail_unsubscription__action__unsubscription
msgid "Unsubscription"
msgstr ""
@@ -409,17 +409,9 @@ msgstr ""
#. module: mass_mailing_custom_unsubscribe
#: model_terms:ir.ui.view,arch_db:mass_mailing_custom_unsubscribe.reason
-msgid "We would appreciate if you provide feedback about why you updated
your subscriptions"
-msgstr ""
-
-#. module: mass_mailing_custom_unsubscribe
-#: model:ir.model.fields,field_description:mass_mailing_custom_unsubscribe.field_mail_unsubscription__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
-msgid "Website communication history"
+msgid ""
+"We would appreciate if you provide feedback about why you updated
your "
+"subscriptions"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
@@ -444,45 +436,48 @@ msgstr ""
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:147
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:199
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:247
+#: 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
#, python-format
msgid "You are not authorized to do this!"
msgstr ""
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:105
+#: 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
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:110
+#: 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
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:205
+#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0
#, python-format
-msgid "You have been successfully added to our blacklist. You will not be contacted anymore by our services."
+msgid ""
+"You have been successfully added to our blacklist. You will"
+" not be contacted anymore by our services."
msgstr ""
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:253
+#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0
#, python-format
-msgid "You have been successfully removed from our blacklist. You are now able to be contacted by our services."
+msgid ""
+"You have been successfully removed from our blacklist. You "
+"are now able to be contacted by our services."
msgstr ""
#. module: mass_mailing_custom_unsubscribe
#. openerp-web
-#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:152
+#: code:addons/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js:0
#, python-format
msgid "Your changes have been saved."
msgstr ""
-
diff --git a/mass_mailing_custom_unsubscribe/models/mail_blacklist.py b/mass_mailing_custom_unsubscribe/models/mail_blacklist.py
index 29746e79c..e1e19f232 100644
--- a/mass_mailing_custom_unsubscribe/models/mail_blacklist.py
+++ b/mass_mailing_custom_unsubscribe/models/mail_blacklist.py
@@ -11,7 +11,7 @@ class MailBlackList(models.Model):
mailing_id = self.env.context.get("mailing_id")
res_id = self.env.context.get("unsubscription_res_id")
if mailing_id and res_id:
- mailing = self.env["mail.mass_mailing"].browse(mailing_id, self._prefetch)
+ mailing = self.env["mailing.mailing"].browse(mailing_id)
model_name = mailing.mailing_model_real
self.env["mail.unsubscription"].create(
{
@@ -27,7 +27,7 @@ class MailBlackList(models.Model):
mailing_id = self.env.context.get("mailing_id")
res_id = self.env.context.get("unsubscription_res_id")
if mailing_id and res_id:
- mailing = self.env["mail.mass_mailing"].browse(mailing_id, self._prefetch)
+ mailing = self.env["mailing.mailing"].browse(mailing_id)
model_name = mailing.mailing_model_real
self.env["mail.unsubscription"].create(
{
diff --git a/mass_mailing_custom_unsubscribe/models/mail_mass_mailing.py b/mass_mailing_custom_unsubscribe/models/mail_mass_mailing.py
index 20d6e48e9..1b3a78729 100644
--- a/mass_mailing_custom_unsubscribe/models/mail_mass_mailing.py
+++ b/mass_mailing_custom_unsubscribe/models/mail_mass_mailing.py
@@ -9,13 +9,13 @@ from odoo.tools.safe_eval import safe_eval
class MailMassMailing(models.Model):
- _inherit = "mail.mass_mailing"
+ _inherit = "mailing.mailing"
def update_opt_out(self, email, list_ids, value):
"""Save unsubscription reason when opting out from mailing."""
self.ensure_one()
action = "unsubscription" if value else "subscription"
- subscription_model = self.env["mail.mass_mailing.list_contact_rel"]
+ subscription_model = self.env["mailing.contact.subscription"]
opt_out_records = subscription_model.search(
[
("contact_id.email", "=ilike", email),
@@ -23,7 +23,7 @@ class MailMassMailing(models.Model):
("opt_out", "!=", value),
]
)
- model_name = "mail.mass_mailing.contact"
+ model_name = "mailing.contact"
for contact, subscriptions in groupby(opt_out_records, lambda r: r.contact_id):
mailing_list_ids = [r.list_id.id for r in subscriptions]
# reason_id and details are expected from the context
@@ -64,10 +64,7 @@ class MailMassMailing(models.Model):
"""Handle models with opt_out field for excluding them."""
self.ensure_one()
model = self.env[self.mailing_model_real].with_context(active_test=False)
- if (
- self.mailing_model_real != "mail.mass_mailing.contact"
- and "opt_out" in model._fields
- ):
+ if self.mailing_model_real != "mailing.contact" and "opt_out" in model._fields:
email_fname = "email_from"
if "email" in model._fields:
email_fname = "email"
diff --git a/mass_mailing_custom_unsubscribe/models/mail_mass_mailing_list.py b/mass_mailing_custom_unsubscribe/models/mail_mass_mailing_list.py
index f1088e675..055879ddc 100644
--- a/mass_mailing_custom_unsubscribe/models/mail_mass_mailing_list.py
+++ b/mass_mailing_custom_unsubscribe/models/mail_mass_mailing_list.py
@@ -5,7 +5,7 @@ from odoo import fields, models
class MailMassMailing(models.Model):
- _inherit = "mail.mass_mailing.list"
+ _inherit = "mailing.list"
not_cross_unsubscriptable = fields.Boolean(
string="Not cross unsubscriptable",
diff --git a/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py b/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py
index 1a46d6391..71e980583 100644
--- a/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py
+++ b/mass_mailing_custom_unsubscribe/models/mail_unsubscription.py
@@ -3,7 +3,7 @@
from odoo import _, api, fields, models
-from odoo.addons.mass_mailing.models.mass_mailing import MASS_MAILING_BUSINESS_MODELS
+from odoo.addons.mass_mailing.models.mailing import MASS_MAILING_BUSINESS_MODELS
from .. import exceptions
@@ -29,7 +29,7 @@ class MailUnsubscription(models.Model):
help="What did the (un)subscriber choose to do.",
)
mass_mailing_id = fields.Many2one(
- "mail.mass_mailing",
+ "mailing.mailing",
"Mass mailing",
required=True,
help="Mass mailing from which he was unsubscribed.",
@@ -40,7 +40,7 @@ class MailUnsubscription(models.Model):
help="Who was subscribed or unsubscribed.",
)
mailing_list_ids = fields.Many2many(
- comodel_name="mail.mass_mailing.list",
+ comodel_name="mailing.list",
string="Mailing lists",
help="(Un)subscribed mass mailing lists, if any.",
)
@@ -59,8 +59,8 @@ class MailUnsubscription(models.Model):
def map_mailing_list_models(self, models):
model_mapped = []
for model in models:
- if model == "mail.mass_mailing.list":
- model_mapped.append(("mail.mass_mailing.contact", model))
+ if model == "mailing.list":
+ model_mapped.append(("mailing.contact", model))
else:
model_mapped.append((model, model))
return model_mapped
@@ -71,7 +71,7 @@ class MailUnsubscription(models.Model):
@api.model
def _selection_unsubscriber_id(self):
- """Models that can be linked to a ``mail.mass_mailing``."""
+ """Models that can be linked to a ``mailing.mailing``."""
model = (
self.env["ir.model"]
.search([("model", "in", MASS_MAILING_BUSINESS_MODELS)])
@@ -79,7 +79,6 @@ class MailUnsubscription(models.Model):
)
return self.map_mailing_list_models(model)
- @api.multi
@api.constrains("action", "reason_id")
def _check_reason_needed(self):
"""Ensure reason is given for unsubscriptions."""
@@ -90,7 +89,6 @@ class MailUnsubscription(models.Model):
_("Please indicate why are you unsubscribing.")
)
- @api.multi
@api.constrains("details", "reason_id")
def _check_details_needed(self):
"""Ensure details are given if required."""
diff --git a/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst b/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst
index c2d056141..8325c81b0 100644
--- a/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst
+++ b/mass_mailing_custom_unsubscribe/readme/CONTRIBUTORS.rst
@@ -6,3 +6,4 @@
* David Vidal
* Ernesto Tejeda
* Pedro M. Baeza
+ * Carlos Roca
diff --git a/mass_mailing_custom_unsubscribe/static/description/index.html b/mass_mailing_custom_unsubscribe/static/description/index.html
index 415a40c13..c6ea2fff4 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. !!
!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! -->
-

+

This addon extends the unsubscription form to let you:
- Choose which mailing lists are not cross-unsubscriptable when unsubscribing
@@ -440,7 +440,7 @@ duplicated functionality and depending on it instead of replacing it).
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 smashing it by providing a detailed and welcomed
-feedback.
+feedback.
Do not contact contributors directly about support or help with technical issues.
@@ -461,6 +461,7 @@ If you spotted it first, help us smashing it by providing a detailed and welcome
David Vidal
Ernesto Tejeda
Pedro M. Baeza
+
Carlos Roca
@@ -472,7 +473,7 @@ If you spotted it first, help us smashing 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.
diff --git a/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js b/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js
index fee035a8a..7417db14d 100644
--- a/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js
+++ b/mass_mailing_custom_unsubscribe/static/src/js/unsubscribe.js
@@ -4,7 +4,7 @@
/* This JS module replaces core AJAX submission because it is impossible
* to extend it as it is currently designed. It is almost a copy+paste from
* upstream, to allow easier version/patch updates, so linter is disabled. */
- /* eslint-disable */
+/* eslint-disable */
odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
'use strict';
@@ -31,7 +31,7 @@ odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
$radio.on('change click', function (e) {
$details.prop(
"required",
- $(event.target).is("[data-details-required]") && $(event.target).is(":visible")
+ $(e.target).is("[data-details-required]") && $(e.target).is(":visible")
);
});
@@ -90,7 +90,7 @@ odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
$info_state.removeClass('alert-success').removeClass('alert-info').removeClass('alert-warning').addClass('alert-error');
}
})
- .fail(function () {
+ .guardedCatch(function () {
$('#subscription_info').html(_t('An error occured. Please try again later or contact us.'));
$info_state.removeClass('alert-success').removeClass('alert-info').removeClass('alert-warning').addClass('alert-error');
});
@@ -164,7 +164,7 @@ odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
$info_state.removeClass('alert-info').addClass('alert-warning');
}
})
- .fail(function () {
+ .guardedCatch(function () {
$('#info_state').removeClass('invisible');
$('#subscription_info').html(_t('An error occurred. Your changes have not been saved, try again later.'));
$info_state.removeClass('alert-info').addClass('alert-warning');
@@ -226,7 +226,7 @@ odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
$('#unsubscribed_info').hide();
}
})
- .fail(function () {
+ .guardedCatch(function () {
$('#subscription_info').html(_t('An error occured. Please try again later or contact us.'));
$info_state.removeClass('alert-success').removeClass('alert-info').removeClass('alert-warning').addClass('alert-error');
});
@@ -265,7 +265,7 @@ odoo.define('mass_mailing_custom_unsubscribe.unsubscribe', function (require) {
$('#unsubscribed_info').hide();
}
})
- .fail(function () {
+ .guardedCatch(function () {
$('#info_state').removeClass('invisible');
$('#subscription_info').html(_t('An error occured. Please try again later or contact us.'));
$info_state.removeClass('alert-success').removeClass('alert-info').removeClass('alert-warning').addClass('alert-error');
diff --git a/mass_mailing_custom_unsubscribe/tests/test_ui.py b/mass_mailing_custom_unsubscribe/tests/test_ui.py
index 7d9960df8..37844cce9 100644
--- a/mass_mailing_custom_unsubscribe/tests/test_ui.py
+++ b/mass_mailing_custom_unsubscribe/tests/test_ui.py
@@ -28,24 +28,23 @@ class UICase(HttpCase):
)
self.domain = self.env["ir.config_parameter"].get_param("web.base.url")
- List = self.lists = self.env["mail.mass_mailing.list"]
+ List = self.lists = self.env["mailing.list"]
for n in range(4):
self.lists += List.create({"name": "test list %d" % n})
- self.contact = self.env["mail.mass_mailing.contact"].create(
+ self.contact = self.env["mailing.contact"].create(
{
"name": "test contact",
"email": self.email,
"list_ids": [(6, False, self.lists.ids)],
}
)
- self.mailing = self.env["mail.mass_mailing"].create(
+ self.mailing = self.env["mailing.mailing"].create(
{
"name": "test mailing %d" % n,
- "mailing_model_id": self.env.ref(
- "mass_mailing.model_mail_mass_mailing_list"
- ).id,
+ "mailing_model_id": self.env.ref("mass_mailing.model_mailing_list").id,
"contact_list_ids": [(6, 0, [self.lists[0].id, self.lists[3].id])],
"reply_to_mode": "thread",
+ "subject": "Test",
}
)
self.mailing._onchange_model_and_list()
@@ -73,7 +72,7 @@ class UICase(HttpCase):
self.lists[3].is_public = False
# Extract the unsubscription link from the message body
with self.mail_postprocess_patch:
- self.mailing.send_mail()
+ self.mailing.action_send_mail()
tour = "mass_mailing_custom_unsubscribe_tour_contact"
self.browser_js(
@@ -84,9 +83,9 @@ class UICase(HttpCase):
)
# Check results from running tour
- self.assertFalse(self.lists[0].subscription_contact_ids.opt_out)
- self.assertTrue(self.lists[1].subscription_contact_ids.opt_out)
- self.assertFalse(self.lists[2].subscription_contact_ids.opt_out)
+ self.assertFalse(self.lists[0].subscription_ids.opt_out)
+ self.assertTrue(self.lists[1].subscription_ids.opt_out)
+ self.assertFalse(self.lists[2].subscription_ids.opt_out)
cnt = self.contact
common_domain = [
@@ -137,10 +136,10 @@ class UICase(HttpCase):
)
# Extract the unsubscription link from the message body
with self.mail_postprocess_patch:
- self.mailing.send_mail()
+ self.mailing.action_send_mail()
tour = "mass_mailing_custom_unsubscribe_tour_partner"
- self.phantom_js(
+ self.browser_js(
url_path=self.url,
code=self._tour_run % tour,
ready=self._tour_ready % tour,
diff --git a/mass_mailing_custom_unsubscribe/views/mail_mass_mailing_list_view.xml b/mass_mailing_custom_unsubscribe/views/mail_mass_mailing_list_view.xml
index c0dd6d275..7008b8243 100644
--- a/mass_mailing_custom_unsubscribe/views/mail_mass_mailing_list_view.xml
+++ b/mass_mailing_custom_unsubscribe/views/mail_mass_mailing_list_view.xml
@@ -5,8 +5,8 @@
- mail.mass_mailing.list
-
+ mailing.list
+