Fixed handling of non-ascii member data, like fullname and email.
svn path=/plone.app.discussion/trunk/; revision=40789
This commit is contained in:
parent
54bbb08c62
commit
aa8a1ea934
@ -1,6 +1,12 @@
|
|||||||
Changelog
|
Changelog
|
||||||
=========
|
=========
|
||||||
|
|
||||||
|
1.0b11 (unreleased)
|
||||||
|
-------------------
|
||||||
|
|
||||||
|
- Fixed handling of non-ascii member data, like fullname and email.
|
||||||
|
[hannosch]
|
||||||
|
|
||||||
1.0b10 (2010-10-15)
|
1.0b10 (2010-10-15)
|
||||||
-------------------
|
-------------------
|
||||||
|
|
||||||
|
@ -172,6 +172,11 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
fullname = member.getProperty('fullname')
|
fullname = member.getProperty('fullname')
|
||||||
if not fullname or fullname == '':
|
if not fullname or fullname == '':
|
||||||
fullname = member.getUserName()
|
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.creator = fullname
|
||||||
comment.author_username = username
|
comment.author_username = username
|
||||||
comment.author_name = fullname
|
comment.author_name = fullname
|
||||||
|
@ -123,7 +123,7 @@ class Comment(CatalogAware, WorkflowAware, DynamicType, Traversable,
|
|||||||
else:
|
else:
|
||||||
creator = self.creator
|
creator = self.creator
|
||||||
creator = creator
|
creator = creator
|
||||||
|
|
||||||
# Fetch the content object (the parent of the comment is the
|
# Fetch the content object (the parent of the comment is the
|
||||||
# conversation, the parent of the conversation is the content object).
|
# conversation, the parent of the conversation is the content object).
|
||||||
content = aq_base(self.__parent__.__parent__)
|
content = aq_base(self.__parent__.__parent__)
|
||||||
|
@ -49,7 +49,7 @@ class PloneAppDiscussion(PloneSandboxLayer):
|
|||||||
)
|
)
|
||||||
mtool = getToolByName(portal, 'portal_membership', None)
|
mtool = getToolByName(portal, 'portal_membership', None)
|
||||||
mtool.addMember('jim', 'Jim', ['Member'], [])
|
mtool.addMember('jim', 'Jim', ['Member'], [])
|
||||||
mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fulton'})
|
mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fult\xc3\xb8rn'})
|
||||||
|
|
||||||
acl_users.userFolderAddUser(
|
acl_users.userFolderAddUser(
|
||||||
self.MANAGER_USER_NAME,
|
self.MANAGER_USER_NAME,
|
||||||
|
@ -30,13 +30,13 @@ We also keep another testbrowser handy for testing how tiles are rendered if
|
|||||||
you're not logged in::
|
you're not logged in::
|
||||||
|
|
||||||
>>> unprivileged_browser = Browser(app)
|
>>> 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
|
>>> from Products.CMFCore.utils import getToolByName
|
||||||
>>> mtool = getToolByName(portal, 'portal_membership', None)
|
>>> mtool = getToolByName(portal, 'portal_membership', None)
|
||||||
>>> mtool.addMember('jim', 'Jim', ['Member'], [])
|
>>> mtool.getMemberById('jim').getProperty('fullname')
|
||||||
>>> mtool.getMemberById('jim').setMemberProperties({"fullname": 'Jim Fulton'})
|
'Jim Fult\xc3\xb8rn'
|
||||||
|
|
||||||
Create a public page with comments allowed.
|
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.
|
Check if the comment has been added properly.
|
||||||
|
|
||||||
>>> browser.contents
|
>>> 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
|
>>> "Comment from Jim" in browser.contents
|
||||||
True
|
True
|
||||||
|
Loading…
Reference in New Issue
Block a user