From 071144b0acccae94ecc7dc818a1a9f75cc3f9ed2 Mon Sep 17 00:00:00 2001 From: Denis Ledoux Date: Tue, 8 Dec 2015 14:59:20 +0100 Subject: [PATCH] [FIX] mass_mailing,crm_mass_mailing: exclude opt-out By default, when changing the recipients type of a mass-mailing to partners or leads, the selected records included the opt-out records. To be consistent, as: - `opt-out` records are excluded by default for mass mailing contacts - the filter excluding the opt-out records `Available for mass-mailing` is loaded by default when changing the selection in the selection list dialog The domain for partners and leads should exclude opt-out records by default. opw-658391 --- addons/crm_mass_mailing/mass_mailing.py | 8 ++++++++ addons/mass_mailing/models/mass_mailing.py | 2 ++ 2 files changed, 10 insertions(+) diff --git a/addons/crm_mass_mailing/mass_mailing.py b/addons/crm_mass_mailing/mass_mailing.py index 6a2e1322136..20b7b4db86d 100644 --- a/addons/crm_mass_mailing/mass_mailing.py +++ b/addons/crm_mass_mailing/mass_mailing.py @@ -4,3 +4,11 @@ from openerp.osv import osv class MassMailing(osv.Model): _name = 'mail.mass_mailing' _inherit = ['mail.mass_mailing', 'crm.tracking.mixin'] + + def on_change_model_and_list(self, cr, uid, ids, mailing_model, list_ids, context=None): + res = super(MassMailing, self).on_change_model_and_list(cr, uid, ids, mailing_model, list_ids, context=context) + if mailing_model == 'crm.lead': + res = res or {} + values = {'mailing_domain': "[('opt_out', '=', False)]"} + res = dict(res, value=dict(res.get('value', {}), **values)) + return res diff --git a/addons/mass_mailing/models/mass_mailing.py b/addons/mass_mailing/models/mass_mailing.py index 4e42f335b1b..f496736eb22 100644 --- a/addons/mass_mailing/models/mass_mailing.py +++ b/addons/mass_mailing/models/mass_mailing.py @@ -517,6 +517,8 @@ class MassMailing(osv.Model): value['mailing_domain'] = "[('list_id', 'in', %s), ('opt_out', '=', False)]" % list(mailing_list_ids) else: value['mailing_domain'] = "[('list_id', '=', False)]" + elif mailing_model in ['res.partner']: + value['mailing_domain'] = "[('opt_out', '=', False)]" else: value['mailing_domain'] = [] return {'value': value}