X-Git-Url: https://git.openstreetmap.org./osqa.git/blobdiff_plain/9308d78c7f1e4d2a4faf3b98d1b24c262f3b6287..9e90f0a3529f2f982c1d209cd6a3aac1ac03287b:/forum/forms/general.py diff --git a/forum/forms/general.py b/forum/forms/general.py index 1becdf0..aa4282e 100644 --- a/forum/forms/general.py +++ b/forum/forms/general.py @@ -5,9 +5,11 @@ from django.utils.safestring import mark_safe from forum import settings from django.http import str_to_unicode from forum.models import User +from forum.modules import call_all_handlers import urllib +import logging -DEFAULT_NEXT = '/' + getattr(settings, 'FORUM_SCRIPT_ALIAS') +DEFAULT_NEXT = getattr(settings, 'APP_BASE_URL') def clean_next(next): if next is None: return DEFAULT_NEXT @@ -34,7 +36,7 @@ class NextUrlField(forms.CharField): return clean_next(value) login_form_widget_attrs = { 'class': 'required login' } -username_re = re.compile(r'^[\w\s ]+$', re.UNICODE) +username_re = re.compile(r'^[\-\w\s ]+$', re.UNICODE) class UserNameField(StrippedNonEmptyCharField): def __init__(self,db_model=User, db_field='username', must_exist=False,skip_clean=False,label=_('choose a username'),**kw): @@ -47,7 +49,7 @@ class UserNameField(StrippedNonEmptyCharField): 'forbidden':_('sorry, this name is not allowed, please choose another'), 'missing':_('sorry, there is no user with this name'), 'multiple-taken':_('sorry, we have a serious error - user name is taken by several users'), - 'invalid':_('user name can only consist of letters, empty space and underscore'), + 'invalid':_('user name can only consist of letters, empty space, hyphens and underscore'), 'toshort':_('user name is to short, please use at least %d characters') % settings.MIN_USERNAME_LENGTH } if 'error_messages' in kw: @@ -154,3 +156,18 @@ class SetPasswordForm(forms.Form): else: return self.cleaned_data['password2'] +class SimpleCaptchaForm(forms.Form): + fields = {} + + def __init__(self, *args, **kwargs): + super(SimpleCaptchaForm, self).__init__(*args, **kwargs) + + spam_fields = call_all_handlers('create_anti_spam_field') + if spam_fields: + spam_fields = dict(spam_fields) + for name, field in spam_fields.items(): + self.fields[name] = field + + self._anti_spam_fields = spam_fields.keys() + else: + self._anti_spam_fields = []