diff options
| author | Christophe Simonis <chs@odoo.com> | 2016-02-17 17:48:03 +0100 |
|---|---|---|
| committer | Christophe Simonis <chs@odoo.com> | 2016-02-17 17:48:03 +0100 |
| commit | 5be43b8d9ae4485ac28e9afb7dd7cdecefb58abc (patch) | |
| tree | 483b65cfc65fb4f57a32f841424812575ebdbc84 /addons/mass_mailing/controllers/main.py | |
| parent | 6999a862fdff34ea7d05ba90c2977f2c386cb506 (diff) | |
| parent | 27058c4763b40c5ef9b2b81c9f8a2de8d68469af (diff) | |
[MERGE] forward port of branch 9.0 up to 27058c4
Diffstat (limited to 'addons/mass_mailing/controllers/main.py')
| -rw-r--r-- | addons/mass_mailing/controllers/main.py | 18 |
1 files changed, 17 insertions, 1 deletions
diff --git a/addons/mass_mailing/controllers/main.py b/addons/mass_mailing/controllers/main.py index 6ac211fa25f..c43e8206765 100644 --- a/addons/mass_mailing/controllers/main.py +++ b/addons/mass_mailing/controllers/main.py @@ -2,12 +2,28 @@ import werkzeug -from openerp import http, SUPERUSER_ID +from openerp import http, SUPERUSER_ID, _ from openerp.http import request class MassMailController(http.Controller): + @http.route(['/mail/mailing/<int:mailing_id>/unsubscribe'], type='http', website=True, auth='public') + def mailing(self, mailing_id, email=None, res_id=None, **post): + mailing = request.env['mail.mass_mailing'].sudo().browse(mailing_id) + if mailing.exists(): + res_ids = [] + if mailing.mailing_model == 'mail.mass_mailing.contact': + contacts = request.env['mail.mass_mailing.contact'].sudo().search([ + ('email', '=', email), + ('list_id', 'in', [mailing_list.id for mailing_list in mailing.contact_list_ids]) + ]) + res_ids = contacts.ids + else: + res_ids = [res_id] + mailing.update_opt_out(mailing_id, email, res_ids, True) + return _('You have been unsubscribed successfully') + @http.route('/mail/track/<int:mail_id>/blank.gif', type='http', auth='none') def track_mail_open(self, mail_id, **post): """ Email tracking. """ |
