diff options
| author | Thibault Delavallée <tde@openerp.com> | 2014-03-25 16:41:14 +0100 |
|---|---|---|
| committer | Thibault Delavallée <tde@openerp.com> | 2014-03-25 16:41:14 +0100 |
| commit | 38541d8d2d54b82c085377d6eca4333796031fd6 (patch) | |
| tree | 27d79bddd91a725a98c2adc7181bffbc1948ec64 /addons/mass_mailing/controllers/main.py | |
| parent | d9ff66c3de08085d214f04a73fff8c7ba358db20 (diff) | |
[IMP] mass_mailing: cleaned and fixed mass mailing.send_all + added an onverride
of the controller to be able to unsubscribe from leads.
bzr revid: tde@openerp.com-20140325154114-er4o489y3w3ng10f
Diffstat (limited to 'addons/mass_mailing/controllers/main.py')
| -rw-r--r-- | addons/mass_mailing/controllers/main.py | 26 |
1 files changed, 10 insertions, 16 deletions
diff --git a/addons/mass_mailing/controllers/main.py b/addons/mass_mailing/controllers/main.py index 536fa3215c6..3536d075015 100644 --- a/addons/mass_mailing/controllers/main.py +++ b/addons/mass_mailing/controllers/main.py @@ -14,24 +14,18 @@ class MassMailController(http.Controller): return "data:image/gif;base64,R0lGODlhAQABAIAAANvf7wAAACH5BAEAAAAALAAAAAABAAEAAAICRAEAOw==" @http.route(['/mail/mailing/<int:mailing_id>/unsubscribe'], type='http', auth='none') - def mailing(self, mailing_id, email=None, model=None, res_id=None, **post): + def mailing(self, mailing_id, email=None, res_id=None, **post): cr, uid, context = request.cr, request.uid, request.context - print 'unsubscribing from', mailing_id, email, model, res_id MassMailing = request.registry['mail.mass_mailing'] - # check model is valid - # ... mailing_ids = MassMailing.exists(cr, SUPERUSER_ID, [mailing_id], context=context) if not mailing_ids: - print 'wrroooooong' - return '' - if model == 'res.partner': - partner_ids = request.registry[model].search(cr, SUPERUSER_ID, [('id', '=', res_id), ('email', 'ilike', email)], context=context) - print 'Setting partner_ids', partner_ids, 'as opt out' - # request.registry[model].write(cr, SUPERUSER_ID, partner_ids, {'opt_out': True}, context=context) - else: - mailing = MassMailing.browse(cr, SUPERUSER_ID, mailing_ids[0], context=context) + return 'KO' + mailing = MassMailing.browse(cr, SUPERUSER_ID, mailing_ids[0], context=context) + if mailing.mailing_model == 'mail.mass_mailing.contact': list_ids = [l.id for l in mailing.contact_list_ids] - res_ids = request.registry[model].search(cr, SUPERUSER_ID, [('list_id', 'in', list_ids), ('id', '=', res_id), ('email', 'ilike', email)], context=context) - print 'Setting contacts', res_ids, 'as opt out' - # request.registry[model].write(cr, SUPERUSER_ID, res_ids, {'opt_out': True}, context=context) - return '' + record_ids = request.registry[mailing.mailing_model].search(cr, SUPERUSER_ID, [('list_id', 'in', list_ids), ('id', '=', res_id), ('email', 'ilike', email)], context=context) + request.registry[mailing.mailing_model].write(cr, SUPERUSER_ID, record_ids, {'opt_out': True}, context=context) + else: + record_ids = request.registry[mailing.mailing_model].search(cr, SUPERUSER_ID, [('id', '=', res_id), ('email', 'ilike', email)], context=context) + request.registry[mailing.mailing_model].write(cr, SUPERUSER_ID, record_ids, {'opt_out': True}, context=context) + return 'OK' |
