From d6a754b053ad7c29c216e65fadce98f6183938eb Mon Sep 17 00:00:00 2001 From: Razmig Sarkissian Date: Sat, 28 Jun 2025 08:46:21 +0200 Subject: [PATCH] fix issue with new caledonie phone numbers --- tournaments/forms.py | 23 +++++++++++------------ 1 file changed, 11 insertions(+), 12 deletions(-) diff --git a/tournaments/forms.py b/tournaments/forms.py index 2ca881d..3c7c7f8 100644 --- a/tournaments/forms.py +++ b/tournaments/forms.py @@ -77,10 +77,10 @@ class SimpleCustomUserCreationForm(UserCreationForm): def clean_phone(self): phone = self.cleaned_data.get('phone') if phone: - # Remove all spaces - phone = phone.replace(' ', '') - # Basic regex for phone numbers, matching common formats - if not re.match(r"^\+?\d{10,15}$", phone): + # Remove all spaces, dots, dashes, and parentheses + phone = re.sub(r'[\s\.\-\(\)]', '', phone) + # Basic regex for phone numbers, allowing 6-15 digits for international numbers + if not re.match(r"^\+?\d{6,15}$", phone): raise forms.ValidationError("Entrer un numéro de téléphone valide.") return phone @@ -181,10 +181,9 @@ class TournamentRegistrationForm(forms.Form): def clean_mobile_number(self): mobile_number = self.cleaned_data.get('mobile_number') if mobile_number: - # Basic regex for mobile numbers, matching common formats - # Remove spaces from the number first - mobile_number = mobile_number.replace(' ', '') - if not re.match(r"^\+?\d{10,15}$", mobile_number): + # Remove spaces, dots, dashes, and parentheses from the number first + mobile_number = re.sub(r'[\s\.\-\(\)]', '', mobile_number) + if not re.match(r"^\+?\d{6,15}$", mobile_number): raise forms.ValidationError("Entrer un numéro de téléphone valide.") return mobile_number @@ -292,10 +291,10 @@ class ProfileUpdateForm(forms.ModelForm): def clean_phone(self): phone = self.cleaned_data.get('phone') if phone: - # Remove all spaces - phone = phone.replace(' ', '') - # Basic regex for phone numbers, matching common formats - if not re.match(r"^\+?\d{10,15}$", phone): + # Remove all spaces, dots, dashes, and parentheses + phone = re.sub(r'[\s\.\-\(\)]', '', phone) + # Basic regex for phone numbers, allowing 6-15 digits for international numbers + if not re.match(r"^\+?\d{6,15}$", phone): raise forms.ValidationError("Entrer un numéro de téléphone valide.") return phone