Fixed handling of non-ascii member data, like fullname and email.

svn path=/plone.app.discussion/trunk/; revision=40789
This commit is contained in:
Hanno Schlichting 2010-10-22 10:14:07 +00:00
parent 54bbb08c62
commit aa8a1ea934
6 changed files with 21 additions and 10 deletions

View File

@ -1,6 +1,12 @@
Changelog
=========
1.0b11 (unreleased)
-------------------
- Fixed handling of non-ascii member data, like fullname and email.
[hannosch]
1.0b10 (2010-10-15)
-------------------

View File

@ -172,6 +172,11 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
fullname = member.getProperty('fullname')
if not fullname or fullname == '':
fullname = member.getUserName()
# memberdata is stored as utf-8 encoded strings
elif isinstance(fullname, str):
fullname = unicode(fullname, 'utf-8')
if email and isinstance(email, str):
email = unicode(email, 'utf-8')
comment.creator = fullname
comment.author_username = username
comment.author_name = fullname

View File

@ -123,7 +123,7 @@ class Comment(CatalogAware, WorkflowAware, DynamicType, Traversable,
else:
creator = self.creator
creator = creator
# Fetch the content object (the parent of the comment is the
# conversation, the parent of the conversation is the content object).
content = aq_base(self.__parent__.__parent__)

View File

@ -49,7 +49,7 @@ class PloneAppDiscussion(PloneSandboxLayer):
)
mtool = getToolByName(portal, 'portal_membership', None)
mtool.addMember('jim', 'Jim', ['Member'], [])
mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fulton'})
mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fult\xc3\xb8rn'})
acl_users.userFolderAddUser(
self.MANAGER_USER_NAME,

View File

@ -30,13 +30,13 @@ We also keep another testbrowser handy for testing how tiles are rendered if
you're not logged in::
>>> unprivileged_browser = Browser(app)
Add a test user
Make sure we have a test user from the layer and it uses fancy characters:
>>> from Products.CMFCore.utils import getToolByName
>>> mtool = getToolByName(portal, 'portal_membership', None)
>>> mtool.addMember('jim', 'Jim', ['Member'], [])
>>> mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fulton'})
>>> mtool = getToolByName(portal, 'portal_membership', None)
>>> mtool.getMemberById('jim').getProperty('fullname')
'Jim Fult\xc3\xb8rn'
Create a public page with comments allowed.
@ -118,7 +118,7 @@ Post a comment as user jim.
Check if the comment has been added properly.
>>> browser.contents
'...<a href="http://nohost/plone/author/jim">Jim Fulton</a>...says:...'
'...<a href="http://nohost/plone/author/jim">Jim Fult\xc3\xb8rn</a>...says:...'
>>> "Comment from Jim" in browser.contents
True

View File

@ -1,6 +1,6 @@
from setuptools import setup, find_packages
version = '1.0b10'
version = '1.0b11'
setup(name='plone.app.discussion',
version=version,