From a83bb76011c1cf71ce34d9d1047761aa33b71cf4 Mon Sep 17 00:00:00 2001 From: "Achraf (abz)" Date: Fri, 29 Sep 2023 05:48:22 +0000 Subject: [PATCH] [FIX] loyalty: Prevent reward_ids to be reset to default Steps: - Install `sale_management` - Go to `Discount & Loyalty` - Create a new one and set a name - Change default program type from `discount` to `buy x get y` - Remove the default rewards - Add a new one (the default one) - Click `Save & Close` - Trigger save Rewards is reset to default `discount` instead of `buy x get y` closes odoo/odoo#138523 X-original-commit: 798c69f44bfde2f66826775a5a11fe5e51adb9a8 Signed-off-by: Victor Feyens (vfe) --- addons/loyalty/tests/test_loyalty.py | 13 ++++++++++++- addons/loyalty/views/loyalty_reward_views.xml | 2 +- 2 files changed, 13 insertions(+), 2 deletions(-) diff --git a/addons/loyalty/tests/test_loyalty.py b/addons/loyalty/tests/test_loyalty.py index f2595bc96c0..42cf23e5afd 100644 --- a/addons/loyalty/tests/test_loyalty.py +++ b/addons/loyalty/tests/test_loyalty.py @@ -5,7 +5,7 @@ from psycopg2 import IntegrityError from odoo.exceptions import ValidationError from odoo.fields import Command -from odoo.tests import tagged, TransactionCase +from odoo.tests import tagged, TransactionCase, Form from odoo.tools import mute_logger from unittest.mock import patch @@ -113,6 +113,17 @@ class TestLoyalty(TransactionCase): }) self.assertTrue(all(r.reward_type == 'product' for r in self.program.reward_ids)) + def test_loyalty_program_preserve_reward_with_always_edit(self): + with Form(self.env['loyalty.program']) as program_form: + program_form.name = 'Test' + program_form.program_type = 'buy_x_get_y' + program_form.reward_ids.remove(0) + with program_form.reward_ids.new() as new_reward: + new_reward.reward_product_qty = 2 + program = program_form.save() + self.assertEqual(program.reward_ids.reward_type, 'product') + self.assertEqual(program.reward_ids.reward_product_qty, 2) + def test_archiving_unarchiving(self): self.program.write({ 'reward_ids': [ diff --git a/addons/loyalty/views/loyalty_reward_views.xml b/addons/loyalty/views/loyalty_reward_views.xml index f43dfb314e3..e17f6e467d7 100644 --- a/addons/loyalty/views/loyalty_reward_views.xml +++ b/addons/loyalty/views/loyalty_reward_views.xml @@ -14,7 +14,7 @@ - +