From 9ba9f02d4dfe0d84cbb640c600c3ee0c4e7261d8 Mon Sep 17 00:00:00 2001 From: pilarvargas-tecnativa <pilar.vargas@tecnativa.com> 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 ----------- .../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 ------------------- 10 files changed, 16 insertions(+), 68 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 @@ -<?xml version="1.0" encoding="utf-8" ?> -<!-- Copyright 2016 Jairo Llopis <jairo.llopis@tecnativa.com> - License AGPL-3.0 or later (http://www.gnu.org/licenses/agpl). --> -<odoo> - -<!--This is set here to make tours work--> -<template id="mass_mailing_custom_unsubscribe.layout" inherit_id="mass_mailing.layout"> - <xpath expr="//t[@t-set='head']" position="inside"> - <t t-call-assets="web.assets_common_minimal" t-css="false" defer_load="True" /> - <t - t-call-assets="web.assets_frontend_minimal" - t-css="false" - defer_load="True" - /> - <t t-call="web.conditional_assets_tests" /> - <t t-call-assets="web.assets_common_lazy" t-css="false" lazy_load="True" /> - <t t-call-assets="web.assets_frontend_lazy" t-css="false" lazy_load="True" /> - </xpath> -</template> - -</odoo> 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 !!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!!! --> <p><a class="reference external image-reference" href="https://odoo-community.org/page/development-status"><img alt="Beta" src="https://img.shields.io/badge/maturity-Beta-yellow.png" /></a> <a class="reference external image-reference" href="http://www.gnu.org/licenses/agpl-3.0-standalone.html"><img alt="License: AGPL-3" src="https://img.shields.io/badge/licence-AGPL--3-blue.png" /></a> <a class="reference external image-reference" href="https://github.com/OCA/social/tree/16.0/mass_mailing_custom_unsubscribe"><img alt="OCA/social" src="https://img.shields.io/badge/github-OCA%2Fsocial-lightgray.png?logo=github" /></a> <a class="reference external image-reference" href="https://translation.odoo-community.org/projects/social-16-0/social-16-0-mass_mailing_custom_unsubscribe"><img alt="Translate me on Weblate" src="https://img.shields.io/badge/weblate-Translate%20me-F47D42.png" /></a> <a class="reference external image-reference" href="https://runboat.odoo-community.org/builds?repo=OCA/social&target_branch=16.0"><img alt="Try me on Runboat" src="https://img.shields.io/badge/runboat-Try%20me-875A7B.png" /></a></p> <p>This addon extends the unsubscription form to let you:</p> @@ -464,6 +464,7 @@ If you spotted it first, help us to smash it by providing a detailed and welcome <li>Ernesto Tejeda</li> <li>Pedro M. Baeza</li> <li>Carlos Roca</li> +<li>Pilar Vargas</li> </ul> </li> </ul> 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 <jairo.llopis@tecnativa.com> -# 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, - } - )