diff --git a/addons/gamification/models/gamification_karma_rank.py b/addons/gamification/models/gamification_karma_rank.py index 737e0187320..eaa1cfa10c1 100644 --- a/addons/gamification/models/gamification_karma_rank.py +++ b/addons/gamification/models/gamification_karma_rank.py @@ -35,8 +35,10 @@ class KarmaRank(models.Model): @api.model_create_multi def create(self, values_list): res = super(KarmaRank, self).create(values_list) - users = self.env['res.users'].sudo().search([('karma', '>', 0)]) - users._recompute_rank() + if any(res.mapped('karma_min')) > 0: + users = self.env['res.users'].sudo().search([('karma', '>=', max(min(res.mapped('karma_min')), 1))]) + if users: + users._recompute_rank() return res def write(self, vals): @@ -50,8 +52,8 @@ class KarmaRank(models.Model): if 'karma_min' in vals: after_ranks = self.env['gamification.karma.rank'].search([], order="karma_min DESC").ids if previous_ranks != after_ranks: - users = self.env['res.users'].sudo().search([('karma', '>', 0)]) + users = self.env['res.users'].sudo().search([('karma', '>=', max(low, 1))]) else: - users = self.env['res.users'].sudo().search([('karma', '>=', low), ('karma', '<=', high)]) + users = self.env['res.users'].sudo().search([('karma', '>=', max(low, 1)), ('karma', '<=', high)]) users._recompute_rank() return res