add optional workflow actions to the get_replies method of the comments viewlet.
switch from Acquisition.explicit to Acquisition.implicit for the comment class. adjust test_comment to work with Acquisition.implicit. svn path=/plone.app.discussion/trunk/; revision=27406
This commit is contained in:
@@ -1,8 +1,9 @@
|
||||
<tal:block define="userHasReplyPermission view/can_reply;
|
||||
isDiscussionAllowed view/is_discussion_allowed;
|
||||
isAnonymousDiscussionAllowed view/anonymous_discussion_allowed;
|
||||
replies view/get_replies;
|
||||
isAnon view/is_anonymous;
|
||||
canManage view/can_manage;
|
||||
replies python:view.get_replies(canManage);
|
||||
showCommenterImage view/show_commenter_image;
|
||||
errors options/state/getErrors|nothing;"
|
||||
tal:condition="isDiscussionAllowed"
|
||||
@@ -102,7 +103,7 @@
|
||||
action=""
|
||||
method="get"
|
||||
style="display: inline;"
|
||||
tal:repeat="action reply_dict/actions"
|
||||
tal:repeat="action python:view.get_workflow_actions(reply)"
|
||||
tal:attributes="action string:${reply/absolute_url}/content_status_modify;
|
||||
name action/id">
|
||||
<input type="hidden" name="workflow_action" tal:attributes="value action/id" />
|
||||
|
||||
@@ -8,7 +8,7 @@ from zope.component import createObject, getMultiAdapter, queryUtility
|
||||
|
||||
from zope.viewlet.interfaces import IViewlet
|
||||
|
||||
from Acquisition import aq_inner, aq_parent
|
||||
from Acquisition import aq_inner, aq_parent, aq_base
|
||||
|
||||
from AccessControl import getSecurityManager
|
||||
|
||||
@@ -21,7 +21,7 @@ from plone.registry.interfaces import IRegistry
|
||||
|
||||
from plone.app.layout.viewlets.common import ViewletBase
|
||||
|
||||
from plone.app.discussion.interfaces import IComment, IReplies, IDiscussionSettings
|
||||
from plone.app.discussion.interfaces import IConversation, IComment, IReplies, IDiscussionSettings
|
||||
from plone.app.discussion.conversation import conversationAdapterFactory
|
||||
|
||||
from plone.app.discussion.comment import CommentFactory
|
||||
@@ -60,14 +60,28 @@ class CommentsViewlet(ViewletBase):
|
||||
conversation = conversationAdapterFactory(self.context)
|
||||
return conversation.enabled
|
||||
|
||||
def get_replies(self):
|
||||
# Return all direct replies
|
||||
conversation = conversationAdapterFactory(self.context)
|
||||
def get_replies(self, workflow_actions=False):
|
||||
|
||||
# Acquisition wrap the conversation
|
||||
context = aq_inner(self.context)
|
||||
conversation = IConversation(context)
|
||||
conversation = IConversation(context).__of__(context)
|
||||
|
||||
# Return all direct replies
|
||||
if conversation.total_comments > 0:
|
||||
return conversation.getThreads()
|
||||
if workflow_actions:
|
||||
# Return dict with workflow actions
|
||||
#context = aq_inner(self.context)
|
||||
wf = getToolByName(context, 'portal_workflow')
|
||||
|
||||
for r in conversation.getThreads():
|
||||
comment_obj = r['comment']
|
||||
actions = wf.listActionInfos(object=comment_obj)
|
||||
return conversation.getThreads()
|
||||
else:
|
||||
return conversation.getThreads()
|
||||
else:
|
||||
return False
|
||||
return []
|
||||
|
||||
def get_commenter_home_url(self, username):
|
||||
if username is None:
|
||||
|
||||
Reference in New Issue
Block a user