summaryrefslogtreecommitdiff
path: root/addons/website_mail/controllers/main.py
diff options
context:
space:
mode:
authorOlivier Dony <odo@openerp.com>2014-05-27 20:49:49 +0200
committerOlivier Dony <odo@openerp.com>2014-05-27 20:49:49 +0200
commit04211015fc3d4be2a8c65b9d977c2d9c4dac8be7 (patch)
treeb651a2900e630ed2ff780ddb960b55470f3bd118 /addons/website_mail/controllers/main.py
parente16233217c6919b33e6d1135ff07538d839f6a2f (diff)
parent045285123f2551ca74753260fcf807af4bc413d0 (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.py30
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