From 304c367445d3b659666a2bd2a11eae97d85e3166 Mon Sep 17 00:00:00 2001 From: =?UTF-8?q?J=C3=A9r=C3=A9my=20Hennecart?= Date: Wed, 23 Sep 2020 08:41:02 +0000 Subject: [FIX] crm: correctly recompute dynamic depends when emptying crm.pls_fields config parameter When we clear the configuration parameter crm.pls_fields unlink method is called. In order to have a correct dynamic compute based on this parameter we need to re-evaluate the depends. This is done by overriding unlink of ir.config_parameter, like already done at create and write. Task-2196200 closes odoo/odoo#61290 X-original-commit: d04cc4df4ec28816aeb6d1d7c7fc0e547fd13fa5 Signed-off-by: Thibault Delavallee (tde) --- addons/crm/tests/test_crm_pls.py | 25 +++++++++++++++++++++++++ 1 file changed, 25 insertions(+) (limited to 'addons/crm/tests') diff --git a/addons/crm/tests/test_crm_pls.py b/addons/crm/tests/test_crm_pls.py index b49e8e612d1..24c50111832 100644 --- a/addons/crm/tests/test_crm_pls.py +++ b/addons/crm/tests/test_crm_pls.py @@ -351,3 +351,28 @@ class TestCRMPLS(TransactionCase): self.assertEqual(tools.float_compare(lead_tag_1.automated_probability, 33.69, 2), 0) self.assertEqual(tools.float_compare(lead_tag_2.automated_probability, 23.51, 2), 0) self.assertEqual(tools.float_compare(lead_tag_1_2.automated_probability, 28.05, 2), 0) + + # set email_state for each lead and update probabilities + leads.filtered(lambda lead: lead.id % 2 == 0).email_state = 'correct' + leads.filtered(lambda lead: lead.id % 2 == 1).email_state = 'incorrect' + Lead._cron_update_automated_probabilities() + leads_with_tags.invalidate_cache() + + self.assertEqual(tools.float_compare(leads[3].automated_probability, 4.21, 2), 0) + self.assertEqual(tools.float_compare(leads[8].automated_probability, 0.23, 2), 0) + + # remove all pls fields + self.env['ir.config_parameter'].sudo().set_param("crm.pls_fields", False) + Lead._cron_update_automated_probabilities() + leads_with_tags.invalidate_cache() + + self.assertEqual(tools.float_compare(leads[3].automated_probability, 34.38, 2), 0) + self.assertEqual(tools.float_compare(leads[8].automated_probability, 50.0, 2), 0) + + # check if the probabilities are the same with the old param + self.env['ir.config_parameter'].sudo().set_param("crm.pls_fields", "country_id,state_id,email_state,phone_state,source_id") + Lead._cron_update_automated_probabilities() + leads_with_tags.invalidate_cache() + + self.assertEqual(tools.float_compare(leads[3].automated_probability, 4.21, 2), 0) + self.assertEqual(tools.float_compare(leads[8].automated_probability, 0.23, 2), 0) -- cgit v1.2.3