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)