From: jordan Date: Sun, 10 Apr 2011 16:38:27 +0000 (+0000) Subject: OSQA-617, better Unicode support for the User Profile and User Links. Using the Djang... X-Git-Tag: live~352 X-Git-Url: https://git.openstreetmap.org./osqa.git/commitdiff_plain/554564294a9a644a3a6723c386f5eb009e23ce98 OSQA-617, better Unicode support for the User Profile and User Links. Using the Django smart_unicode utility. git-svn-id: http://svn.osqa.net/svnroot/osqa/trunk@960 0cfe37f9-358a-4d5e-be75-b63607b5c754 --- diff --git a/forum/models/user.py b/forum/models/user.py index e736538..665c4d4 100644 --- a/forum/models/user.py +++ b/forum/models/user.py @@ -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 django.utils.encoding import smart_unicode + from forum.settings import TRUNCATE_LONG_USERNAMES, TRUNCATE_USERNAMES_LONGER_THAN import string @@ -129,7 +131,7 @@ class User(BaseModel, DjangoUser): vote_down_count = DenormalizedField("actions", canceled=False, action_type="votedown") def __unicode__(self): - return self.username + return smart_unicode(self.username) @property def prop(self): @@ -148,7 +150,7 @@ class User(BaseModel, DjangoUser): @property def decorated_name(self): - username = self.username + username = smart_unicode(self.username) if len(username) > TRUNCATE_USERNAMES_LONGER_THAN and TRUNCATE_LONG_USERNAMES: username = '%s...' % username[:TRUNCATE_USERNAMES_LONGER_THAN-3] @@ -196,7 +198,7 @@ class User(BaseModel, DjangoUser): @models.permalink def get_profile_url(self): - return ('user_profile', (), {'id': self.id, 'slug': slugify(self.username)}) + return ('user_profile', (), {'id': self.id, 'slug': slugify(smart_unicode(self.username))}) def get_absolute_url(self): return self.get_profile_url() diff --git a/forum/registry.py b/forum/registry.py index 43f11a7..ec97389 100644 --- a/forum/registry.py +++ b/forum/registry.py @@ -1,5 +1,6 @@ from forum.modules import ui, get_modules_script from django.utils.translation import ugettext as _ +from django.utils.encoding import smart_unicode from django.core.urlresolvers import reverse from django.template.defaultfilters import slugify @@ -29,7 +30,7 @@ ui.register(ui.HEADER_LINKS, ui.Link( visibility=ui.Visibility.AUTHENTICATED, - text=lambda u, c: u.username, + text=lambda u, c: smart_unicode(u.username), url=lambda u, c: u.get_profile_url(), post_code=lambda u, c: get_score_badge(u), weight=100, name='ACCOUNT'), diff --git a/forum/views/users.py b/forum/views/users.py index e8f141c..8766851 100644 --- a/forum/views/users.py +++ b/forum/views/users.py @@ -11,6 +11,7 @@ from forum.http_responses import HttpResponseUnauthorized from django.utils.translation import ugettext as _ from django.utils.http import urlquote_plus from django.utils.html import strip_tags +from django.utils.encoding import smart_unicode from django.utils import simplejson from django.core.urlresolvers import reverse, NoReverseMatch from forum.forms import * @@ -269,7 +270,7 @@ def user_view(template, tab_name, tab_title, tab_description, private=False, tab decorated = decorate.params.withfn(params)(fn) def result(context, request, user): - rev_page_title = user.username + " - " + tab_description + rev_page_title = smart_unicode(user.username) + " - " + tab_description context.update({ "tab": "users",