diff options
| author | Priyanka Kakadiya <pka@odoo.com> | 2020-07-13 13:22:34 +0000 |
|---|---|---|
| committer | Priyanka Kakadiya <pka@odoo.com> | 2020-08-17 11:56:46 +0000 |
| commit | 2b06be68600b5a15b5c2e3500b2e05394c966535 (patch) | |
| tree | ce9dfcdaf1ac1d5e1fe9f13df17dd688a2037101 /addons/mail/controllers | |
| parent | ecb1d732c643a611bf2074755fef57a1da7ab723 (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.py | 11 |
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 |
