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&amp;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,
-                }
-            )