]> git.openstreetmap.org Git - osqa.git/commitdiff
SPLUNK-198. Long usernames used to cause trouble with the UI. Every username length...
authorjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Wed, 6 Apr 2011 14:53:34 +0000 (14:53 +0000)
committerjordan <jordan@0cfe37f9-358a-4d5e-be75-b63607b5c754>
Wed, 6 Apr 2011 14:53:34 +0000 (14:53 +0000)
git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@935 0cfe37f9-358a-4d5e-be75-b63607b5c754

forum/models/user.py
forum/settings/users.py

index 699c7bc5ed015531bf77630f6381d01be8580a6d..e7365388eb2efce62bfba607f9b8be18f06839e5 100644 (file)
@@ -5,6 +5,8 @@ from django.contrib.contenttypes.models import ContentType
 from django.contrib.auth.models import User as DjangoUser, AnonymousUser as DjangoAnonymousUser
 from django.db.models import Q
 
+from forum.settings import TRUNCATE_LONG_USERNAMES, TRUNCATE_USERNAMES_LONGER_THAN
+
 import string
 from random import Random
 
@@ -146,12 +148,17 @@ class User(BaseModel, DjangoUser):
 
     @property
     def decorated_name(self):
+        username = self.username
+
+        if len(username) > TRUNCATE_USERNAMES_LONGER_THAN and TRUNCATE_LONG_USERNAMES:
+            username = '%s...' % username[:TRUNCATE_USERNAMES_LONGER_THAN-3]
+
         if settings.SHOW_STATUS_DIAMONDS:
             if self.is_superuser:
-                return u"%s \u2666\u2666" % self.username
+                return u"%s \u2666\u2666" % username
 
             if self.is_staff:
-                return u"%s \u2666" % self.username
+                return u"%s \u2666" % username
 
         return self.username
 
index 040e8ebcea7241ee7088646ffd2b52a5e33334a2..cceaf578e43b5985cfd47c031cf566a5954b3a49 100644 (file)
@@ -22,6 +22,16 @@ label = _("Disabled usernames"),
 help_text = _("A comma separated list of disabled usernames (usernames not allowed during a new user registration)."),
 widget=CommaStringListWidget))
 
+TRUNCATE_LONG_USERNAMES = Setting('TRUNCATE_LONG_USERNAMES', True, USERS_SET, dict(
+label=_("Truncate long usernames"),
+help_text = _("The long usernames will be truncated.."),
+required=False,
+))
+
+TRUNCATE_USERNAMES_LONGER_THAN = Setting('TRUNCATE_USERNAMES_LONGER_THAN', 15, USERS_SET, dict(
+label = _("Truncate usernames longer than"),
+help_text = _("The usernames that are longer than this will be truncated and ... will be appended.")))
+
 SHOW_STATUS_DIAMONDS = Setting('SHOW_STATUS_DIAMONDS', True, USERS_SET, dict(
 label=_("Show status diamonds"),
 help_text = _("Show status \"diamonds\" next to moderators or superusers usernames."),