diff options
| -rw-r--r-- | addons/crm/tests/test_crm_lead.py | 6 | ||||
| -rw-r--r-- | addons/phone_validation/models/mail_thread_phone.py | 7 |
2 files changed, 12 insertions, 1 deletions
diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index 54df5adf79f..b1c2716674f 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 7eacb84d5c6..f81da543678 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. """ |
