PURPOSE Remove complex or technical code adding few value. RATIONALE phone.validation.mixin is used in two models: crm.lead and res.partner. It only add a phone_format method used in onchange. We can inline this code in those two models and remove the whole mixin itself. It lessens inherit and class complexity. SPECIFICATIONS Remove phone.validation.mixin. Inline code in crm.lead (CRM application) and res.partner (phone validation module). Make phone_format private as it is now some internal tool method on those two models. Everything should behave as before this commit. No functional change is intended. LINKS Task ID-2416789 COM PR odoo/odoo#63333 ENT PR odoo/enterprise#15296 UPG PR odoo/upgrade#2025 Signed-off-by: Thibault Delavallee (tde) <tde@openerp.com>
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
# -*- coding: utf-8 -*-
|
|
# Part of Odoo. See LICENSE file for full copyright and licensing details.
|
|
|
|
from odoo import api, models
|
|
from odoo.addons.phone_validation.tools import phone_validation
|
|
|
|
|
|
class Partner(models.Model):
|
|
_name = 'res.partner'
|
|
_inherit = ['res.partner']
|
|
|
|
@api.onchange('phone', 'country_id', 'company_id')
|
|
def _onchange_phone_validation(self):
|
|
if self.phone:
|
|
self.phone = self._phone_format(self.phone)
|
|
|
|
@api.onchange('mobile', 'country_id', 'company_id')
|
|
def _onchange_mobile_validation(self):
|
|
if self.mobile:
|
|
self.mobile = self._phone_format(self.mobile)
|
|
|
|
def _phone_format(self, number, country=None, company=None):
|
|
country = country or self.country_id or self.env.company.country_id
|
|
if not country:
|
|
return number
|
|
return phone_validation.phone_format(
|
|
number,
|
|
country.code if country else None,
|
|
country.phone_code if country else None,
|
|
force_format='INTERNATIONAL',
|
|
raise_exception=False
|
|
)
|