forked from CGM_Public/pretix_original
Compare commits
2 Commits
widget-sea
...
v3.14.1
| Author | SHA1 | Date | |
|---|---|---|---|
|
|
56c861036c | ||
|
|
211fddf308 |
@@ -1 +1 @@
|
|||||||
__version__ = "3.14.0"
|
__version__ = "3.14.1"
|
||||||
|
|||||||
@@ -9,7 +9,6 @@ import pycountry
|
|||||||
import pytz
|
import pytz
|
||||||
import vat_moss.errors
|
import vat_moss.errors
|
||||||
import vat_moss.id
|
import vat_moss.id
|
||||||
from babel import localedata
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.contrib import messages
|
from django.contrib import messages
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
@@ -20,14 +19,14 @@ from django.utils.formats import date_format
|
|||||||
from django.utils.html import escape
|
from django.utils.html import escape
|
||||||
from django.utils.safestring import mark_safe
|
from django.utils.safestring import mark_safe
|
||||||
from django.utils.timezone import get_current_timezone
|
from django.utils.timezone import get_current_timezone
|
||||||
from django.utils.translation import (
|
from django.utils.translation import gettext_lazy as _, pgettext_lazy
|
||||||
get_language, gettext_lazy as _, pgettext_lazy,
|
|
||||||
)
|
|
||||||
from django_countries import countries
|
from django_countries import countries
|
||||||
from django_countries.fields import Country, CountryField
|
from django_countries.fields import Country, CountryField
|
||||||
from phonenumber_field.formfields import PhoneNumberField
|
from phonenumber_field.formfields import PhoneNumberField
|
||||||
from phonenumber_field.phonenumber import PhoneNumber
|
from phonenumber_field.phonenumber import PhoneNumber
|
||||||
from phonenumber_field.widgets import PhoneNumberPrefixWidget
|
from phonenumber_field.widgets import (
|
||||||
|
PhoneNumberPrefixWidget, PhonePrefixSelect,
|
||||||
|
)
|
||||||
from phonenumbers import NumberParseException, national_significant_number
|
from phonenumbers import NumberParseException, national_significant_number
|
||||||
from phonenumbers.data import _COUNTRY_CODE_TO_REGION_CODE
|
from phonenumbers.data import _COUNTRY_CODE_TO_REGION_CODE
|
||||||
|
|
||||||
@@ -35,7 +34,9 @@ from pretix.base.forms.widgets import (
|
|||||||
BusinessBooleanRadio, DatePickerWidget, SplitDateTimePickerWidget,
|
BusinessBooleanRadio, DatePickerWidget, SplitDateTimePickerWidget,
|
||||||
TimePickerWidget, UploadedFileWidget,
|
TimePickerWidget, UploadedFileWidget,
|
||||||
)
|
)
|
||||||
from pretix.base.i18n import get_language_without_region, language
|
from pretix.base.i18n import (
|
||||||
|
get_babel_locale, get_language_without_region, language,
|
||||||
|
)
|
||||||
from pretix.base.models import InvoiceAddress, Question, QuestionOption
|
from pretix.base.models import InvoiceAddress, Question, QuestionOption
|
||||||
from pretix.base.models.tax import (
|
from pretix.base.models.tax import (
|
||||||
EU_COUNTRIES, cc_to_vat_prefix, is_eu_country,
|
EU_COUNTRIES, cc_to_vat_prefix, is_eu_country,
|
||||||
@@ -204,7 +205,18 @@ class NamePartsFormField(forms.MultiValueField):
|
|||||||
return value
|
return value
|
||||||
|
|
||||||
|
|
||||||
|
class WrappedPhonePrefixSelect(PhonePrefixSelect):
|
||||||
|
def __init__(self, *args, **kwargs):
|
||||||
|
with language(get_babel_locale()):
|
||||||
|
super().__init__(*args, **kwargs)
|
||||||
|
|
||||||
|
|
||||||
class WrappedPhoneNumberPrefixWidget(PhoneNumberPrefixWidget):
|
class WrappedPhoneNumberPrefixWidget(PhoneNumberPrefixWidget):
|
||||||
|
|
||||||
|
def __init__(self, attrs=None, initial=None):
|
||||||
|
widgets = (WrappedPhonePrefixSelect(initial), forms.TextInput())
|
||||||
|
super(PhoneNumberPrefixWidget, self).__init__(widgets, attrs)
|
||||||
|
|
||||||
def render(self, name, value, attrs=None, renderer=None):
|
def render(self, name, value, attrs=None, renderer=None):
|
||||||
output = super().render(name, value, attrs, renderer)
|
output = super().render(name, value, attrs, renderer)
|
||||||
return mark_safe(self.format_output(output))
|
return mark_safe(self.format_output(output))
|
||||||
@@ -564,13 +576,7 @@ class BaseQuestionsForm(forms.Form):
|
|||||||
if q.valid_datetime_max:
|
if q.valid_datetime_max:
|
||||||
field.validators.append(MaxDateTimeValidator(q.valid_datetime_max))
|
field.validators.append(MaxDateTimeValidator(q.valid_datetime_max))
|
||||||
elif q.type == Question.TYPE_PHONENUMBER:
|
elif q.type == Question.TYPE_PHONENUMBER:
|
||||||
babel_locale = 'en'
|
with language(get_babel_locale()):
|
||||||
# Babel, and therefore django-phonenumberfield, do not support our custom locales such das de_Informal
|
|
||||||
if localedata.exists(get_language()):
|
|
||||||
babel_locale = get_language()
|
|
||||||
elif localedata.exists(get_language()[:2]):
|
|
||||||
babel_locale = get_language()[:2]
|
|
||||||
with language(babel_locale):
|
|
||||||
default_country = guess_country(event)
|
default_country = guess_country(event)
|
||||||
default_prefix = None
|
default_prefix = None
|
||||||
for prefix, values in _COUNTRY_CODE_TO_REGION_CODE.items():
|
for prefix, values in _COUNTRY_CODE_TO_REGION_CODE.items():
|
||||||
|
|||||||
@@ -1,5 +1,6 @@
|
|||||||
from contextlib import contextmanager
|
from contextlib import contextmanager
|
||||||
|
|
||||||
|
from babel import localedata
|
||||||
from django.conf import settings
|
from django.conf import settings
|
||||||
from django.utils import translation
|
from django.utils import translation
|
||||||
from django.utils.formats import date_format, number_format
|
from django.utils.formats import date_format, number_format
|
||||||
@@ -69,6 +70,16 @@ class LazyNumber:
|
|||||||
ALLOWED_LANGUAGES = dict(settings.LANGUAGES)
|
ALLOWED_LANGUAGES = dict(settings.LANGUAGES)
|
||||||
|
|
||||||
|
|
||||||
|
def get_babel_locale():
|
||||||
|
babel_locale = 'en'
|
||||||
|
# Babel, and therefore django-phonenumberfield, do not support our custom locales such das de_Informal
|
||||||
|
if localedata.exists(translation.get_language()):
|
||||||
|
babel_locale = translation.get_language()
|
||||||
|
elif localedata.exists(translation.get_language()[:2]):
|
||||||
|
babel_locale = translation.get_language()[:2]
|
||||||
|
return babel_locale
|
||||||
|
|
||||||
|
|
||||||
def get_language_without_region(lng=None):
|
def get_language_without_region(lng=None):
|
||||||
"""
|
"""
|
||||||
Returns the currently active language, but strips what pretix calls a ``region``. For example,
|
Returns the currently active language, but strips what pretix calls a ``region``. For example,
|
||||||
|
|||||||
@@ -1,10 +1,9 @@
|
|||||||
from itertools import chain
|
from itertools import chain
|
||||||
|
|
||||||
from babel import localedata
|
|
||||||
from django import forms
|
from django import forms
|
||||||
from django.core.exceptions import ValidationError
|
from django.core.exceptions import ValidationError
|
||||||
from django.utils.encoding import force_str
|
from django.utils.encoding import force_str
|
||||||
from django.utils.translation import get_language, gettext_lazy as _
|
from django.utils.translation import gettext_lazy as _
|
||||||
from phonenumber_field.formfields import PhoneNumberField
|
from phonenumber_field.formfields import PhoneNumberField
|
||||||
from phonenumber_field.phonenumber import PhoneNumber
|
from phonenumber_field.phonenumber import PhoneNumber
|
||||||
from phonenumbers import NumberParseException
|
from phonenumbers import NumberParseException
|
||||||
@@ -14,7 +13,7 @@ from pretix.base.forms.questions import (
|
|||||||
BaseInvoiceAddressForm, BaseQuestionsForm, WrappedPhoneNumberPrefixWidget,
|
BaseInvoiceAddressForm, BaseQuestionsForm, WrappedPhoneNumberPrefixWidget,
|
||||||
guess_country,
|
guess_country,
|
||||||
)
|
)
|
||||||
from pretix.base.i18n import language
|
from pretix.base.i18n import get_babel_locale, language
|
||||||
from pretix.base.validators import EmailBanlistValidator
|
from pretix.base.validators import EmailBanlistValidator
|
||||||
from pretix.presale.signals import contact_form_fields
|
from pretix.presale.signals import contact_form_fields
|
||||||
|
|
||||||
@@ -39,13 +38,7 @@ class ContactForm(forms.Form):
|
|||||||
)
|
)
|
||||||
|
|
||||||
if self.event.settings.order_phone_asked:
|
if self.event.settings.order_phone_asked:
|
||||||
babel_locale = 'en'
|
with language(get_babel_locale()):
|
||||||
# Babel, and therefore django-phonenumberfield, do not support our custom locales such as de_Informal
|
|
||||||
if localedata.exists(get_language()):
|
|
||||||
babel_locale = get_language()
|
|
||||||
elif localedata.exists(get_language()[:2]):
|
|
||||||
babel_locale = get_language()[:2]
|
|
||||||
with language(babel_locale):
|
|
||||||
default_country = guess_country(self.event)
|
default_country = guess_country(self.event)
|
||||||
default_prefix = None
|
default_prefix = None
|
||||||
for prefix, values in _COUNTRY_CODE_TO_REGION_CODE.items():
|
for prefix, values in _COUNTRY_CODE_TO_REGION_CODE.items():
|
||||||
|
|||||||
Reference in New Issue
Block a user