From 75da1fed11ad6518a0063cc29ff31f78fecad595 Mon Sep 17 00:00:00 2001 From: Akim Juillerat Date: Tue, 22 Mar 2022 14:59:14 +0100 Subject: [PATCH] Create module mass_mailing_contact_active --- mass_mailing_contact_active/__init__.py | 1 + mass_mailing_contact_active/__manifest__.py | 14 ++++++++++++++ .../models/__init__.py | 2 ++ .../models/mailing_contact.py | 16 ++++++++++++++++ .../models/mailing_contact_subscription.py | 10 ++++++++++ .../readme/CONTRIBUTORS.rst | 1 + .../readme/DESCRIPTION.rst | 1 + mass_mailing_contact_active/tests/__init__.py | 1 + .../tests/test_mailing_contact_active.py | 19 +++++++++++++++++++ .../odoo/addons/mass_mailing_contact_active | 1 + setup/mass_mailing_contact_active/setup.py | 6 ++++++ 11 files changed, 72 insertions(+) create mode 100644 mass_mailing_contact_active/__init__.py create mode 100644 mass_mailing_contact_active/__manifest__.py create mode 100644 mass_mailing_contact_active/models/__init__.py create mode 100644 mass_mailing_contact_active/models/mailing_contact.py create mode 100644 mass_mailing_contact_active/models/mailing_contact_subscription.py create mode 100644 mass_mailing_contact_active/readme/CONTRIBUTORS.rst create mode 100644 mass_mailing_contact_active/readme/DESCRIPTION.rst create mode 100644 mass_mailing_contact_active/tests/__init__.py create mode 100644 mass_mailing_contact_active/tests/test_mailing_contact_active.py create mode 120000 setup/mass_mailing_contact_active/odoo/addons/mass_mailing_contact_active create mode 100644 setup/mass_mailing_contact_active/setup.py diff --git a/mass_mailing_contact_active/__init__.py b/mass_mailing_contact_active/__init__.py new file mode 100644 index 000000000..0650744f6 --- /dev/null +++ b/mass_mailing_contact_active/__init__.py @@ -0,0 +1 @@ +from . import models diff --git a/mass_mailing_contact_active/__manifest__.py b/mass_mailing_contact_active/__manifest__.py new file mode 100644 index 000000000..a8d8f16a4 --- /dev/null +++ b/mass_mailing_contact_active/__manifest__.py @@ -0,0 +1,14 @@ +# Copyright 2022 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +{ + "name": "Mass Mailing Contact Active", + "summary": "Adds active feature on mailing list contact and subscriptions", + "version": "13.0.1.0.0", + "category": "Marketing/Email Marketing", + "website": "https://github.com/OCA/social", + "author": "Camptocamp, Odoo Community Association (OCA)", + "license": "AGPL-3", + "application": False, + "installable": True, + "depends": ["mass_mailing"], +} diff --git a/mass_mailing_contact_active/models/__init__.py b/mass_mailing_contact_active/models/__init__.py new file mode 100644 index 000000000..492201e70 --- /dev/null +++ b/mass_mailing_contact_active/models/__init__.py @@ -0,0 +1,2 @@ +from . import mailing_contact +from . import mailing_contact_subscription diff --git a/mass_mailing_contact_active/models/mailing_contact.py b/mass_mailing_contact_active/models/mailing_contact.py new file mode 100644 index 000000000..9e078f1b7 --- /dev/null +++ b/mass_mailing_contact_active/models/mailing_contact.py @@ -0,0 +1,16 @@ +# Copyright 2022 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import fields, models + + +class MailingContact(models.Model): + + _inherit = "mailing.contact" + + active = fields.Boolean(default=True) + + def write(self, values): + res = super().write(values) + if "active" in values: + self.mapped("subscription_list_ids").write({"active": values["active"]}) + return res diff --git a/mass_mailing_contact_active/models/mailing_contact_subscription.py b/mass_mailing_contact_active/models/mailing_contact_subscription.py new file mode 100644 index 000000000..5ecce5837 --- /dev/null +++ b/mass_mailing_contact_active/models/mailing_contact_subscription.py @@ -0,0 +1,10 @@ +# Copyright 2022 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo import fields, models + + +class MailingContactSubscription(models.Model): + + _inherit = "mailing.contact.subscription" + + active = fields.Boolean(default=True) diff --git a/mass_mailing_contact_active/readme/CONTRIBUTORS.rst b/mass_mailing_contact_active/readme/CONTRIBUTORS.rst new file mode 100644 index 000000000..e31e2f0c4 --- /dev/null +++ b/mass_mailing_contact_active/readme/CONTRIBUTORS.rst @@ -0,0 +1 @@ +* Akim Juillerat diff --git a/mass_mailing_contact_active/readme/DESCRIPTION.rst b/mass_mailing_contact_active/readme/DESCRIPTION.rst new file mode 100644 index 000000000..f54eb74ca --- /dev/null +++ b/mass_mailing_contact_active/readme/DESCRIPTION.rst @@ -0,0 +1 @@ +This module adds an active field on mailing contact and subscription. diff --git a/mass_mailing_contact_active/tests/__init__.py b/mass_mailing_contact_active/tests/__init__.py new file mode 100644 index 000000000..e7b86f146 --- /dev/null +++ b/mass_mailing_contact_active/tests/__init__.py @@ -0,0 +1 @@ +from . import test_mailing_contact_active diff --git a/mass_mailing_contact_active/tests/test_mailing_contact_active.py b/mass_mailing_contact_active/tests/test_mailing_contact_active.py new file mode 100644 index 000000000..6f0173f61 --- /dev/null +++ b/mass_mailing_contact_active/tests/test_mailing_contact_active.py @@ -0,0 +1,19 @@ +# Copyright 2022 Camptocamp SA +# License AGPL-3.0 or later (https://www.gnu.org/licenses/agpl) +from odoo.tests.common import SavepointCase + + +class TestMailingContactActive(SavepointCase): + @classmethod + def setUpClass(cls): + super().setUpClass() + cls.mailing_contact = cls.env.ref("mass_mailing.mass_mail_contact_1") + + def test_archive_unarchive_mailing_contact(self): + self.assertTrue(self.mailing_contact.active) + subscription = self.mailing_contact.subscription_list_ids + self.assertTrue(subscription) + self.assertTrue(subscription.active) + self.mailing_contact.write({"active": False}) + self.assertFalse(self.mailing_contact.active) + self.assertFalse(subscription.active) diff --git a/setup/mass_mailing_contact_active/odoo/addons/mass_mailing_contact_active b/setup/mass_mailing_contact_active/odoo/addons/mass_mailing_contact_active new file mode 120000 index 000000000..c793287ec --- /dev/null +++ b/setup/mass_mailing_contact_active/odoo/addons/mass_mailing_contact_active @@ -0,0 +1 @@ +../../../../mass_mailing_contact_active \ No newline at end of file diff --git a/setup/mass_mailing_contact_active/setup.py b/setup/mass_mailing_contact_active/setup.py new file mode 100644 index 000000000..28c57bb64 --- /dev/null +++ b/setup/mass_mailing_contact_active/setup.py @@ -0,0 +1,6 @@ +import setuptools + +setuptools.setup( + setup_requires=['setuptools-odoo'], + odoo_addon=True, +)