def onItemModification(self, obj): """Handler called when an item is modified. It returns the number of mails which have been sent. """ if not self.getProperty('item_modification_notification_enabled'): return 0 if self.ignoreNotification(obj): return 0 extra_bindings = getBasicBindings(obj) extra_bindings.update({'current': obj, 'previous': self.getPreviousVersion(obj)}) return self._handlerHelper(obj, 'item_modification', extra_bindings, extra_bindings, extra_bindings)
def onItemDeletion(self, obj, container): """Handler called when an item is deleted. It returns the number of mails which have been sent. """ if not self.getProperty('item_deletion_notification_enabled'): return 0 if self.ignoreNotification(obj): return 0 extra_bindings = getBasicBindings(obj) extra_bindings.update({'current': None, 'previous': obj, 'container': container}) return self._handlerHelper(obj, 'item_deletion', extra_bindings, extra_bindings, extra_bindings)
def onWorkflowTransition(self, workflow, obj, action, result): """Handler called when a workflow transition is triggered. It returns the number of mails which have been sent. """ if not self.getProperty('wf_transition_notification_enabled'): return 0 if self.ignoreNotification(obj): return 0 wtool = getToolByName(self, 'portal_workflow') current_state = wtool.getInfoFor(obj, 'review_state') comments = wtool.getInfoFor(obj, 'comments') extra_bindings = getBasicBindings(obj) extra_bindings.update({'transition': action, 'comments': comments}) return self._handlerHelper(obj, 'wf_transition', extra_bindings, extra_bindings, extra_bindings)
def onItemCreation(self, obj): """Handler called when an item is created. It returns the number of mails which have been sent. **Warning:** this handler is not called when a discussion item is added. In this case, ``onDiscussionItemCreation()`` is called instead. """ if not self.getProperty('item_creation_notification_enabled'): return 0 if self.ignoreNotification(obj): return 0 extra_bindings = getBasicBindings(obj) extra_bindings.update({'current': obj, 'previous': None}) return self._handlerHelper(obj, 'item_creation', extra_bindings, extra_bindings, extra_bindings)
def onDiscussionItemCreation(self, discussion_item): """Handler called when a discussion item is created. It returns the number of mails which have been sent. """ if not self.getProperty('discussion_item_creation_notification_enabled'): return 0 if self.ignoreNotification(discussion_item): return 0 ## We add two bindings to disambiguate the meaning of 'here' ## in the mail template and the rules: 'discussion_item' and ## 'discussed_item'. discussed_item = discussion_item while discussed_item.meta_type == discussion_item.meta_type: discussed_item = discussed_item.aq_inner.aq_parent.aq_parent extra_bindings = getBasicBindings(discussion_item) extra_bindings = {'discussion_item': discussion_item, 'discussed_item': discussed_item} return self._handlerHelper(discussion_item, 'discussion_item_creation', extra_bindings, extra_bindings, extra_bindings)