Minor fix in application help text
[flowspy] / longerusername / models.py
1 import django
2 from django.core.validators import MaxLengthValidator
3 from django.utils.translation import ugettext as _
4 from django.db.models.signals import class_prepared
5 from django.conf import settings
6 from longerusername import MAX_USERNAME_LENGTH
7
8 def longer_username_signal(sender, *args, **kwargs):
9     if (sender.__name__ == "User" and
10         sender.__module__ == "django.contrib.auth.models"):
11         patch_user_model(sender)
12 class_prepared.connect(longer_username_signal)
13
14 def patch_user_model(model):
15     field = model._meta.get_field("username")
16
17     field.max_length = MAX_USERNAME_LENGTH()
18     #field.help_text = _("Required, %s characters or fewer. Only letters, "
19      #                   "numbers, and @, ., +, -, or _ "
20      #                   "characters." % MAX_USERNAME_LENGTH())
21
22     # patch model field validator because validator doesn't change if we change
23     # max_length
24     for v in field.validators:
25         if isinstance(v, MaxLengthValidator):
26             v.limit_value = MAX_USERNAME_LENGTH()
27
28 from django.contrib.auth.models import User
29
30 # https://github.com/GoodCloud/django-longer-username/issues/1
31 # django 1.3.X loads User model before class_prepared signal is connected
32 # so we patch model after it's prepared
33
34 # check if User model is patched
35 if User._meta.get_field("username").max_length != MAX_USERNAME_LENGTH():
36     patch_user_model(User)