add info to continue tutorial
[redakcja.git] / redakcja / forms.py
1 # -*- coding: utf-8 -*-
2 #
3 # This file is part of MIL/PEER, licensed under GNU Affero GPLv3 or later.
4 # Copyright © Fundacja Nowoczesna Polska. See NOTICE for more information.
5 #
6 from django import forms
7 from django.core.urlresolvers import reverse
8 from django.utils.safestring import mark_safe
9 from django.utils.translation import ugettext as _
10 from django.contrib.auth.models import User
11
12
13 class RegistrationForm(forms.Form):
14     first_name = forms.CharField()
15     last_name = forms.CharField()
16     email = forms.EmailField()
17     password = forms.CharField(widget=forms.PasswordInput)
18
19     def clean_email(self):
20         max_length = User._meta.get_field('username').max_length
21         email = self.cleaned_data['email']
22         if User.objects.filter(username=email).exists():
23             msg = _(
24                 'User with this email address already exists. '
25                 '<a href="%(login_url)s">Log in</a> or <a href="%(reset_url)s">reset your password</a>.') % {
26                 'login_url': reverse('login'),
27                 'reset_url': reverse('password_reset'),
28             }
29             raise forms.ValidationError(mark_safe(msg))
30         if len(email) > max_length:
31             raise forms.ValidationError(_('Username too long. Max length: %s') % max_length)
32         return email