From 27ebef3f73438f70fd8c23fef51f8a223515048a Mon Sep 17 00:00:00 2001 From: Benjamin Dauvergne Date: Fri, 1 May 2015 14:26:12 +0200 Subject: [PATCH] fix_user_model: delay formatting of username field's help_text until rendering by ancapsulating operator % with allow_lazy (fixes #7123) --- src/authentic2/fix_user_model.py | 8 ++++++-- 1 file changed, 6 insertions(+), 2 deletions(-) diff --git a/src/authentic2/fix_user_model.py b/src/authentic2/fix_user_model.py index 98310e1..53e4310 100644 --- a/src/authentic2/fix_user_model.py +++ b/src/authentic2/fix_user_model.py @@ -1,8 +1,12 @@ import re from django.utils.translation import ugettext_lazy as _ +from django.utils.functional import allow_lazy from django.core.validators import MaxLengthValidator, RegexValidator +# Allow delaying formatting +uinterpolate= allow_lazy(lambda self, arg: self % arg, unicode) + #from django.db.models.signals import class_prepared #def longer_username_signal(sender, *args, **kwargs): # if (sender.__name__ == "User" and @@ -31,9 +35,9 @@ def patch_username(model): return field.max_length = MAX_USERNAME_LENGTH - field.help_text = _("Required, %s characters or fewer. Only letters, " + field.help_text = uinterpolate(_("Required, %s characters or fewer. Only letters, " "numbers, and @, ., +, -, or _ " - "characters." % MAX_USERNAME_LENGTH) + "characters."), 255) if app_settings.A2_USERNAME_HELP_TEXT: field.help_text = app_settings.A2_USERNAME_HELP_TEXT field.label = _('username') -- 2.1.4