From b897571b9f61574919dce40c39b6d4a94dedf3d4 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?Thibault=20Delavall=C3=A9e?= Date: Wed, 25 May 2022 15:16:25 +0200 Subject: [PATCH] [REF] mass_mailing: rename subscription model PURPOSE Overall cleaning of subscription and exclusion management code from portal. This code comes mainly from v12 and can now benefit from cleaning and update. SPECIFICATIONS In this commit we rename ``mailing.contact.subscription`` model into the shorter ``mailing.subscription``. This is sufficient to explain the model purpose. As we plan to add an opt-out model this also allows to have sub models with suffixes without being too long. We also rename ``subscription_list_ids`` field on contact model to ``subscription_ids`` as this is shorter and clearer. Finally the ``mailing_contact_list_rel`` table name that comes from old implementations (simple m2m table) is renamed to ``mailing_subscription`` to match the model name. Task-2669037 (Mass Mailing: Refactor js/portal for subscription) Part-of: odoo/odoo#86084 --- addons/mass_mailing/__manifest__.py | 6 ++-- addons/mass_mailing/controllers/main.py | 8 ++--- ...scription.xml => mailing_subscription.xml} | 2 +- ...scription.xml => mailing_subscription.xml} | 16 +++++----- addons/mass_mailing/models/__init__.py | 2 +- addons/mass_mailing/models/mailing.py | 2 +- addons/mass_mailing/models/mailing_contact.py | 28 ++++++++--------- addons/mass_mailing/models/mailing_list.py | 30 +++++++++---------- ...ubscription.py => mailing_subscription.py} | 8 ++--- .../mass_mailing/security/ir.model.access.csv | 2 +- .../tests/test_mailing_controllers.py | 2 +- .../mass_mailing/tests/test_mailing_list.py | 16 +++++----- .../views/mailing_contact_views.xml | 2 +- ...ews.xml => mailing_subscription_views.xml} | 18 +++++------ addons/mass_mailing_sms/__manifest__.py | 2 +- addons/mass_mailing_sms/controllers/main.py | 4 +-- ...scription.xml => mailing_subscription.xml} | 10 +++---- .../test_mass_mailing/tests/test_mailing.py | 2 +- .../website_mass_mailing/controllers/main.py | 4 +-- 19 files changed, 82 insertions(+), 82 deletions(-) rename addons/mass_mailing/data/{mailing_contact_subscription.xml => mailing_subscription.xml} (92%) rename addons/mass_mailing/demo/{mailing_contact_subscription.xml => mailing_subscription.xml} (91%) rename addons/mass_mailing/models/{mailing_contact_subscription.py => mailing_subscription.py} (91%) rename addons/mass_mailing/views/{mailing_contact_subscription_views.xml => mailing_subscription_views.xml} (72%) rename addons/mass_mailing_sms/demo/{mailing_contact_subscription.xml => mailing_subscription.xml} (90%) diff --git a/addons/mass_mailing/__manifest__.py b/addons/mass_mailing/__manifest__.py index 83b2f46f09f..0d88573ceab 100644 --- a/addons/mass_mailing/__manifest__.py +++ b/addons/mass_mailing/__manifest__.py @@ -28,7 +28,7 @@ 'data/ir_module_data.xml', 'data/mailing_data_templates.xml', 'data/mailing_list_contact.xml', - 'data/mailing_contact_subscription.xml', + 'data/mailing_subscription.xml', 'data/res_users_data.xml', 'wizard/mail_compose_message_views.xml', 'wizard/mailing_contact_import_views.xml', @@ -41,9 +41,9 @@ 'views/mailing_trace_views.xml', 'views/link_tracker_views.xml', 'views/mailing_contact_views.xml', - 'views/mailing_contact_subscription_views.xml', 'views/mailing_list_views.xml', 'views/mailing_mailing_views.xml', + 'views/mailing_subscription_views.xml', 'views/res_config_settings_views.xml', 'views/utm_campaign_views.xml', 'views/mailing_menus.xml', @@ -82,7 +82,7 @@ 'demo': [ 'demo/utm.xml', 'demo/mailing_list_contact.xml', - 'demo/mailing_contact_subscription.xml', + 'demo/mailing_subscription.xml', 'demo/mailing_mailing.xml', 'demo/mailing_trace.xml', ], diff --git a/addons/mass_mailing/controllers/main.py b/addons/mass_mailing/controllers/main.py index bc8da673020..bbbbece6b8b 100644 --- a/addons/mass_mailing/controllers/main.py +++ b/addons/mass_mailing/controllers/main.py @@ -152,10 +152,10 @@ class MassMailController(http.Controller): # as there may be several contacts / email -> consider any opt-in overrides # opt-out contacts = self._fetch_contacts(email) - lists_optin = contacts.subscription_list_ids.filtered( + lists_optin = contacts.subscription_ids.filtered( lambda sub: not sub.opt_out ).list_id - lists_optout = contacts.subscription_list_ids.filtered( + lists_optout = contacts.subscription_ids.filtered( lambda sub: sub.opt_out and sub.list_id not in lists_optin ).list_id lists_public = request.env['mailing.list'].sudo().search( @@ -188,7 +188,7 @@ class MassMailController(http.Controller): 'is_blocklisted': mail_blocklist.active if mail_blocklist else False, # mailing lists 'contacts': contacts, - 'lists_contacts': contacts.subscription_list_ids.list_id, + 'lists_contacts': contacts.subscription_ids.list_id, 'lists_optin': lists_optin, 'lists_optout': lists_optout, 'lists_public': lists_public, @@ -212,7 +212,7 @@ class MassMailController(http.Controller): contacts = self._fetch_contacts(email_found) lists_optin = request.env['mailing.list'].sudo().browse(lists_optin_ids or []).exists() # opt-out all not chosen lists - lists_to_optout = contacts.subscription_list_ids.filtered( + lists_to_optout = contacts.subscription_ids.filtered( lambda sub: not sub.opt_out and sub.list_id not in lists_optin ).list_id # opt-in in either already member, either public (to avoid trying to opt-in diff --git a/addons/mass_mailing/data/mailing_contact_subscription.xml b/addons/mass_mailing/data/mailing_subscription.xml similarity index 92% rename from addons/mass_mailing/data/mailing_contact_subscription.xml rename to addons/mass_mailing/data/mailing_subscription.xml index 8c6302d421b..fb0b8e3bd79 100644 --- a/addons/mass_mailing/data/mailing_contact_subscription.xml +++ b/addons/mass_mailing/data/mailing_subscription.xml @@ -1,7 +1,7 @@ - + diff --git a/addons/mass_mailing/demo/mailing_contact_subscription.xml b/addons/mass_mailing/demo/mailing_subscription.xml similarity index 91% rename from addons/mass_mailing/demo/mailing_contact_subscription.xml rename to addons/mass_mailing/demo/mailing_subscription.xml index d15cf6b1bd4..b323b91ce46 100644 --- a/addons/mass_mailing/demo/mailing_contact_subscription.xml +++ b/addons/mass_mailing/demo/mailing_subscription.xml @@ -2,38 +2,38 @@ - + - + - + - + True - + - + True - + - + diff --git a/addons/mass_mailing/models/__init__.py b/addons/mass_mailing/models/__init__.py index efdb955fe76..3f5ef60d981 100644 --- a/addons/mass_mailing/models/__init__.py +++ b/addons/mass_mailing/models/__init__.py @@ -4,7 +4,7 @@ from . import ir_mail_server from . import ir_model from . import link_tracker -from . import mailing_contact_subscription +from . import mailing_subscription # keep before due to decorated m2m from . import mailing_contact from . import mailing_list from . import mailing_trace diff --git a/addons/mass_mailing/models/mailing.py b/addons/mass_mailing/models/mailing.py index c3ab69d92c9..3a38fc1ba4f 100644 --- a/addons/mass_mailing/models/mailing.py +++ b/addons/mass_mailing/models/mailing.py @@ -749,7 +749,7 @@ class MassMailing(models.Model): if self.contact_list_ids: action['context'] = { 'default_mailing_list_ids': self.contact_list_ids[0].ids, - 'default_subscription_list_ids': [(0, 0, {'list_id': self.contact_list_ids[0].id})], + 'default_subscription_ids': [(0, 0, {'list_id': self.contact_list_ids[0].id})], } action['domain'] = [('list_ids', 'in', self.contact_list_ids.ids)] return action diff --git a/addons/mass_mailing/models/mailing_contact.py b/addons/mass_mailing/models/mailing_contact.py index 404fa4de43d..f7026737cc2 100644 --- a/addons/mass_mailing/models/mailing_contact.py +++ b/addons/mass_mailing/models/mailing_contact.py @@ -19,13 +19,13 @@ class MassMailingContact(models.Model): def default_get(self, fields_list): """ When coming from a mailing list we may have a default_list_ids context - key. We should use it to create subscription_list_ids default value that + key. We should use it to create subscription_ids default value that are displayed to the user as list_ids is not displayed on form view. """ res = super(MassMailingContact, self).default_get(fields_list) - if 'subscription_list_ids' in fields_list and not res.get('subscription_list_ids'): + if 'subscription_ids' in fields_list and not res.get('subscription_ids'): list_ids = self.env.context.get('default_list_ids') if 'default_list_ids' not in res and list_ids and isinstance(list_ids, (list, tuple)): - res['subscription_list_ids'] = [ + res['subscription_ids'] = [ (0, 0, {'list_id': list_id}) for list_id in list_ids] return res @@ -34,10 +34,10 @@ class MassMailingContact(models.Model): title_id = fields.Many2one('res.partner.title', string='Title') email = fields.Char('Email') list_ids = fields.Many2many( - 'mailing.list', 'mailing_contact_list_rel', + 'mailing.list', 'mailing_subscription', 'contact_id', 'list_id', string='Mailing Lists') - subscription_list_ids = fields.One2many( - 'mailing.contact.subscription', 'contact_id', string='Subscription Information') + subscription_ids = fields.One2many( + 'mailing.subscription', 'contact_id', string='Subscription Information') country_id = fields.Many2one('res.country', string='Country') tag_ids = fields.Many2many('res.partner.category', string='Tags') opt_out = fields.Boolean( @@ -57,17 +57,17 @@ class MassMailingContact(models.Model): if 'default_list_ids' in self._context and isinstance(self._context['default_list_ids'], (list, tuple)) and len(self._context['default_list_ids']) == 1: [active_list_id] = self._context['default_list_ids'] - contacts = self.env['mailing.contact.subscription'].search([('list_id', '=', active_list_id)]) + contacts = self.env['mailing.subscription'].search([('list_id', '=', active_list_id)]) return [('id', 'in', [record.contact_id.id for record in contacts if record.opt_out == value])] return expression.FALSE_DOMAIN if value else expression.TRUE_DOMAIN - @api.depends('subscription_list_ids') + @api.depends('subscription_ids') @api.depends_context('default_list_ids') def _compute_opt_out(self): if 'default_list_ids' in self._context and isinstance(self._context['default_list_ids'], (list, tuple)) and len(self._context['default_list_ids']) == 1: [active_list_id] = self._context['default_list_ids'] for record in self: - active_subscription_list = record.subscription_list_ids.filtered(lambda l: l.list_id.id == active_list_id) + active_subscription_list = record.subscription_ids.filtered(lambda l: l.list_id.id == active_list_id) record.opt_out = active_subscription_list.opt_out else: for record in self: @@ -76,7 +76,7 @@ class MassMailingContact(models.Model): @api.model_create_multi def create(self, vals_list): """ Synchronize default_list_ids (currently used notably for computed - fields) default key with subscription_list_ids given by user when creating + fields) default key with subscription_ids given by user when creating contacts. Those two values have the same purpose, adding a list to to the contact @@ -90,21 +90,21 @@ class MassMailingContact(models.Model): default_list_ids = default_list_ids if isinstance(default_list_ids, (list, tuple)) else [] for vals in vals_list: - if vals.get('list_ids') and vals.get('subscription_list_ids'): - raise UserError(_('You should give either list_ids, either subscription_list_ids to create new contacts.')) + if vals.get('list_ids') and vals.get('subscription_ids'): + raise UserError(_('You should give either list_ids, either subscription_ids to create new contacts.')) if default_list_ids: for vals in vals_list: if vals.get('list_ids'): continue current_list_ids = [] - subscription_ids = vals.get('subscription_list_ids') or [] + subscription_ids = vals.get('subscription_ids') or [] for subscription in subscription_ids: if len(subscription) == 3: current_list_ids.append(subscription[2]['list_id']) for list_id in set(default_list_ids) - set(current_list_ids): subscription_ids.append((0, 0, {'list_id': list_id})) - vals['subscription_list_ids'] = subscription_ids + vals['subscription_ids'] = subscription_ids return super(MassMailingContact, self.with_context(default_list_ids=False)).create(vals_list) diff --git a/addons/mass_mailing/models/mailing_list.py b/addons/mass_mailing/models/mailing_list.py index a850c67332b..c8ca4e4743b 100644 --- a/addons/mass_mailing/models/mailing_list.py +++ b/addons/mass_mailing/models/mailing_list.py @@ -27,14 +27,14 @@ class MassMailingList(models.Model): contact_pct_blacklisted = fields.Float(compute="_compute_mailing_list_statistics", string="Percentage of Blacklisted") contact_pct_bounce = fields.Float(compute="_compute_mailing_list_statistics", string="Percentage of Bouncing") contact_ids = fields.Many2many( - 'mailing.contact', 'mailing_contact_list_rel', 'list_id', 'contact_id', + 'mailing.contact', 'mailing_subscription', 'list_id', 'contact_id', string='Mailing Lists', copy=False) mailing_count = fields.Integer(compute="_compute_mailing_count", string="Number of Mailing") mailing_ids = fields.Many2many( 'mailing.mailing', 'mail_mass_mailing_list_rel', string='Mass Mailings', copy=False) subscription_ids = fields.One2many( - 'mailing.contact.subscription', 'list_id', + 'mailing.subscription', 'list_id', string='Subscription Information', copy=True, depends=['contact_ids']) is_public = fields.Boolean( @@ -78,13 +78,13 @@ class MassMailingList(models.Model): bounce_per_mailing = {} if self.ids: sql = ''' - SELECT mclr.list_id, COUNT(DISTINCT mc.id) + SELECT list_sub.list_id, COUNT(DISTINCT mc.id) FROM mailing_contact mc - LEFT OUTER JOIN mailing_contact_list_rel mclr - ON mc.id = mclr.contact_id + LEFT OUTER JOIN mailing_subscription list_sub + ON mc.id = list_sub.contact_id WHERE mc.message_bounce > 0 - AND mclr.list_id in %s - GROUP BY mclr.list_id + AND list_sub.list_id in %s + GROUP BY list_sub.list_id ''' self.env.cr.execute(sql, (tuple(self.ids),)) bounce_per_mailing = dict(self.env.cr.fetchall()) @@ -144,7 +144,7 @@ class MassMailingList(models.Model): action['context'] = { **self.env.context, 'default_mailing_list_ids': self.ids, - 'default_subscription_list_ids': [ + 'default_subscription_ids': [ Command.create({'list_id': mailing_list.id}) for mailing_list in self ], @@ -232,7 +232,7 @@ class MassMailingList(models.Model): src_lists |= self self.env.flush_all() self.env.cr.execute(""" - INSERT INTO mailing_contact_list_rel (contact_id, list_id) + INSERT INTO mailing_subscription (contact_id, list_id) SELECT st.contact_id AS contact_id, %s AS list_id FROM ( @@ -243,7 +243,7 @@ class MassMailingList(models.Model): row_number() OVER (PARTITION BY email ORDER BY email) AS rn FROM mailing_contact contact, - mailing_contact_list_rel contact_list_rel, + mailing_subscription contact_list_rel, mailing_list list WHERE contact.id=contact_list_rel.contact_id AND COALESCE(contact_list_rel.opt_out,FALSE) = FALSE @@ -255,7 +255,7 @@ class MassMailingList(models.Model): SELECT 1 FROM mailing_contact contact2, - mailing_contact_list_rel contact_list_rel2 + mailing_subscription contact_list_rel2 WHERE contact2.email = contact.email AND contact_list_rel2.contact_id = contact2.id AND contact_list_rel2.list_id = %s @@ -303,14 +303,14 @@ class MassMailingList(models.Model): # switch opted-in subscriptions if opt_out: - current_opt_in = contacts.subscription_list_ids.filtered( + current_opt_in = contacts.subscription_ids.filtered( lambda sub: not sub.opt_out and sub.list_id in self ) if current_opt_in: current_opt_in.write({'opt_out': True}) # switch opted-out subscription and create missing subscriptions else: - subscriptions = contacts.subscription_list_ids.filtered(lambda sub: sub.list_id in self) + subscriptions = contacts.subscription_ids.filtered(lambda sub: sub.list_id in self) current_opt_out = subscriptions.filtered('opt_out') if current_opt_out: current_opt_out.write({'opt_out': False}) @@ -318,7 +318,7 @@ class MassMailingList(models.Model): # create a subscription (for a single contact) for missing lists missing_lists = self - subscriptions.list_id if missing_lists: - self.env['mailing.contact.subscription'].create([ + self.env['mailing.subscription'].create([ {'contact_id': contacts[0].id, 'list_id': mailing_list.id} for mailing_list in missing_lists @@ -397,7 +397,7 @@ class MassMailingList(models.Model): SELECT {','.join(self._get_contact_statistics_fields().values())} FROM - mailing_contact_list_rel r + mailing_subscription r {self._get_contact_statistics_joins()} WHERE list_id IN %s GROUP BY diff --git a/addons/mass_mailing/models/mailing_contact_subscription.py b/addons/mass_mailing/models/mailing_subscription.py similarity index 91% rename from addons/mass_mailing/models/mailing_contact_subscription.py rename to addons/mass_mailing/models/mailing_subscription.py index f9876578cab..918620fac7d 100644 --- a/addons/mass_mailing/models/mailing_contact_subscription.py +++ b/addons/mass_mailing/models/mailing_subscription.py @@ -4,13 +4,13 @@ from odoo import api, fields, models -class MassMailingContactListRel(models.Model): +class MailingSubscription(models.Model): """ Intermediate model between mass mailing list and mass mailing contact Indicates if a contact is opted out for a particular list """ - _name = 'mailing.contact.subscription' - _description = 'Mass Mailing Subscription Information' - _table = 'mailing_contact_list_rel' + _name = 'mailing.subscription' + _description = 'Mailing List Subscription' + _table = 'mailing_subscription' _rec_name = 'contact_id' _order = 'list_id DESC, contact_id DESC' diff --git a/addons/mass_mailing/security/ir.model.access.csv b/addons/mass_mailing/security/ir.model.access.csv index 3ec47664f6f..9d95902d027 100644 --- a/addons/mass_mailing/security/ir.model.access.csv +++ b/addons/mass_mailing/security/ir.model.access.csv @@ -2,7 +2,7 @@ id,name,model_id:id,group_id:id,perm_read,perm_write,perm_create,perm_unlink access_utm_tag_mass_mailing_campaign,utm.tag,utm.model_utm_tag,mass_mailing.group_mass_mailing_campaign,1,1,1,1 access_mailing_contact_mm_user,access.mailing.contact.mm.user,model_mailing_contact,mass_mailing.group_mass_mailing_user,1,1,1,1 access_mailing_contact_import_mailing_user,access.mailing.contact.import.mailing.user,model_mailing_contact_import,mass_mailing.group_mass_mailing_user,1,1,1,1 -access_mailing_contact_subscription_mm_user,access.mailing.contact.subscription.mm.user,model_mailing_contact_subscription,mass_mailing.group_mass_mailing_user,1,1,1,1 +access_mailing_subscription_mm_user,access.mailing.subscription.mm.user,model_mailing_subscription,mass_mailing.group_mass_mailing_user,1,1,1,1 access_mailing_list_mm_user,access.mailing.list.mm.user,model_mailing_list,mass_mailing.group_mass_mailing_user,1,1,1,1 access_utm_stage,utm.stage,utm.model_utm_stage,mass_mailing.group_mass_mailing_user,1,1,1,1 access_mailing_mailing_mm_user,access.mailing.mailing.mm.user,model_mailing_mailing,mass_mailing.group_mass_mailing_user,1,1,1,1 diff --git a/addons/mass_mailing/tests/test_mailing_controllers.py b/addons/mass_mailing/tests/test_mailing_controllers.py index 66fbf5d343c..39f9a0dd595 100644 --- a/addons/mass_mailing/tests/test_mailing_controllers.py +++ b/addons/mass_mailing/tests/test_mailing_controllers.py @@ -77,7 +77,7 @@ class TestMailingControllers(TestMailingControllersCommon): def test_assert_initial_values(self): """ Ensure test base data to ease test understanding. Globally test_email is member of 2 mailing public lists. """ - memberships = self.env['mailing.contact.subscription'].search([ + memberships = self.env['mailing.subscription'].search([ ('contact_id.email_normalized', '=', self.test_email_normalized)] ) self.assertEqual(memberships.list_id, self.mailing_list_1 + self.mailing_list_3) diff --git a/addons/mass_mailing/tests/test_mailing_list.py b/addons/mass_mailing/tests/test_mailing_list.py index a0f7be5a79c..6ca2d74543a 100644 --- a/addons/mass_mailing/tests/test_mailing_list.py +++ b/addons/mass_mailing/tests/test_mailing_list.py @@ -87,7 +87,7 @@ class TestMailingListMerge(MassMailCommon): new = self.env['mailing.contact'].with_context(default_list_ids=default_list_ids).create([{ 'name': 'Contact_%d' % x, 'email': 'contact_%d@test.example.com' % x, - 'subscription_list_ids': [(0, 0, { + 'subscription_ids': [(0, 0, { 'list_id': self.mailing_list_1.id, 'opt_out': True, }), (0, 0, { @@ -109,15 +109,15 @@ class TestMailingListMerge(MassMailCommon): patch.object(self.env.cr, 'now', lambda: datetime(2022, 1, 1, 12, 0, 0)): contact_form = Form(self.env['mailing.contact']) contact_form.name = 'Contact_test' - with contact_form.subscription_list_ids.new() as subscription: + with contact_form.subscription_ids.new() as subscription: subscription.list_id = self.mailing_list_1 subscription.opt_out = True - with contact_form.subscription_list_ids.new() as subscription: + with contact_form.subscription_ids.new() as subscription: subscription.list_id = self.mailing_list_2 subscription.opt_out = False contact = contact_form.save() - self.assertEqual(contact.subscription_list_ids[0].unsubscription_date, datetime(2022, 1, 1, 12, 0, 0)) - self.assertFalse(contact.subscription_list_ids[1].unsubscription_date) + self.assertEqual(contact.subscription_ids[0].unsubscription_date, datetime(2022, 1, 1, 12, 0, 0)) + self.assertFalse(contact.subscription_ids[1].unsubscription_date) @users('user_marketing') def test_mailing_list_contact_copy_in_context_of_mailing_list(self): @@ -125,7 +125,7 @@ class TestMailingListMerge(MassMailCommon): contact_1 = MailingContact.create({ 'name': 'Sam', 'email': 'gamgee@shire.com', - 'subscription_list_ids': [(0, 0, {'list_id': self.mailing_list_3.id})], + 'subscription_ids': [(0, 0, {'list_id': self.mailing_list_3.id})], }) # Copy the contact with default_list_ids in context, which should not raise anything contact_2 = contact_1.with_context(default_list_ids=self.mailing_list_3.ids).copy() @@ -309,14 +309,14 @@ class TestSubscriptionManagement(MassMailCommon): # add new subscriptions (and ensure email_normalized is used) (ml_1 + ml_2)._update_subscription_from_email(_email_formatted_upd, opt_out=False) - subs = self.env['mailing.contact.subscription'].search( + subs = self.env['mailing.subscription'].search( [('contact_id', '=', contact.id)] ) self.assertEqual(subs.list_id, ml_1 + ml_2) # opt-out from opted-in mailing list + 1 non opted-in mailing list (ml_2 + ml_3)._update_subscription_from_email(_email_formatted_upd, opt_out=True) - subs = self.env['mailing.contact.subscription'].search( + subs = self.env['mailing.subscription'].search( [('contact_id', '=', contact.id)] ) self.assertEqual(subs.list_id, ml_1 + ml_2) diff --git a/addons/mass_mailing/views/mailing_contact_views.xml b/addons/mass_mailing/views/mailing_contact_views.xml index 7c5a19dce3c..8d90410e051 100644 --- a/addons/mass_mailing/views/mailing_contact_views.xml +++ b/addons/mass_mailing/views/mailing_contact_views.xml @@ -144,7 +144,7 @@ - + diff --git a/addons/mass_mailing/views/mailing_contact_subscription_views.xml b/addons/mass_mailing/views/mailing_subscription_views.xml similarity index 72% rename from addons/mass_mailing/views/mailing_contact_subscription_views.xml rename to addons/mass_mailing/views/mailing_subscription_views.xml index 74c774f87e3..792db166203 100644 --- a/addons/mass_mailing/views/mailing_contact_subscription_views.xml +++ b/addons/mass_mailing/views/mailing_subscription_views.xml @@ -1,8 +1,8 @@ - - mailing.contact.subscription.view.form - mailing.contact.subscription + + mailing.subscription.view.form + mailing.subscription 10
@@ -25,9 +25,9 @@ - - mailing.contact.subscription.view.tree - mailing.contact.subscription + + mailing.subscription.view.tree + mailing.subscription @@ -39,9 +39,9 @@ - - mailing.contact.subscription.view.search - mailing.contact.subscription + + mailing.subscription.view.search + mailing.subscription diff --git a/addons/mass_mailing_sms/__manifest__.py b/addons/mass_mailing_sms/__manifest__.py index 818721509d4..309adfb3e80 100644 --- a/addons/mass_mailing_sms/__manifest__.py +++ b/addons/mass_mailing_sms/__manifest__.py @@ -29,7 +29,7 @@ 'demo': [ 'demo/utm.xml', 'demo/mailing_list_contact.xml', - 'demo/mailing_contact_subscription.xml', + 'demo/mailing_subscription.xml', 'demo/mailing_mailing.xml', 'demo/mailing_trace.xml', ], diff --git a/addons/mass_mailing_sms/controllers/main.py b/addons/mass_mailing_sms/controllers/main.py index 858a2f0494a..59e00008b85 100644 --- a/addons/mass_mailing_sms/controllers/main.py +++ b/addons/mass_mailing_sms/controllers/main.py @@ -59,7 +59,7 @@ class MailingSMSController(http.Controller): if tocheck_number and trace: mailing_list_ids = trace.mass_mailing_id.contact_list_ids if mailing_list_ids: - subscriptions = request.env['mailing.contact.subscription'].sudo().search([ + subscriptions = request.env['mailing.subscription'].sudo().search([ ('list_id', 'in', mailing_list_ids.ids), ('contact_id.phone_sanitized', '=', tocheck_number), ]) @@ -70,7 +70,7 @@ class MailingSMSController(http.Controller): blacklist_rec._message_log( body=_('Blacklist through SMS Marketing unsubscribe (mailing ID: %s - model: %s)') % (trace.mass_mailing_id.id, trace.mass_mailing_id.mailing_model_id.display_name)) - lists_optin = request.env['mailing.contact.subscription'].sudo().search([ + lists_optin = request.env['mailing.subscription'].sudo().search([ ('contact_id.phone_sanitized', '=', tocheck_number), ('list_id', 'not in', mailing_list_ids.ids), ('opt_out', '=', False), diff --git a/addons/mass_mailing_sms/demo/mailing_contact_subscription.xml b/addons/mass_mailing_sms/demo/mailing_subscription.xml similarity index 90% rename from addons/mass_mailing_sms/demo/mailing_contact_subscription.xml rename to addons/mass_mailing_sms/demo/mailing_subscription.xml index f0671cee8cc..ec1a9da67b4 100644 --- a/addons/mass_mailing_sms/demo/mailing_contact_subscription.xml +++ b/addons/mass_mailing_sms/demo/mailing_subscription.xml @@ -1,22 +1,22 @@ - + - + - + - + - + diff --git a/addons/test_mass_mailing/tests/test_mailing.py b/addons/test_mass_mailing/tests/test_mailing.py index dc969fbf92a..1e1f5ce3071 100644 --- a/addons/test_mass_mailing/tests/test_mailing.py +++ b/addons/test_mass_mailing/tests/test_mailing.py @@ -565,7 +565,7 @@ class TestMassMailing(TestMassMailCommon): # contact_1 is optout but same email is not optout from the same list # contact 3 is optout in list 1 but not in list 2 # contact 5 is optout - subs = self.env['mailing.contact.subscription'].search([ + subs = self.env['mailing.subscription'].search([ '|', '|', '&', ('contact_id', '=', mailing_contact_1.id), ('list_id', '=', mailing_list_1.id), '&', ('contact_id', '=', mailing_contact_3.id), ('list_id', '=', mailing_list_1.id), diff --git a/addons/website_mass_mailing/controllers/main.py b/addons/website_mass_mailing/controllers/main.py index 111627cb0f2..e4f413bf2ea 100644 --- a/addons/website_mass_mailing/controllers/main.py +++ b/addons/website_mass_mailing/controllers/main.py @@ -14,7 +14,7 @@ class MassMailController(main.MassMailController): fname = self._get_fname(subscription_type) is_subscriber = False if value and fname: - contacts_count = request.env['mailing.contact.subscription'].sudo().search_count( + contacts_count = request.env['mailing.subscription'].sudo().search_count( [('list_id', 'in', [int(list_id)]), (f'contact_id.{fname}', '=', value), ('opt_out', '=', False)]) is_subscriber = contacts_count > 0 @@ -40,7 +40,7 @@ class MassMailController(main.MassMailController): 'toast_content': _("Suspicious activity detected by Google reCaptcha."), } - ContactSubscription = request.env['mailing.contact.subscription'].sudo() + ContactSubscription = request.env['mailing.subscription'].sudo() Contacts = request.env['mailing.contact'].sudo() if subscription_type == 'email': name, value = tools.parse_contact_from_email(value)