summaryrefslogtreecommitdiff
path: root/addons
diff options
context:
space:
mode:
authorThibault Delavallée <tde@odoo.com>2021-05-03 08:29:15 +0000
committerThibault Delavallée <tde@odoo.com>2021-05-03 08:31:41 +0000
commitd75905f7acb1e7584d01792b4880fa76e6920d56 (patch)
tree931bebfe1aeb033e5de5a57219dbbf8be034084c /addons
parent6915d17f5f10737c03c820b69eded3a7c0151907 (diff)
[FIX] crm: do not reset action name in convert wizard each time an option changes
Currently ``name`` field that holds the action type is recomputed each time duplicated leads are updated. However duplicated leads are often updated notably each time customer action (create / link / do nothing) and chosen customer are updated. As ``name`` compute method is mainly present to replace a default value its compute method is updated so that it nows compute only when not having a value. Once having a value user choice is kept. Task ID-2452777 COM PR odoo/odoo#68618 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
Diffstat (limited to 'addons')
-rw-r--r--addons/crm/tests/test_crm_lead_convert.py26
-rw-r--r--addons/crm/wizard/crm_lead_to_opportunity.py3
2 files changed, 28 insertions, 1 deletions
diff --git a/addons/crm/tests/test_crm_lead_convert.py b/addons/crm/tests/test_crm_lead_convert.py
index 48502f57154..d20a616d47f 100644
--- a/addons/crm/tests/test_crm_lead_convert.py
+++ b/addons/crm/tests/test_crm_lead_convert.py
@@ -29,6 +29,32 @@ class TestLeadConvertForm(crm_common.TestLeadConvertCommon):
self.assertEqual(wizard.action, 'exist')
self.assertEqual(wizard.partner_id, customer)
+ @users('user_sales_manager')
+ def test_form_name_onchange(self):
+ """ Test Lead._find_matching_partner() """
+ lead = self.env['crm.lead'].browse(self.lead_1.ids)
+ lead_dup = lead.copy({'name': 'Duplicate'})
+ customer = self.env['res.partner'].create({
+ "name": "Amy Wong",
+ "email": '"Amy, PhD Student, Wong" Tiny <AMY.WONG@test.example.com>'
+ })
+
+ wizard = Form(self.env['crm.lead2opportunity.partner'].with_context({
+ 'active_model': 'crm.lead',
+ 'active_id': lead.id,
+ 'active_ids': lead.ids,
+ }))
+
+ self.assertEqual(wizard.name, 'merge')
+ self.assertEqual(wizard.action, 'exist')
+ self.assertEqual(wizard.partner_id, customer)
+ self.assertEqual(wizard.duplicated_lead_ids[:], lead + lead_dup)
+
+ wizard.name = 'convert'
+ wizard.action = 'create'
+ self.assertEqual(wizard.action, 'create', 'Should keep user input')
+ self.assertEqual(wizard.name, 'convert', 'Should keep user input')
+
@tagged('lead_manage')
class TestLeadConvert(crm_common.TestLeadConvertCommon):
diff --git a/addons/crm/wizard/crm_lead_to_opportunity.py b/addons/crm/wizard/crm_lead_to_opportunity.py
index fbf44fe39e3..a3db5d2ac25 100644
--- a/addons/crm/wizard/crm_lead_to_opportunity.py
+++ b/addons/crm/wizard/crm_lead_to_opportunity.py
@@ -50,7 +50,8 @@ class Lead2OpportunityPartner(models.TransientModel):
@api.depends('duplicated_lead_ids')
def _compute_name(self):
for convert in self:
- convert.name = 'merge' if convert.duplicated_lead_ids and len(convert.duplicated_lead_ids) >= 2 else 'convert'
+ if not convert.name:
+ convert.name = 'merge' if convert.duplicated_lead_ids and len(convert.duplicated_lead_ids) >= 2 else 'convert'
@api.depends('lead_id')
def _compute_action(self):