diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index 54df5adf79f1d0b998dcb2d37aa49c5dc4cb6a4e..b1c2716674f60c9084f5757efeda5ee3c3709f45 100644 --- a/addons/crm/tests/test_crm_lead.py +++ b/addons/crm/tests/test_crm_lead.py @@ -408,6 +408,12 @@ class TestCRMLead(TestCrmCommon): self.assertEqual(lead.mobile, self.test_phone_data[2]) self.assertEqual(lead.phone_sanitized, self.test_phone_data_sanitized[2]) + # updating country should trigger sanitize computation + lead.write({'country_id': self.env.ref('base.be').id}) + self.assertEqual(lead.phone, self.test_phone_data[1]) + self.assertEqual(lead.mobile, self.test_phone_data[2]) + self.assertFalse(lead.phone_sanitized) + @users('user_sales_manager') def test_phone_mobile_search(self): lead_1 = self.env['crm.lead'].create({ diff --git a/addons/phone_validation/models/mail_thread_phone.py b/addons/phone_validation/models/mail_thread_phone.py index 7eacb84d5c6e2d2be04075517446248c0ebf1af1..f81da543678af82e6d7655cf88cffbb2a0f35511 100644 --- a/addons/phone_validation/models/mail_thread_phone.py +++ b/addons/phone_validation/models/mail_thread_phone.py @@ -43,7 +43,7 @@ class PhoneMixin(models.AbstractModel): help="Indicates if a blacklisted sanitized phone number is a mobile number. Helps distinguish which number is blacklisted \ when there is both a mobile and phone field in a model.") - @api.depends(lambda self: self._phone_get_number_fields()) + @api.depends(lambda self: self._phone_get_sanitize_triggers()) def _compute_phone_sanitized(self): self._assert_phone_field() number_fields = self._phone_get_number_fields() @@ -113,6 +113,11 @@ class PhoneMixin(models.AbstractModel): if not any(fname in self and self._fields[fname].type == 'char' for fname in self._phone_get_number_fields()): raise UserError(_('Invalid primary phone field on model %s', self._name)) + def _phone_get_sanitize_triggers(self): + """ Tool method to get all triggers for sanitize """ + res = [self._phone_get_country_field()] if self._phone_get_country_field() else [] + return res + self._phone_get_number_fields() + def _phone_get_number_fields(self): """ This method returns the fields to use to find the number to use to send an SMS on a record. """