|
@@ -2,20 +2,28 @@ import floppyforms as forms
|
|
from django.core.exceptions import ValidationError
|
|
from django.core.exceptions import ValidationError
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from django.utils.translation import ugettext_lazy as _
|
|
from misago.conf import settings
|
|
from misago.conf import settings
|
|
-from misago.forms import Form, QACaptchaField, ReCaptchaField
|
|
|
|
|
|
+from misago.forms import Form, QACaptchaField, ReCaptchaField, ForumTOS
|
|
from misago.models import User
|
|
from misago.models import User
|
|
from misago.utils.timezones import tzlist
|
|
from misago.utils.timezones import tzlist
|
|
from misago.validators import validate_username, validate_password, validate_email
|
|
from misago.validators import validate_username, validate_password, validate_email
|
|
|
|
|
|
class UserRegisterForm(Form):
|
|
class UserRegisterForm(Form):
|
|
- username = forms.CharField(max_length=15)
|
|
|
|
- email = forms.EmailField(max_length=255)
|
|
|
|
|
|
+ username = forms.CharField(label=_('Username'),
|
|
|
|
+ help_text=_("Your displayed username. Between %(min)s and %(max)s characters, only letters and digits are allowed.") % {'min': settings.username_length_min, 'max': settings.username_length_max},
|
|
|
|
+ max_length=15)
|
|
|
|
+ email = forms.EmailField(label=_('E-mail address'),
|
|
|
|
+ help_text=_("Working e-mail inbox is required to maintain control over your forum account."),
|
|
|
|
+ max_length=255)
|
|
email_rep = forms.EmailField(max_length=255)
|
|
email_rep = forms.EmailField(max_length=255)
|
|
- password = forms.CharField(max_length=255,widget=forms.PasswordInput)
|
|
|
|
|
|
+ password = forms.CharField(label=_('Password'),
|
|
|
|
+ help_text=_("Password you will be using to sign in to your account. Make sure it's strong."),
|
|
|
|
+ max_length=255,widget=forms.PasswordInput)
|
|
password_rep = forms.CharField(max_length=255,widget=forms.PasswordInput)
|
|
password_rep = forms.CharField(max_length=255,widget=forms.PasswordInput)
|
|
captcha_qa = QACaptchaField()
|
|
captcha_qa = QACaptchaField()
|
|
recaptcha = ReCaptchaField()
|
|
recaptcha = ReCaptchaField()
|
|
- accept_tos = forms.BooleanField(required=True,error_messages={'required': _("Acceptation of board ToS is mandatory for membership.")})
|
|
|
|
|
|
+ accept_tos = forms.BooleanField(label=_("Forum Terms of Service"),
|
|
|
|
+ required=True, widget=ForumTOS,
|
|
|
|
+ error_messages={'required': _("Acceptation of board ToS is mandatory for membership.")})
|
|
|
|
|
|
validate_repeats = (('email', 'email_rep'), ('password', 'password_rep'))
|
|
validate_repeats = (('email', 'email_rep'), ('password', 'password_rep'))
|
|
repeats_errors = [{
|
|
repeats_errors = [{
|
|
@@ -25,31 +33,9 @@ class UserRegisterForm(Form):
|
|
'different': _("Entered passwords do not match."),
|
|
'different': _("Entered passwords do not match."),
|
|
}]
|
|
}]
|
|
|
|
|
|
- def finalize_form(self):
|
|
|
|
- raise NotImplementedError("TODO: Finish #114 in front-end!")
|
|
|
|
- self.layout = [
|
|
|
|
- (
|
|
|
|
- None,
|
|
|
|
- [('username', {'label': _('Username'), 'help_text': _("Your displayed username. Between %(min)s and %(max)s characters, only letters and digits are allowed.") % {'min': settings.username_length_min, 'max': settings.username_length_max},'attrs': {'placeholder': _("Enter your desired username")}})]
|
|
|
|
- ),
|
|
|
|
- (
|
|
|
|
- None,
|
|
|
|
- [('nested', [('email', {'label': _('E-mail address'), 'help_text': _("Working e-mail inbox is required to maintain control over your forum account."), 'attrs': {'placeholder': _("Enter your e-mail")}, 'width': 50}), ('email_rep', {'attrs': {'placeholder': _("Repeat your e-mail")}, 'width': 50})]),
|
|
|
|
- ('nested', [('password', {'label': _('Password'), 'help_text': _("Password you will be using to sign in to your account. Make sure it's strong."), 'has_value': False, 'attrs': {'placeholder': _("Enter your password")}, 'width': 50}), ('password_rep', {'has_value': False, 'attrs': {'placeholder': _("Repeat your password")}, 'width': 50})])]
|
|
|
|
- ),
|
|
|
|
- (
|
|
|
|
- None,
|
|
|
|
- ['captcha_qa', 'recaptcha']
|
|
|
|
- ),
|
|
|
|
- (
|
|
|
|
- None,
|
|
|
|
- [('accept_tos', {'label': _("Forum Terms of Service"), 'widget': 'forumTos'})]
|
|
|
|
- ),
|
|
|
|
- ]
|
|
|
|
-
|
|
|
|
|
|
+ def finalize_form(self):
|
|
if not settings.tos_url and not settings.tos_content:
|
|
if not settings.tos_url and not settings.tos_content:
|
|
del self.fields['accept_tos']
|
|
del self.fields['accept_tos']
|
|
- del self.layout[3]
|
|
|
|
|
|
|
|
def clean_username(self):
|
|
def clean_username(self):
|
|
validate_username(self.cleaned_data['username'])
|
|
validate_username(self.cleaned_data['username'])
|