diff options
| author | Olivier Dony <odo@openerp.com> | 2014-05-27 20:49:49 +0200 |
|---|---|---|
| committer | Olivier Dony <odo@openerp.com> | 2014-05-27 20:49:49 +0200 |
| commit | 04211015fc3d4be2a8c65b9d977c2d9c4dac8be7 (patch) | |
| tree | b651a2900e630ed2ff780ddb960b55470f3bd118 /addons/website_mail/controllers/main.py | |
| parent | e16233217c6919b33e6d1135ff07538d839f6a2f (diff) | |
| parent | 045285123f2551ca74753260fcf807af4bc413d0 (diff) | |
[MERGE] Forward-port of latest saas-4 fixes, up to 0452851
Diffstat (limited to 'addons/website_mail/controllers/main.py')
| -rw-r--r-- | addons/website_mail/controllers/main.py | 30 |
1 files changed, 21 insertions, 9 deletions
diff --git a/addons/website_mail/controllers/main.py b/addons/website_mail/controllers/main.py index 0932794ee28..de69fba490a 100644 --- a/addons/website_mail/controllers/main.py +++ b/addons/website_mail/controllers/main.py @@ -62,6 +62,7 @@ class WebsiteMail(http.Controller): @http.route(['/website_mail/is_follower'], type='json', auth="public", website=True) def call(self, model, id, **post): + id = int(id) cr, uid, context = request.cr, request.uid, request.context partner_obj = request.registry.get('res.partner') @@ -74,17 +75,28 @@ class WebsiteMail(http.Controller): partner_id = users_obj.browse(cr, SUPERUSER_ID, uid, context).partner_id elif request.session.get('partner_id'): partner_id = partner_obj.browse(cr, SUPERUSER_ID, request.session.get('partner_id'), context) - - email = "" - is_follower = False - if partner_id: - email = partner_id and partner_id.email - is_follower = partner_id.id in [ - fol.id for fol in obj.browse(cr, SUPERUSER_ID, id, context).message_follower_ids] + email = partner_id and partner_id.email or "" - return { + values = { 'is_user': uid != public_id, 'email': email, - 'is_follower': is_follower + 'is_follower': False, } + if not obj: + return values + obj_ids = obj.exists(cr, SUPERUSER_ID, [id], context=context) + if obj_ids: + if partner_id: + values['is_follower'] = len( + request.registry['mail.followers'].search( + cr, SUPERUSER_ID, [ + ('res_model', '=', 'mail.group'), + ('res_id', '=', obj_ids[0]), + ('partner_id', '=', partner_id.id) + ], context=context)) == 1 + if post.get('fields'): + record = obj.read(cr, SUPERUSER_ID, obj_ids[0], fields=post.get('fields'), context=context) + values.update(record) + + return values |
