Remove the hard coded check for title and text when the comment form is submitted. This allows integrators to write schema extenders that remove the title from the comment form.
svn path=/plone.app.discussion/trunk/; revision=37341
This commit is contained in:
parent
6e98edf54f
commit
12589d9fd2
@ -4,6 +4,11 @@ Changelog
|
|||||||
1.0b5 (unreleased)
|
1.0b5 (unreleased)
|
||||||
------------------
|
------------------
|
||||||
|
|
||||||
|
* Remove the hard coded check for title and text when the comment form is
|
||||||
|
submitted. This allows integrators to write schema extenders that remove the
|
||||||
|
title from the comment form.
|
||||||
|
[timo]
|
||||||
|
|
||||||
* Move captcha registration to its own captcha.zcml file.
|
* Move captcha registration to its own captcha.zcml file.
|
||||||
[timo]
|
[timo]
|
||||||
|
|
||||||
|
@ -102,7 +102,10 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
def handleComment(self, action):
|
def handleComment(self, action):
|
||||||
context = aq_inner(self.context)
|
context = aq_inner(self.context)
|
||||||
wf = getToolByName(context, 'portal_workflow')
|
wf = getToolByName(context, 'portal_workflow')
|
||||||
|
|
||||||
data, errors = self.extractData()
|
data, errors = self.extractData()
|
||||||
|
if errors:
|
||||||
|
return
|
||||||
|
|
||||||
title = u""
|
title = u""
|
||||||
text = u""
|
text = u""
|
||||||
@ -128,72 +131,72 @@ class CommentForm(extensible.ExtensibleForm, form.Form):
|
|||||||
else:
|
else:
|
||||||
return
|
return
|
||||||
|
|
||||||
if 'title' in data and 'text' in data:
|
if 'title' in data:
|
||||||
title = data['title']
|
title = data['title']
|
||||||
|
if 'text' in data:
|
||||||
text = data['text']
|
text = data['text']
|
||||||
|
if 'author_name' in data:
|
||||||
|
author_name = data['author_name']
|
||||||
|
if 'author_username' in data:
|
||||||
|
author_username = data['author_username']
|
||||||
|
if 'author_email' in data:
|
||||||
|
author_email = data['author_email']
|
||||||
|
if 'author_notification' in data:
|
||||||
|
author_notification = data['author_notification']
|
||||||
|
|
||||||
|
# The add-comment view is called on the conversation object
|
||||||
|
conversation = IConversation(self.__parent__)
|
||||||
|
|
||||||
if 'author_name' in data:
|
if data['in_reply_to']:
|
||||||
author_name = data['author_name']
|
# Fetch the comment we want to reply to
|
||||||
if 'author_username' in data:
|
conversation_to_reply_to = conversation.get(data['in_reply_to'])
|
||||||
author_username = data['author_username']
|
replies = IReplies(conversation_to_reply_to)
|
||||||
if 'author_email' in data:
|
|
||||||
author_email = data['author_email']
|
|
||||||
if 'author_notification' in data:
|
|
||||||
author_notification = data['author_notification']
|
|
||||||
|
|
||||||
# The add-comment view is called on the conversation object
|
|
||||||
conversation = IConversation(self.__parent__)
|
|
||||||
|
|
||||||
if data['in_reply_to']:
|
# Create the comment
|
||||||
# Fetch the comment we want to reply to
|
comment = createObject('plone.Comment')
|
||||||
conversation_to_reply_to = conversation.get(data['in_reply_to'])
|
comment.title = title
|
||||||
replies = IReplies(conversation_to_reply_to)
|
comment.text = text
|
||||||
|
|
||||||
# Create the comment
|
portal_membership = getToolByName(self.context, 'portal_membership')
|
||||||
comment = createObject('plone.Comment')
|
|
||||||
comment.title = title
|
|
||||||
comment.text = text
|
|
||||||
|
|
||||||
portal_membership = getToolByName(self.context, 'portal_membership')
|
if portal_membership.isAnonymousUser():
|
||||||
|
comment.creator = None
|
||||||
|
comment.author_name = author_name
|
||||||
|
comment.author_email = author_email
|
||||||
|
#comment.author_notification = author_notification
|
||||||
|
comment.creation_date = comment.modification_date = datetime.now()
|
||||||
|
else:
|
||||||
|
member = portal_membership.getAuthenticatedMember()
|
||||||
|
comment.creator = member.id
|
||||||
|
comment.author_username = member.getUserName()
|
||||||
|
comment.author_name = member.getProperty('fullname')
|
||||||
|
comment.author_email = member.getProperty('email')
|
||||||
|
#comment.author_notification = comment.author_notification
|
||||||
|
comment.creation_date = comment.modification_date = datetime.now()
|
||||||
|
|
||||||
if portal_membership.isAnonymousUser():
|
# Check if the added comment is a reply to an existing comment
|
||||||
comment.creator = None
|
# or just a regular reply to the content object.
|
||||||
comment.author_name = author_name
|
if data['in_reply_to']:
|
||||||
comment.author_email = author_email
|
# Add a reply to an existing comment
|
||||||
#comment.author_notification = author_notification
|
comment_id = replies.addComment(comment)
|
||||||
comment.creation_date = comment.modification_date = datetime.now()
|
else:
|
||||||
else:
|
# Add a comment to the conversation
|
||||||
member = portal_membership.getAuthenticatedMember()
|
comment_id = conversation.addComment(comment)
|
||||||
comment.creator = member.id
|
|
||||||
comment.author_username = member.getUserName()
|
|
||||||
comment.author_name = member.getProperty('fullname')
|
|
||||||
comment.author_email = member.getProperty('email')
|
|
||||||
#comment.author_notification = comment.author_notification
|
|
||||||
comment.creation_date = comment.modification_date = datetime.now()
|
|
||||||
|
|
||||||
# Check if the added comment is a reply to an existing comment
|
# If a user post a comment and moderation is enabled, a message is shown
|
||||||
# or just a regular reply to the content object.
|
# to the user that his/her comment awaits moderation. If the user has manage
|
||||||
if data['in_reply_to']:
|
# right, he/she is redirected directly to the comment.
|
||||||
# Add a reply to an existing comment
|
can_manage = getSecurityManager().checkPermission('Manage portal', context)
|
||||||
comment_id = replies.addComment(comment)
|
if wf.getChainForPortalType('Discussion Item') == \
|
||||||
else:
|
('comment_review_workflow',) and not can_manage:
|
||||||
# Add a comment to the conversation
|
# Show info message when comment moderation is enabled
|
||||||
comment_id = conversation.addComment(comment)
|
IStatusMessage(self.context.REQUEST).addStatusMessage(
|
||||||
|
_("Your comment awaits moderator approval."),
|
||||||
# If a user post a comment and moderation is enabled, a message is shown
|
type="info")
|
||||||
# to the user that his/her comment awaits moderation. If the user has manage
|
self.request.response.redirect(context.absolute_url())
|
||||||
# right, he/she is redirected directly to the comment.
|
else:
|
||||||
can_manage = getSecurityManager().checkPermission('Manage portal', context)
|
# Redirect to comment (inside a content object page)
|
||||||
if wf.getChainForPortalType('Discussion Item') == \
|
self.request.response.redirect(context.absolute_url() + '#' + str(comment_id))
|
||||||
('comment_review_workflow',) and not can_manage:
|
|
||||||
# Show info message when comment moderation is enabled
|
|
||||||
IStatusMessage(self.context.REQUEST).addStatusMessage(
|
|
||||||
_("Your comment awaits moderator approval."),
|
|
||||||
type="info")
|
|
||||||
self.request.response.redirect(context.absolute_url())
|
|
||||||
else:
|
|
||||||
# Redirect to comment (inside a content object page)
|
|
||||||
self.request.response.redirect(context.absolute_url() + '#' + str(comment_id))
|
|
||||||
|
|
||||||
@button.buttonAndHandler(_(u"Cancel"))
|
@button.buttonAndHandler(_(u"Cancel"))
|
||||||
def handleCancel(self, action):
|
def handleCancel(self, action):
|
||||||
|
Loading…
Reference in New Issue
Block a user