fix: prevent program state resets during module installation or specific context operations in loyalty rules and rewards
This commit is contained in:
parent
f9233da337
commit
d6d9fba49a
@ -37,6 +37,11 @@ class LoyaltyReward(models.Model):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
records = super().create(vals_list)
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return records
|
||||
|
||||
for record in records:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
record.program_id.write({'state': 'draft'})
|
||||
@ -44,6 +49,11 @@ class LoyaltyReward(models.Model):
|
||||
return records
|
||||
|
||||
def write(self, vals):
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return super().write(vals)
|
||||
|
||||
programs_to_reset = self.env['loyalty.program']
|
||||
for record in self:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
@ -63,6 +73,11 @@ class LoyaltyReward(models.Model):
|
||||
return res
|
||||
|
||||
def unlink(self):
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return super().unlink()
|
||||
|
||||
programs_to_reset = self.env['loyalty.program']
|
||||
for record in self:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
|
||||
@ -8,6 +8,11 @@ class LoyaltyRule(models.Model):
|
||||
@api.model_create_multi
|
||||
def create(self, vals_list):
|
||||
records = super().create(vals_list)
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return records
|
||||
|
||||
for record in records:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
record.program_id.write({'state': 'draft'})
|
||||
@ -15,6 +20,11 @@ class LoyaltyRule(models.Model):
|
||||
return records
|
||||
|
||||
def write(self, vals):
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return super().write(vals)
|
||||
|
||||
programs_to_reset = self.env['loyalty.program']
|
||||
for record in self:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
@ -34,6 +44,11 @@ class LoyaltyRule(models.Model):
|
||||
return res
|
||||
|
||||
def unlink(self):
|
||||
if (self.env.context.get('install_mode')
|
||||
or self.env.context.get('module')
|
||||
or self.env.context.get('no_marketing_reset')):
|
||||
return super().unlink()
|
||||
|
||||
programs_to_reset = self.env['loyalty.program']
|
||||
for record in self:
|
||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||
|
||||
Loading…
Reference in New Issue
Block a user