summaryrefslogtreecommitdiff
path: root/addons/mail/controllers
diff options
context:
space:
mode:
authorPriyanka Kakadiya <pka@odoo.com>2020-07-13 13:22:34 +0000
committerPriyanka Kakadiya <pka@odoo.com>2020-08-17 11:56:46 +0000
commit2b06be68600b5a15b5c2e3500b2e05394c966535 (patch)
treece9dfcdaf1ac1d5e1fe9f13df17dd688a2037101 /addons/mail/controllers
parentecb1d732c643a611bf2074755fef57a1da7ab723 (diff)
[IMP] mail: improve followers refreshed on thread
PURPOSE Currently it does two RPCs to refresh followers on thread: 1) To get follower ids 2) To get followers detail SPECIFICATION While refreshing followers on the thread, perform only one RPC call. LINKS Task-2243180 PR https://github.com/odoo/odoo/pull/54437 closes odoo/odoo#55989 X-original-commit: 1fd445fb55810b97ed7a6dfe694e471891c6a3bc Signed-off-by: Alexandre Kühn (aku) <aku@odoo.com>
Diffstat (limited to 'addons/mail/controllers')
-rw-r--r--addons/mail/controllers/main.py11
1 files changed, 3 insertions, 8 deletions
diff --git a/addons/mail/controllers/main.py b/addons/mail/controllers/main.py
index 9a6e288790b..6e1525439c4 100644
--- a/addons/mail/controllers/main.py
+++ b/addons/mail/controllers/main.py
@@ -127,16 +127,11 @@ class MailController(http.Controller):
return werkzeug.utils.redirect(url)
@http.route('/mail/read_followers', type='json', auth='user')
- def read_followers(self, follower_ids):
+ def read_followers(self, res_model, res_id):
request.env['mail.followers'].check_access_rights("read")
- follower_recs = request.env['mail.followers'].sudo().browse(follower_ids)
- res_ids = follower_recs.mapped('res_id')
- res_models = set(follower_recs.mapped('res_model'))
- if len(res_models) > 1:
- raise AccessError(_("Can't read followers with different targeted model"))
- res_model = res_models.pop()
request.env[res_model].check_access_rights("read")
- request.env[res_model].browse(res_ids).check_access_rule("read")
+ request.env[res_model].browse(res_id).check_access_rule("read")
+ follower_recs = request.env['mail.followers'].search([('res_model', '=', res_model), ('res_id', '=', res_id)])
followers = []
follower_id = None