summaryrefslogtreecommitdiff
path: root/addons/mass_mailing/controllers/main.py
diff options
context:
space:
mode:
authorChristophe Simonis <chs@odoo.com>2016-02-17 18:07:21 +0100
committerChristophe Simonis <chs@odoo.com>2016-02-17 18:07:21 +0100
commit60c9cac46b0f32069a6763c3bf0b9e3a64d90e7d (patch)
tree4a234008ac69f9b573efc310f93e7a2ac850bce0 /addons/mass_mailing/controllers/main.py
parent4ecba34944e04e8be88e2588407dd84fc24bbe0a (diff)
parent87a01c75ef1dde98bc31f714d8ac4b2ea598e316 (diff)
[MERGE] forward port of branch saas-9 up to 87a01c7
Diffstat (limited to 'addons/mass_mailing/controllers/main.py')
-rw-r--r--addons/mass_mailing/controllers/main.py18
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. """