forms: add autocomplete attributes for registration (#41131)
This commit is contained in:
parent
fdd3f15aa7
commit
9b6e2e465f
|
@ -72,6 +72,16 @@ validate_name = RegexValidator(
|
|||
class RegistrationCompletionFormNoPassword(profile_forms.BaseUserForm):
|
||||
error_css_class = 'form-field-error'
|
||||
required_css_class = 'form-field-required'
|
||||
html5_autocomplete_map = {
|
||||
'first_name': 'given-name',
|
||||
'last_name': 'family-name',
|
||||
'address': 'address-line1',
|
||||
'zipcode': 'postal-code',
|
||||
'city': 'address-level2',
|
||||
'country': 'country',
|
||||
'phone': 'tel',
|
||||
'email': 'email',
|
||||
}
|
||||
|
||||
def __init__(self, *args, **kwargs):
|
||||
super().__init__(*args, **kwargs)
|
||||
|
@ -79,6 +89,9 @@ class RegistrationCompletionFormNoPassword(profile_forms.BaseUserForm):
|
|||
self.fields['first_name'].validators.append(validate_name)
|
||||
if 'last_name' in self.fields:
|
||||
self.fields['last_name'].validators.append(validate_name)
|
||||
for field, autocomplete_value in self.html5_autocomplete_map.items():
|
||||
if field in self.fields:
|
||||
self.fields[field].widget.attrs['autocomplete'] = autocomplete_value
|
||||
|
||||
def clean_username(self):
|
||||
if self.cleaned_data.get('username'):
|
||||
|
|
|
@ -841,3 +841,18 @@ def test_registration_name_validation(app, db, mailoutbox):
|
|||
resp.form.set('last_name', 'D\'Équerre')
|
||||
resp = resp.form.submit().follow()
|
||||
assert 'You have just created an account' in resp.text
|
||||
|
||||
|
||||
def test_attribute_model_autocomplete(app, db, settings, mailoutbox):
|
||||
settings.LANGUAGE_CODE = 'en-us'
|
||||
|
||||
response = app.get(reverse('registration_register'))
|
||||
response.form.set('email', 'testbot@entrouvert.com')
|
||||
response = response.form.submit()
|
||||
assert urlparse(response['Location']).path == reverse('registration_complete')
|
||||
|
||||
link = get_link_from_mail(mailoutbox[0])
|
||||
response = app.get(link)
|
||||
|
||||
assert response.form['first_name'].attrs['autocomplete'] == 'given-name'
|
||||
assert response.form['last_name'].attrs['autocomplete'] == 'family-name'
|
||||
|
|
Loading…
Reference in New Issue