mirror of
https://github.com/pretix/pretix.git
synced 2026-05-08 15:44:02 +00:00
Add phone number to customer profile (Z#178346) (#2414)
This commit is contained in:
committed by
GitHub
parent
cbdafac999
commit
768bb8c106
@@ -31,8 +31,12 @@ from django.contrib.auth.password_validation import (
|
||||
from django.contrib.auth.tokens import PasswordResetTokenGenerator
|
||||
from django.utils.functional import cached_property
|
||||
from django.utils.translation import gettext_lazy as _
|
||||
from phonenumber_field.formfields import PhoneNumberField
|
||||
|
||||
from pretix.base.forms.questions import NamePartsFormField
|
||||
from pretix.base.forms.questions import (
|
||||
NamePartsFormField, WrappedPhoneNumberPrefixWidget, get_country_by_locale,
|
||||
get_phone_prefix,
|
||||
)
|
||||
from pretix.base.i18n import get_language_without_region
|
||||
from pretix.base.models import Customer
|
||||
from pretix.base.services.mail import mail
|
||||
@@ -137,6 +141,19 @@ class RegistrationForm(forms.Form):
|
||||
self.request = request
|
||||
super().__init__(*args, **kwargs)
|
||||
|
||||
event = getattr(request, "event", None)
|
||||
if event and event.settings.order_phone_asked:
|
||||
if event.settings.region or event.organizer.settings.region:
|
||||
country_code = event.settings.region or event.organizer.settings.region
|
||||
phone_prefix = get_phone_prefix(country_code)
|
||||
if phone_prefix:
|
||||
self.initial['phone'] = "+{}.".format(phone_prefix)
|
||||
self.fields['phone'] = PhoneNumberField(
|
||||
label=_('Phone'),
|
||||
required=event.settings.order_phone_required,
|
||||
widget=WrappedPhoneNumberPrefixWidget()
|
||||
)
|
||||
|
||||
self.fields['name_parts'] = NamePartsFormField(
|
||||
max_length=255,
|
||||
required=True,
|
||||
@@ -394,7 +411,7 @@ class ChangeInfoForm(forms.ModelForm):
|
||||
|
||||
class Meta:
|
||||
model = Customer
|
||||
fields = ('name_parts', 'email')
|
||||
fields = ('name_parts', 'email', 'phone')
|
||||
|
||||
def __init__(self, request=None, *args, **kwargs):
|
||||
self.request = request
|
||||
@@ -408,6 +425,18 @@ class ChangeInfoForm(forms.ModelForm):
|
||||
label=_('Name'),
|
||||
)
|
||||
|
||||
if not self.initial.get('phone') and (request.organizer.settings.region or self.instance.locale):
|
||||
country_code = self.instance.organizer.settings.region or get_country_by_locale(self.instance.locale)
|
||||
phone_prefix = get_phone_prefix(country_code)
|
||||
if phone_prefix:
|
||||
self.initial['phone'] = "+{}.".format(phone_prefix)
|
||||
|
||||
self.fields['phone'] = PhoneNumberField(
|
||||
label=_('Phone'),
|
||||
required=False,
|
||||
widget=WrappedPhoneNumberPrefixWidget()
|
||||
)
|
||||
|
||||
def clean_password_current(self):
|
||||
old_pw = self.cleaned_data.get('password_current')
|
||||
|
||||
|
||||
Reference in New Issue
Block a user