diff --git a/addons/crm/tests/test_crm_lead.py b/addons/crm/tests/test_crm_lead.py index ebf64312175..1ab197bc917 100644 --- a/addons/crm/tests/test_crm_lead.py +++ b/addons/crm/tests/test_crm_lead.py @@ -368,8 +368,10 @@ class TestCRMLead(TestCrmCommon): self.assertFalse(lead.mobile) self.assertFalse(lead.phone_sanitized) self.assertEqual(partner.mobile, partner_mobile) - self.assertEqual(partner.phone_sanitized, partner_mobile_sanitized, - 'Partner sanitized should be computed on mobile') + # if SMS is uninstalled, phone_sanitized is not available on partner + if 'phone_sanitized' in partner: + self.assertEqual(partner.phone_sanitized, partner_mobile_sanitized, + 'Partner sanitized should be computed on mobile') @users('user_sales_manager') def test_crm_lead_partner_sync_email_phone_corner_cases(self): diff --git a/addons/phone_validation/models/res_partner.py b/addons/phone_validation/models/res_partner.py index 99f1ff13cf4..2f98353e21e 100644 --- a/addons/phone_validation/models/res_partner.py +++ b/addons/phone_validation/models/res_partner.py @@ -1,4 +1,3 @@ -# -*- coding: utf-8 -*- # Part of Odoo. See LICENSE file for full copyright and licensing details. from odoo import api, models @@ -30,3 +29,16 @@ class Partner(models.Model): force_format='INTERNATIONAL', raise_exception=False ) + + def phone_get_sanitized_number(self, number_fname='mobile', force_format='E164'): + """ Stand alone version, allowing to use it on partner model without + having any dependency on sms module. To cleanup in master (15.3 +).""" + self.ensure_one() + country_fname = 'country_id' + number = self[number_fname] + return phone_validation.phone_sanitize_numbers_w_record([number], self, record_country_fname=country_fname, force_format=force_format)[number]['sanitized'] + + def _phone_get_number_fields(self): + """ Stand alone version, allowing to use it on partner model without + having any dependency on sms module. To cleanup in master (15.3 +).""" + return ['mobile', 'phone'] diff --git a/addons/sms/models/res_partner.py b/addons/sms/models/res_partner.py index f1f63b85561..3215fa66832 100644 --- a/addons/sms/models/res_partner.py +++ b/addons/sms/models/res_partner.py @@ -6,7 +6,7 @@ from odoo import models class ResPartner(models.Model): _name = 'res.partner' - _inherit = ['res.partner', 'mail.thread.phone'] + _inherit = ['mail.thread.phone', 'res.partner'] def _sms_get_default_partners(self): """ Override of mail.thread method.