summaryrefslogtreecommitdiff
path: root/addons/website_mass_mailing/controllers
diff options
context:
space:
mode:
authorXavier Morel <xmo@odoo.com>2016-07-20 17:19:24 +0200
committerYannick Tivisse <yti@odoo.com>2016-08-04 12:39:55 +0200
commita089b0a0a663c317d360220333f8ce4657404891 (patch)
tree2da47b28897dde4d292bcc913ff7114152e8d4fe /addons/website_mass_mailing/controllers
parent25ba1b2fff2727f31202b79d70d3738798a699ff (diff)
[MIG] website_mass_mailing: Migrate to new API
Half the controllers were already in the new API, migrated the rest.
Diffstat (limited to 'addons/website_mass_mailing/controllers')
-rw-r--r--addons/website_mass_mailing/controllers/__init__.py3
-rw-r--r--addons/website_mass_mailing/controllers/main.py55
2 files changed, 27 insertions, 31 deletions
diff --git a/addons/website_mass_mailing/controllers/__init__.py b/addons/website_mass_mailing/controllers/__init__.py
index bbd183e955b..5d4b25db9c0 100644
--- a/addons/website_mass_mailing/controllers/__init__.py
+++ b/addons/website_mass_mailing/controllers/__init__.py
@@ -1,3 +1,4 @@
# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
-import main
+from . import main
diff --git a/addons/website_mass_mailing/controllers/main.py b/addons/website_mass_mailing/controllers/main.py
index 5b5cb34fc5c..ff3a515b4fb 100644
--- a/addons/website_mass_mailing/controllers/main.py
+++ b/addons/website_mass_mailing/controllers/main.py
@@ -1,13 +1,13 @@
# -*- coding: utf-8 -*-
+# Part of Odoo. See LICENSE file for full copyright and licensing details.
-from openerp import http, SUPERUSER_ID
-from openerp.addons.mass_mailing.controllers.main import MassMailController
-from openerp.http import request
+from odoo.http import route, request
+from odoo.addons.mass_mailing.controllers.main import MassMailController
class MassMailController(MassMailController):
- @http.route(['/mail/mailing/<int:mailing_id>/unsubscribe'], type='http', website=True, auth='public')
+ @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():
@@ -21,55 +21,50 @@ class MassMailController(MassMailController):
super(MassMailController, self).mailing(mailing_id, email=email, res_id=res_id, **post)
return request.render('website_mass_mailing.page_unsubscribed')
- @http.route(['/mail/mailing/unsubscribe'], type='json', auth='none')
+ @route('/mail/mailing/unsubscribe', type='json', auth='none')
def unsubscribe(self, mailing_id, opt_in_ids, opt_out_ids, email):
mailing = request.env['mail.mass_mailing'].sudo().browse(mailing_id)
if mailing.exists():
mailing.update_opt_out(email, opt_in_ids, False)
mailing.update_opt_out(email, opt_out_ids, True)
- @http.route('/website_mass_mailing/is_subscriber', type='json', website=True, auth="public")
+ @route('/website_mass_mailing/is_subscriber', type='json', website=True, auth="public")
def is_subscriber(self, list_id, **post):
- cr, uid, context = request.cr, request.uid, request.context
- Contacts = request.registry['mail.mass_mailing.contact']
- Users = request.registry['res.users']
-
- is_subscriber = False
email = None
- if uid != request.website.user_id.id:
- email = Users.browse(cr, SUPERUSER_ID, uid, context).email
+ if request.uid != request.website.user_id.id:
+ email = request.env.user.email
elif request.session.get('mass_mailing_email'):
email = request.session['mass_mailing_email']
+ is_subscriber = False
if email:
- contact_ids = Contacts.search(cr, SUPERUSER_ID, [('list_id', '=', int(list_id)), ('email', '=', email), ('opt_out', '=', False)], context=context)
- is_subscriber = len(contact_ids) > 0
+ contacts_count = request.env['mail.mass_mailing.contact'].sudo().search_count([('list_id', '=', int(list_id)), ('email', '=', email), ('opt_out', '=', False)])
+ is_subscriber = contacts_count > 0
return {'is_subscriber': is_subscriber, 'email': email}
- @http.route('/website_mass_mailing/subscribe', type='json', website=True, auth="public")
+ @route('/website_mass_mailing/subscribe', type='json', website=True, auth="public")
def subscribe(self, list_id, email, **post):
Contacts = request.env['mail.mass_mailing.contact'].sudo()
- parsed_email = Contacts.get_name_email(email)[1]
+ name, email = Contacts.get_name_email(email)
- contact_ids = Contacts.search_read(
- [('list_id', '=', int(list_id)), ('email', '=', parsed_email)],
- ['opt_out'])
+ contact_ids = Contacts.search([
+ ('list_id', '=', int(list_id)),
+ ('email', '=', email),
+ ], limit=1)
if not contact_ids:
- Contacts.add_to_list(email, int(list_id))
- else:
- if contact_ids[0]['opt_out']:
- contact_ids[0].write({'opt_out': False})
+ # inline add_to_list as we've already called half of it
+ Contacts.create({'name': name, 'email': email, 'list_id': int(list_id)})
+ elif contact_ids.opt_out:
+ contact_ids.opt_out = False
# add email to session
request.session['mass_mailing_email'] = email
return True
- @http.route(['/website_mass_mailing/get_content'], type='json', website=True, auth="public")
+ @route(['/website_mass_mailing/get_content'], type='json', website=True, auth="public")
def get_mass_mailing_content(self, newsletter_id, **post):
data = self.is_subscriber(newsletter_id, **post)
- mass_mailing_list = request.registry['mail.mass_mailing.list'].browse(request.cr, SUPERUSER_ID, int(newsletter_id), request.context)
- data.update({
- 'content': mass_mailing_list.popup_content,
- 'redirect_url': mass_mailing_list.popup_redirect_url
- })
+ mass_mailing_list = request.env['mail.mass_mailing.list'].sudo().browse(int(newsletter_id))
+ data['content'] = mass_mailing_list.popup_content,
+ data['redirect_url'] = mass_mailing_list.popup_redirect_url
return data