[IMP] base: compute users share in batch.
Instead of triggering one has_group by user (one sql query/user if not already ormcached), and potentially filling the `has_group` cache with new users data (we don't know if and when this data will be used anyway), compute this field from the groups information already in cache. X-original-commit: d771d7e9c8503543d29fdbf2ab961c2a32cc3bac
This commit is contained in:
@@ -14,6 +14,5 @@ class ResUsers(models.Model):
|
||||
default_digest_id = self.env['ir.config_parameter'].sudo().get_param('digest.default_digest_id')
|
||||
if default_digest_emails and default_digest_id:
|
||||
digest = self.env['digest.digest'].sudo().browse(int(default_digest_id))
|
||||
user_group_id = self.env['ir.model.data'].xmlid_to_res_id('base.group_user')
|
||||
digest.user_ids |= users.filtered_domain([('groups_id', 'in', [user_group_id])])
|
||||
digest.user_ids |= users.filtered_domain([('share', '=', False)])
|
||||
return users
|
||||
|
||||
@@ -357,8 +357,10 @@ class Users(models.Model):
|
||||
|
||||
@api.depends('groups_id')
|
||||
def _compute_share(self):
|
||||
for user in self:
|
||||
user.share = not user.has_group('base.group_user')
|
||||
user_group_id = self.env['ir.model.data'].xmlid_to_res_id('base.group_user')
|
||||
internal_users = self.filtered_domain([('groups_id', 'in', [user_group_id])])
|
||||
internal_users.share = False
|
||||
(self - internal_users).share = True
|
||||
|
||||
def _compute_companies_count(self):
|
||||
self.companies_count = self.env['res.company'].sudo().search_count([])
|
||||
|
||||
Reference in New Issue
Block a user