[IMP] gamification: support batch creation
See merge commit for more details. Task ID-2330149 COM PR odoo/odoo#61246 ENT PR odoo/enterprise#14561
This commit is contained in:
committed by
Thibault Delavallée
parent
8016591353
commit
9c87db3c62
@@ -52,10 +52,11 @@ class BadgeUser(models.Model):
|
||||
|
||||
return True
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
self.env['gamification.badge'].browse(vals['badge_id']).check_granting()
|
||||
return super(BadgeUser, self).create(vals)
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
for vals in vals_list:
|
||||
self.env['gamification.badge'].browse(vals['badge_id']).check_granting()
|
||||
return super().create(vals_list)
|
||||
|
||||
|
||||
class GamificationBadge(models.Model):
|
||||
|
||||
@@ -154,18 +154,18 @@ class Challenge(models.Model):
|
||||
|
||||
return template.id if template else False
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
"""Overwrite the create method to add the user of groups"""
|
||||
for vals in vals_list:
|
||||
if vals.get('user_domain'):
|
||||
users = self._get_challenger_users(ustr(vals.get('user_domain')))
|
||||
|
||||
if vals.get('user_domain'):
|
||||
users = self._get_challenger_users(ustr(vals.get('user_domain')))
|
||||
if not vals.get('user_ids'):
|
||||
vals['user_ids'] = []
|
||||
vals['user_ids'].extend((4, user.id) for user in users)
|
||||
|
||||
if not vals.get('user_ids'):
|
||||
vals['user_ids'] = []
|
||||
vals['user_ids'].extend((4, user.id) for user in users)
|
||||
|
||||
return super(Challenge, self).create(vals)
|
||||
return super().create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
if vals.get('user_domain'):
|
||||
|
||||
@@ -122,14 +122,16 @@ class GoalDefinition(models.Model):
|
||||
error=e
|
||||
))
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
definition = super(GoalDefinition, self).create(vals)
|
||||
if definition.computation_mode in ('count', 'sum'):
|
||||
definition._check_domain_validity()
|
||||
if vals.get('field_id'):
|
||||
definition._check_model_validity()
|
||||
return definition
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
definitions = super(GoalDefinition, self).create(vals_list)
|
||||
definitions.filtered_domain([
|
||||
('computation_mode', 'in', ['count', 'sum']),
|
||||
])._check_domain_validity()
|
||||
definitions.filtered_domain([
|
||||
('field_id', '=', 'True'),
|
||||
])._check_model_validity()
|
||||
return definitions
|
||||
|
||||
def write(self, vals):
|
||||
res = super(GoalDefinition, self).write(vals)
|
||||
@@ -386,9 +388,9 @@ class Goal(models.Model):
|
||||
next goal update."""
|
||||
return self.write({'state': 'inprogress'})
|
||||
|
||||
@api.model
|
||||
def create(self, vals):
|
||||
return super(Goal, self.with_context(no_remind_goal=True)).create(vals)
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
return super(Goal, self.with_context(no_remind_goal=True)).create(vals_list)
|
||||
|
||||
def write(self, vals):
|
||||
"""Overwrite the write method to update the last_update field to today
|
||||
|
||||
Reference in New Issue
Block a user