Auto-detect common typos in email addresses

This commit is contained in:
Raphael Michel
2017-05-15 11:33:18 +02:00
parent 7d9a1b5e0c
commit 5ff6d0b014
5 changed files with 97 additions and 2 deletions

View File

@@ -20,7 +20,8 @@ class ContactForm(forms.Form):
email = forms.EmailField(label=_('E-mail'),
help_text=_('Make sure to enter a valid email address. We will send you an order '
'confirmation including a link that you need in case you want to make '
'modifications to your order or download your ticket later.'))
'modifications to your order or download your ticket later.'),
widget=forms.EmailInput(attrs={'data-typocheck-target': '1'}))
class InvoiceAddressForm(forms.ModelForm):
@@ -30,6 +31,8 @@ class InvoiceAddressForm(forms.ModelForm):
fields = ('company', 'name', 'street', 'zipcode', 'city', 'country', 'vat_id')
widgets = {
'street': forms.Textarea(attrs={'rows': 2, 'placeholder': _('Street and Number')}),
'company': forms.TextInput(attrs={'data-typocheck-source': '1'}),
'name': forms.TextInput(attrs={'data-typocheck-source': '1'}),
}
def __init__(self, *args, **kwargs):
@@ -76,7 +79,8 @@ class QuestionsForm(forms.Form):
self.fields['attendee_name'] = forms.CharField(
max_length=255, required=event.settings.attendee_names_required,
label=_('Attendee name'),
initial=(cartpos.attendee_name if cartpos else orderpos.attendee_name)
initial=(cartpos.attendee_name if cartpos else orderpos.attendee_name),
widget=forms.TextInput(attrs={'data-typocheck-source': '1'}),
)
if item.admission and event.settings.attendee_emails_asked:
self.fields['attendee_email'] = forms.EmailField(

View File

@@ -27,6 +27,7 @@
<script type="text/javascript" src="{% static "pretixbase/js/asynctask.js" %}"></script>
<script type="text/javascript" src="{% static "pretixbase/js/asyncdownload.js" %}"></script>
<script type="text/javascript" src="{% static "pretixpresale/js/ui/cart.js" %}"></script>
<script type="text/javascript" src="{% static "pretixpresale/js/ui/typocheck.js" %}"></script>
<script type="text/javascript" src="{% static "lightbox/js/lightbox.min.js" %}"></script>
{% endcompress %}
<meta name="referrer" content="origin">

View File

@@ -74,6 +74,12 @@
</div>
{% endfor %}
</div>
<div class="alert alert-warning typo-alert">
<strong>{% trans "Are you sure your email address is correct?" %}</strong><br>
{% blocktrans trimmed with entered="<span data-typodisplay></span>" suggestion="<span data-typosuggest></span>" %}
You entered "{{ entered }}". Did you mean "{{ suggestion }}"?
{% endblocktrans %}
</div>
<div class="row checkout-button-row">
<div class="col-md-4">
<a class="btn btn-block btn-default btn-lg"