From d100cf91b6fe3cb821a33b0098d73282218e6561 Mon Sep 17 00:00:00 2001 From: clementthomas Date: Mon, 11 Mar 2024 10:53:04 +0100 Subject: [PATCH] [IMP] partner_aphone_country_validation: module debugged --- partner_phone_country_validation/__manifest__.py | 2 +- .../models/res_partner.py | 11 +++++++---- .../tools/get_country_from_phone_number.py | 2 +- 3 files changed, 9 insertions(+), 6 deletions(-) diff --git a/partner_phone_country_validation/__manifest__.py b/partner_phone_country_validation/__manifest__.py index 2bfa191..9b1e9bc 100644 --- a/partner_phone_country_validation/__manifest__.py +++ b/partner_phone_country_validation/__manifest__.py @@ -9,7 +9,7 @@ "maintainer": "Boris Gallet", "license": "AGPL-3", "category": "Tools", - "summary": "Check the correct format of phone according to country when partner creation/validation", + "summary": "Format phone number according with country and select good country depending on phone if country empty", # any module necessary for this one to work correctly "depends": [ "base", diff --git a/partner_phone_country_validation/models/res_partner.py b/partner_phone_country_validation/models/res_partner.py index 3468a52..5a1a8ee 100644 --- a/partner_phone_country_validation/models/res_partner.py +++ b/partner_phone_country_validation/models/res_partner.py @@ -1,6 +1,9 @@ from odoo import api, models, _ from odoo.addons.partner_phone_country_validation.tools.get_country_from_phone_number import get_country_from_phone_number from odoo.exceptions import ValidationError +import logging + +_logger = logging.getLogger(__name__) class Partner(models.Model): _name = 'res.partner' @@ -26,11 +29,11 @@ class Partner(models.Model): @api.onchange('mobile', 'country_id', 'company_id') def _onchange_mobile_validation(self): # If no country is found, we define the country based on the beginning of the number - if not self.country_id: + if not self.country_id and self.mobile: self.country_id = self.env['res.country'].search( - [('code', '=', get_country_from_phone_number(self.phone))], limit=1 + [('code', '=', get_country_from_phone_number(self.mobile))], limit=1 ) - if self.mobile: - if self.phone.startswith("00") or self.phone.startswith('+'): + if self.mobile: + if self.mobile.startswith("00") or self.mobile.startswith('+'): return self.mobile = self.phone_format(self.mobile) diff --git a/partner_phone_country_validation/tools/get_country_from_phone_number.py b/partner_phone_country_validation/tools/get_country_from_phone_number.py index 81e3255..ad9c012 100644 --- a/partner_phone_country_validation/tools/get_country_from_phone_number.py +++ b/partner_phone_country_validation/tools/get_country_from_phone_number.py @@ -7,7 +7,7 @@ try: def get_country_from_phone_number(number): try: - number = phonenumbers.parse(number) + number = phonenumbers.parse(number) return phonenumbers.region_code_for_number(number) except phonenumbers.phonenumberutil.NumberParseException: return False