summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/controllers/main.py
diff options
context:
space:
mode:
authorThibault Delavallée <tde@openerp.com>2014-03-25 16:41:14 +0100
committerThibault Delavallée <tde@openerp.com>2014-03-25 16:41:14 +0100
commit38541d8d2d54b82c085377d6eca4333796031fd6 (patch)
tree27d79bddd91a725a98c2adc7181bffbc1948ec64 /addons/mass_mailing/controllers/main.py
parentd9ff66c3de08085d214f04a73fff8c7ba358db20 (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.py26
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'