[FIX] gamification: fix badge creation

Before this commit, we executed the request even when creating a new
badge. And it thrown a traceback.

After this commit, we return default values before executing the
request if this is a new badge.

task-2312878

closes odoo/odoo#60441

X-original-commit: 85995b7a4f0544779f3de537f0e6024820abbd5d
Signed-off-by: Jérémy Kersten (jke) <jke@openerp.com>
This commit is contained in:
Benjamin Vray
2020-10-21 11:59:26 +00:00
parent 0b8146c94f
commit dc9505b019
+9 -5
View File
@@ -137,6 +137,15 @@ class GamificationBadge(models.Model):
the total number of time this badge was granted
the total number of users this badge was granted to
"""
defaults = {
'granted_count': 0,
'granted_users_count': 0,
'unique_owner_ids': [],
}
if not self.ids:
self.update(defaults)
return
self.env.cr.execute("""
SELECT badge_id, count(user_id) as granted_count,
count(distinct(user_id)) as granted_users_count,
@@ -146,11 +155,6 @@ class GamificationBadge(models.Model):
GROUP BY badge_id
""", [tuple(self.ids)])
defaults = {
'granted_count': 0,
'granted_users_count': 0,
'unique_owner_ids': [],
}
mapping = {
badge_id: {
'granted_count': count,