publish only pending comment, else show status message
This commit is contained in:
		
							parent
							
								
									3fe04f9133
								
							
						
					
					
						commit
						22a7152e92
					
				@ -8,11 +8,13 @@ from plone.app.discussion.events import CommentDeletedEvent
 | 
			
		||||
from plone.app.discussion.interfaces import _
 | 
			
		||||
from plone.app.discussion.interfaces import IComment
 | 
			
		||||
from plone.app.discussion.interfaces import IReplies
 | 
			
		||||
from plone.protect.interfaces import IDisableCSRFProtection
 | 
			
		||||
from Products.CMFCore.utils import getToolByName
 | 
			
		||||
from Products.Five.browser import BrowserView
 | 
			
		||||
from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile
 | 
			
		||||
from Products.statusmessages.interfaces import IStatusMessage
 | 
			
		||||
from zope.event import notify
 | 
			
		||||
from zope.interface import alsoProvides
 | 
			
		||||
 | 
			
		||||
 | 
			
		||||
class View(BrowserView):
 | 
			
		||||
@ -205,17 +207,24 @@ class PublishComment(BrowserView):
 | 
			
		||||
    """
 | 
			
		||||
 | 
			
		||||
    def __call__(self):
 | 
			
		||||
        alsoProvides(self.request, IDisableCSRFProtection)
 | 
			
		||||
        comment = aq_inner(self.context)
 | 
			
		||||
        content_object = aq_parent(aq_parent(comment))
 | 
			
		||||
        workflowTool = getToolByName(comment, 'portal_workflow', None)
 | 
			
		||||
        workflow_action = self.request.form.get('workflow_action', 'publish')
 | 
			
		||||
        workflowTool.doActionFor(comment, workflow_action)
 | 
			
		||||
        comment.reindexObject()
 | 
			
		||||
        content_object.reindexObject(idxs=['total_comments'])
 | 
			
		||||
        notify(CommentPublishedEvent(self.context, comment))
 | 
			
		||||
        IStatusMessage(self.context.REQUEST).addStatusMessage(
 | 
			
		||||
            _('Comment approved.'),
 | 
			
		||||
            type='info')
 | 
			
		||||
        review_state = workflowTool.getInfoFor(comment, 'review_state', '')
 | 
			
		||||
        if review_state == "pending":
 | 
			
		||||
            workflowTool.doActionFor(comment, workflow_action)
 | 
			
		||||
            comment.reindexObject()
 | 
			
		||||
            content_object.reindexObject(idxs=['total_comments'])
 | 
			
		||||
            notify(CommentPublishedEvent(self.context, comment))
 | 
			
		||||
            IStatusMessage(self.context.REQUEST).addStatusMessage(
 | 
			
		||||
                _('Comment approved.'),
 | 
			
		||||
                type='info')
 | 
			
		||||
        else:
 | 
			
		||||
            IStatusMessage(self.context.REQUEST).addStatusMessage(
 | 
			
		||||
                _('Comment already approved.'),
 | 
			
		||||
                type='info')
 | 
			
		||||
        came_from = self.context.REQUEST.HTTP_REFERER
 | 
			
		||||
        # if the referrer already has a came_from in it, don't redirect back
 | 
			
		||||
        if (len(came_from) == 0 or 'came_from=' in came_from or
 | 
			
		||||
 | 
			
		||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user