[dev] added event for comment delete, comment publication + notify for events
This commit is contained in:
		
							parent
							
								
									3648c3345f
								
							
						
					
					
						commit
						36f0e03805
					
				| @ -3,6 +3,8 @@ from AccessControl import getSecurityManager | |||||||
| from AccessControl import Unauthorized | from AccessControl import Unauthorized | ||||||
| from Acquisition import aq_inner | from Acquisition import aq_inner | ||||||
| from Acquisition import aq_parent | from Acquisition import aq_parent | ||||||
|  | from plone.app.discussion.events import NotifyOnPublish | ||||||
|  | from plone.app.discussion.events import NotifyOnDelete | ||||||
| from plone.app.discussion.interfaces import _ | from plone.app.discussion.interfaces import _ | ||||||
| from plone.app.discussion.interfaces import IComment | from plone.app.discussion.interfaces import IComment | ||||||
| from plone.app.discussion.interfaces import IReplies | from plone.app.discussion.interfaces import IReplies | ||||||
| @ -10,6 +12,7 @@ from Products.CMFCore.utils import getToolByName | |||||||
| from Products.Five.browser import BrowserView | from Products.Five.browser import BrowserView | ||||||
| from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile | from Products.Five.browser.pagetemplatefile import ViewPageTemplateFile | ||||||
| from Products.statusmessages.interfaces import IStatusMessage | from Products.statusmessages.interfaces import IStatusMessage | ||||||
|  | from zope.event import notify | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| class View(BrowserView): | class View(BrowserView): | ||||||
| @ -100,6 +103,7 @@ class DeleteComment(BrowserView): | |||||||
|         if self.can_delete(comment): |         if self.can_delete(comment): | ||||||
|             del conversation[comment.id] |             del conversation[comment.id] | ||||||
|             content_object.reindexObject() |             content_object.reindexObject() | ||||||
|  |             notify(NotifyOnDelete(self.context, comment)) | ||||||
|             IStatusMessage(self.context.REQUEST).addStatusMessage( |             IStatusMessage(self.context.REQUEST).addStatusMessage( | ||||||
|                 _('Comment deleted.'), |                 _('Comment deleted.'), | ||||||
|                 type='info') |                 type='info') | ||||||
| @ -183,6 +187,7 @@ class PublishComment(BrowserView): | |||||||
|         workflowTool.doActionFor(comment, workflow_action) |         workflowTool.doActionFor(comment, workflow_action) | ||||||
|         comment.reindexObject() |         comment.reindexObject() | ||||||
|         content_object.reindexObject(idxs=['total_comments']) |         content_object.reindexObject(idxs=['total_comments']) | ||||||
|  |         notify(NotifyOnPublish(self.context, comment)) | ||||||
|         IStatusMessage(self.context.REQUEST).addStatusMessage( |         IStatusMessage(self.context.REQUEST).addStatusMessage( | ||||||
|             _('Comment approved.'), |             _('Comment approved.'), | ||||||
|             type='info') |             type='info') | ||||||
| @ -258,6 +263,7 @@ class BulkActionsView(BrowserView): | |||||||
|                 workflowTool.doActionFor(comment, 'publish') |                 workflowTool.doActionFor(comment, 'publish') | ||||||
|             comment.reindexObject() |             comment.reindexObject() | ||||||
|             content_object.reindexObject(idxs=['total_comments']) |             content_object.reindexObject(idxs=['total_comments']) | ||||||
|  |             notify(NotifyOnPublish(content_object, comment)) | ||||||
| 
 | 
 | ||||||
|     def mark_as_spam(self): |     def mark_as_spam(self): | ||||||
|         raise NotImplementedError |         raise NotImplementedError | ||||||
| @ -277,3 +283,4 @@ class BulkActionsView(BrowserView): | |||||||
|             content_object = aq_parent(conversation) |             content_object = aq_parent(conversation) | ||||||
|             del conversation[comment.id] |             del conversation[comment.id] | ||||||
|             content_object.reindexObject(idxs=['total_comments']) |             content_object.reindexObject(idxs=['total_comments']) | ||||||
|  |             notify(NotifyOnDelete(content_object, comment)) | ||||||
|  | |||||||
| @ -29,6 +29,18 @@ | |||||||
|       name="Comment reply removed" |       name="Comment reply removed" | ||||||
|       /> |       /> | ||||||
|        |        | ||||||
|  |     <interface | ||||||
|  |       interface="plone.app.discussion.interfaces.INotifyOnPublish" | ||||||
|  |       type="plone.contentrules.rule.interfaces.IRuleEventType" | ||||||
|  |       name="Notify user on comment publication" | ||||||
|  |       /> | ||||||
|  |        | ||||||
|  |     <interface | ||||||
|  |       interface="plone.app.discussion.interfaces.INotifyOnDelete" | ||||||
|  |       type="plone.contentrules.rule.interfaces.IRuleEventType" | ||||||
|  |       name="Notify user on comment delete" | ||||||
|  |       /> | ||||||
|  | 
 | ||||||
|   </configure> |   </configure> | ||||||
| 
 | 
 | ||||||
| 
 | 
 | ||||||
| @ -55,6 +67,16 @@ | |||||||
|       handler=".contentrules.execute_comment" |       handler=".contentrules.execute_comment" | ||||||
|       /> |       /> | ||||||
|        |        | ||||||
|  |     <subscriber | ||||||
|  |       for="plone.app.discussion.interfaces.INotifyOnDelete" | ||||||
|  |       handler=".contentrules.execute_comment" | ||||||
|  |       /> | ||||||
|  |        | ||||||
|  |     <subscriber | ||||||
|  |       for="plone.app.discussion.interfaces.INotifyOnPublish" | ||||||
|  |       handler=".contentrules.execute_comment" | ||||||
|  |       /> | ||||||
|  | 
 | ||||||
|   </configure> |   </configure> | ||||||
| 
 | 
 | ||||||
|   <!-- Content rules strings --> |   <!-- Content rules strings --> | ||||||
|  | |||||||
| @ -4,6 +4,8 @@ | |||||||
| from plone.app.discussion.interfaces import ICommentAddedEvent | from plone.app.discussion.interfaces import ICommentAddedEvent | ||||||
| from plone.app.discussion.interfaces import ICommentRemovedEvent | from plone.app.discussion.interfaces import ICommentRemovedEvent | ||||||
| from plone.app.discussion.interfaces import IDiscussionEvent | from plone.app.discussion.interfaces import IDiscussionEvent | ||||||
|  | from plone.app.discussion.interfaces import INotifyOnDelete | ||||||
|  | from plone.app.discussion.interfaces import INotifyOnPublish | ||||||
| from plone.app.discussion.interfaces import IReplyAddedEvent | from plone.app.discussion.interfaces import IReplyAddedEvent | ||||||
| from plone.app.discussion.interfaces import IReplyRemovedEvent | from plone.app.discussion.interfaces import IReplyRemovedEvent | ||||||
| from zope.interface import implementer | from zope.interface import implementer | ||||||
| @ -48,3 +50,15 @@ class ReplyAddedEvent(DiscussionEvent): | |||||||
| class ReplyRemovedEvent(DiscussionEvent): | class ReplyRemovedEvent(DiscussionEvent): | ||||||
|     """ Event to be triggered when a Comment reply is removed |     """ Event to be triggered when a Comment reply is removed | ||||||
|     """ |     """ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @implementer(INotifyOnDelete) | ||||||
|  | class NotifyOnDelete(DiscussionEvent): | ||||||
|  |     """ Event to be triggered when a Comment is deleted | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | @implementer(INotifyOnPublish) | ||||||
|  | class NotifyOnPublish(DiscussionEvent): | ||||||
|  |     """ Event to be triggered when a Comment is publicated | ||||||
|  |     """ | ||||||
|  | |||||||
| @ -412,3 +412,13 @@ class IReplyAddedEvent(IDiscussionEvent): | |||||||
| class IReplyRemovedEvent(IDiscussionEvent): | class IReplyRemovedEvent(IDiscussionEvent): | ||||||
|     """ Comment reply removed |     """ Comment reply removed | ||||||
|     """ |     """ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class INotifyOnPublish(IDiscussionEvent): | ||||||
|  |     """ Notify user on comment publication | ||||||
|  |     """ | ||||||
|  | 
 | ||||||
|  | 
 | ||||||
|  | class INotifyOnDelete(IDiscussionEvent): | ||||||
|  |     """ Notify user on comment delete | ||||||
|  |     """ | ||||||
|  | |||||||
		Loading…
	
	
			
			x
			
			
		
	
		Reference in New Issue
	
	Block a user