From c00ea04837e07aa63dd9c4e6d8c538ff76d4a420 Mon Sep 17 00:00:00 2001 From: dht-odoo Date: Wed, 29 Dec 2021 18:38:46 +0530 Subject: [PATCH] [IMP] mass_mailing(_sms): add a button to send mailing & sms from mailing list This commit introduces a button "Send New Mailing" & "Send New SMS" on the mailing list so that one can direct send mailing & sms from a mailing list. The current list will be set as default one in the mailing. TaskId-2702607 Part-of: odoo/odoo#82107 --- addons/mass_mailing/models/mailing_list.py | 2 ++ .../mass_mailing/tests/test_mailing_list.py | 13 +++++++++ .../mass_mailing/views/mailing_list_views.xml | 4 +++ .../mass_mailing_sms/models/mailing_list.py | 16 +++++++++++ addons/mass_mailing_sms/tests/__init__.py | 1 + .../tests/test_mailing_list.py | 27 +++++++++++++++++++ .../views/mailing_list_views.xml | 12 +++++++++ 7 files changed, 75 insertions(+) create mode 100644 addons/mass_mailing_sms/tests/test_mailing_list.py diff --git a/addons/mass_mailing/models/mailing_list.py b/addons/mass_mailing/models/mailing_list.py index c8ca4e4743b..ce995d2c1ed 100644 --- a/addons/mass_mailing/models/mailing_list.py +++ b/addons/mass_mailing/models/mailing_list.py @@ -160,6 +160,8 @@ class MassMailingList(models.Model): 'context': { **self.env.context, 'default_contact_list_ids': self.ids, + 'default_mailing_type': 'mail', + 'default_model_id': self.env['ir.model']._get_id('mailing.list'), }, 'target': 'current', 'view_type': 'form', diff --git a/addons/mass_mailing/tests/test_mailing_list.py b/addons/mass_mailing/tests/test_mailing_list.py index 58c7f4f31c0..b9cc685d51d 100644 --- a/addons/mass_mailing/tests/test_mailing_list.py +++ b/addons/mass_mailing/tests/test_mailing_list.py @@ -119,6 +119,19 @@ class TestMailingListMerge(MassMailCommon): self.assertEqual(contact.subscription_ids[0].opt_out_datetime, datetime(2022, 1, 1, 12, 0, 0)) self.assertFalse(contact.subscription_ids[1].opt_out_datetime) + @users('user_marketing') + def test_mailing_list_action_send_mailing(self): + mailing_ctx = self.mailing_list_1.action_send_mailing().get('context', {}) + form = Form(self.env['mailing.mailing'].with_context(mailing_ctx)) + form.subject = 'Test Mail' + mailing = form.save() + # Check that mailing model and mailing list are set properly + self.assertEqual( + mailing.mailing_model_id, self.env['ir.model']._get('mailing.list'), + 'Should have correct mailing model set') + self.assertEqual(mailing.contact_list_ids, self.mailing_list_1, 'Should have correct mailing list set') + self.assertEqual(mailing.mailing_type, 'mail', 'Should have correct mailing_type') + @users('user_marketing') def test_mailing_list_contact_copy_in_context_of_mailing_list(self): MailingContact = self.env['mailing.contact'] diff --git a/addons/mass_mailing/views/mailing_list_views.xml b/addons/mass_mailing/views/mailing_list_views.xml index 30f24550672..94d387137ee 100644 --- a/addons/mass_mailing/views/mailing_list_views.xml +++ b/addons/mass_mailing/views/mailing_list_views.xml @@ -39,6 +39,10 @@ mailing.list
+
+