mirror of
https://github.com/pretix/pretix.git
synced 2026-05-05 15:14:04 +00:00
Fix phone tel-country-code label and autocomplete (#5227)
* Fix phone tel-country-code label and autocomplete * Add autocomplete sectioning for MultiWidget
This commit is contained in:
committed by
GitHub
parent
2f7a00e660
commit
24c02751cc
@@ -308,7 +308,10 @@ class WrappedPhonePrefixSelect(Select):
|
|||||||
self.initial = "+%d" % prefix
|
self.initial = "+%d" % prefix
|
||||||
break
|
break
|
||||||
choices += get_phone_prefixes_sorted_and_localized()
|
choices += get_phone_prefixes_sorted_and_localized()
|
||||||
super().__init__(choices=choices, attrs={'aria-label': pgettext_lazy('phonenumber', 'International area code')})
|
super().__init__(choices=choices, attrs={
|
||||||
|
'aria-label': pgettext_lazy('phonenumber', 'International area code'),
|
||||||
|
'autocomplete': 'tel-country-code',
|
||||||
|
})
|
||||||
|
|
||||||
def render(self, name, value, *args, **kwargs):
|
def render(self, name, value, *args, **kwargs):
|
||||||
return super().render(name, value or self.initial, *args, **kwargs)
|
return super().render(name, value or self.initial, *args, **kwargs)
|
||||||
@@ -331,11 +334,11 @@ class WrappedPhonePrefixSelect(Select):
|
|||||||
class WrappedPhoneNumberPrefixWidget(PhoneNumberPrefixWidget):
|
class WrappedPhoneNumberPrefixWidget(PhoneNumberPrefixWidget):
|
||||||
|
|
||||||
def __init__(self, attrs=None, initial=None):
|
def __init__(self, attrs=None, initial=None):
|
||||||
attrs = {
|
widgets = (WrappedPhonePrefixSelect(initial), forms.TextInput(attrs={
|
||||||
'aria-label': pgettext_lazy('phonenumber', 'Phone number (without international area code)')
|
'aria-label': pgettext_lazy('phonenumber', 'Phone number (without international area code)'),
|
||||||
}
|
'autocomplete': 'tel-national',
|
||||||
widgets = (WrappedPhonePrefixSelect(initial), forms.TextInput(attrs=attrs))
|
}))
|
||||||
super(PhoneNumberPrefixWidget, self).__init__(widgets, attrs)
|
super(PhoneNumberPrefixWidget, self).__init__(widgets)
|
||||||
|
|
||||||
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)
|
||||||
@@ -992,6 +995,13 @@ class BaseQuestionsForm(forms.Form):
|
|||||||
value.initial = data.get('question_form_data', {}).get(key)
|
value.initial = data.get('question_form_data', {}).get(key)
|
||||||
|
|
||||||
for k, v in self.fields.items():
|
for k, v in self.fields.items():
|
||||||
|
if isinstance(v.widget, forms.MultiWidget):
|
||||||
|
for w in v.widget.widgets:
|
||||||
|
autocomplete = w.attrs.get('autocomplete', '')
|
||||||
|
if autocomplete.strip() == "off":
|
||||||
|
w.attrs['autocomplete'] = 'off'
|
||||||
|
else:
|
||||||
|
w.attrs['autocomplete'] = 'section-{} '.format(self.prefix) + autocomplete
|
||||||
if v.widget.attrs.get('autocomplete') or k == 'attendee_name_parts':
|
if v.widget.attrs.get('autocomplete') or k == 'attendee_name_parts':
|
||||||
autocomplete = v.widget.attrs.get('autocomplete', '')
|
autocomplete = v.widget.attrs.get('autocomplete', '')
|
||||||
if autocomplete.strip() == "off":
|
if autocomplete.strip() == "off":
|
||||||
|
|||||||
Reference in New Issue
Block a user