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
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
records = super().create(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:
|
for record in records:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
record.program_id.write({'state': 'draft'})
|
record.program_id.write({'state': 'draft'})
|
||||||
@ -44,6 +49,11 @@ class LoyaltyReward(models.Model):
|
|||||||
return records
|
return records
|
||||||
|
|
||||||
def write(self, vals):
|
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']
|
programs_to_reset = self.env['loyalty.program']
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
@ -63,6 +73,11 @@ class LoyaltyReward(models.Model):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
def unlink(self):
|
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']
|
programs_to_reset = self.env['loyalty.program']
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
|
|||||||
@ -8,6 +8,11 @@ class LoyaltyRule(models.Model):
|
|||||||
@api.model_create_multi
|
@api.model_create_multi
|
||||||
def create(self, vals_list):
|
def create(self, vals_list):
|
||||||
records = super().create(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:
|
for record in records:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
record.program_id.write({'state': 'draft'})
|
record.program_id.write({'state': 'draft'})
|
||||||
@ -15,6 +20,11 @@ class LoyaltyRule(models.Model):
|
|||||||
return records
|
return records
|
||||||
|
|
||||||
def write(self, vals):
|
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']
|
programs_to_reset = self.env['loyalty.program']
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
@ -34,6 +44,11 @@ class LoyaltyRule(models.Model):
|
|||||||
return res
|
return res
|
||||||
|
|
||||||
def unlink(self):
|
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']
|
programs_to_reset = self.env['loyalty.program']
|
||||||
for record in self:
|
for record in self:
|
||||||
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
if record.program_id and record.program_id.state in ['pending', 'approved']:
|
||||||
|
|||||||
Loading…
Reference in New Issue
Block a user