def notify_configuration_changed(event): """Event subscriber that is called every time the configuration changed. """ portal = getSite() wftool = getToolByName(portal, 'portal_workflow', None) if IRecordModifiedEvent.providedBy(event): # Discussion control panel setting changed if event.record.fieldName == 'moderation_enabled': # Moderation enabled has changed if event.record.value == True: # Enable moderation workflow wftool.setChainForPortalTypes(('Discussion Item',), 'comment_review_workflow') else: # Disable moderation workflow wftool.setChainForPortalTypes(('Discussion Item',), 'one_state_workflow') if IConfigurationChangedEvent.providedBy(event): # Types control panel setting changed if 'workflow' in event.data: registry = queryUtility(IRegistry) settings = registry.forInterface(IDiscussionSettings, check=False) wf = wftool.getChainForPortalType('Discussion Item')[0] if wf == 'one_state_workflow': settings.moderation_enabled = False elif wf == 'comment_review_workflow': settings.moderation_enabled = True else: # Custom workflow pass
def notify_configuration_changed(event): """Event subscriber that is called every time the configuration changed. """ portal = getSite() wftool = getToolByName(portal, 'portal_workflow', None) if IRecordModifiedEvent.providedBy(event): # Discussion control panel setting changed if event.record.fieldName == 'moderation_enabled': # Moderation enabled has changed if event.record.value == True: # Enable moderation workflow wftool.setChainForPortalTypes(('Discussion Item', ), 'comment_review_workflow') else: # Disable moderation workflow wftool.setChainForPortalTypes(('Discussion Item', ), 'one_state_workflow') if IConfigurationChangedEvent.providedBy(event): # Types control panel setting changed if 'workflow' in event.data: registry = queryUtility(IRegistry) settings = registry.forInterface(IDiscussionSettings, check=False) workflow_chain = wftool.getChainForPortalType('Discussion Item') if workflow_chain: workflow = workflow_chain[0] if workflow == 'one_state_workflow': settings.moderation_enabled = False elif workflow == 'comment_review_workflow': settings.moderation_enabled = True else: # Custom workflow pass
def on_save(event): """ cuando se cambia el perfil de usuario""" estaAsignadoPotencial=False from plone.app.controlpanel.interfaces import IConfigurationChangedEvent if IConfigurationChangedEvent.providedBy(event): groups_tool=getToolByName(event.context,"portal_groups") member_tool=getToolByName(event.context,"portal_membership") miId=member_tool.getAuthenticatedMember().getId() if event.data.has_key("participaEn"): if event.data["participaEn"]: for nomColect in event.data["participaEn"]: nGid=nomColect+PREFIJO_COOR_POTENCIAL grupPotencial=groups_tool.getGroupById(nGid) groups_tool.addPrincipalToGroup(miId, nGid) """Determian si està asignado a la colección que eligió""" print "particpa en "
def set_what(self, value): if IConfigurationChangedEvent.providedBy(value): self.data["what"] = "configuration" self.what_info = self.get_configuration_changed_info() self.event = value elif IRecordModifiedEvent.providedBy(value): self.data["what"] = "registry" self.what_info = self.get_record_modified_info() self.event = value
def user_related_modification(event): """ Manage user modification * ignored Products.PluggableAuthService.interfaces.events.IPrincipalCreatedEvent * ignored Products.PluggableAuthService.interfaces.events.IPrincipalDeletedEvent """ # we pass if the config change is not related to users if IConfigurationChangedEvent.providedBy(event) and not isinstance(event.context, UserDataConfiglet): return # we pass if the registry change is not related to plonegroup if (IRecordModifiedEvent.providedBy(event) and event.record.interfaceName and event.record.interface != IContactPlonegroupConfig): return invalidate_cachekey_volatile_for('imio.dms.mail.vocabularies.AssignedUsersVocabulary')
def user_related_modification(event): """ Manage user modification * ignored Products.PluggableAuthService.interfaces.events.IPrincipalCreatedEvent * ignored Products.PluggableAuthService.interfaces.events.IPrincipalDeletedEvent """ # we pass if the config change is not related to users if IConfigurationChangedEvent.providedBy(event) and not isinstance(event.context, UserDataConfiglet): return # we pass if the registry change is not related to plonegroup if (IRecordModifiedEvent.providedBy(event) and event.record.interfaceName and event.record.interface != IContactPlonegroupConfig): return invalidate_cachekey_volatile_for('imio.dms.mail.vocabularies.AssignedUsersWithDeactivatedVocabulary') invalidate_cachekey_volatile_for('imio.dms.mail.vocabularies.AssignedUsersForFacetedFilterVocabulary')
def get_what_info(self, event): #Archetypes if IObjectEditedEvent.providedBy(event): return self.get_object_modified_info(event) elif IObjectInitializedEvent.providedBy(event): return self.get_object_modified_info(event) #plone elif IConfigurationChangedEvent.providedBy(event): return self.get_configuration_changed_info(event) # #plone.app.form (formlib) # elif IEditSavedEvent.providedBy(event): # return 'editsaved' # #plone.app.iterate # elif ICheckinEvent.providedBy(event): # return 'checkedin' # elif ICheckoutEvent.providedBy(event): # return 'checkedout' # elif IWorkingCopyDeletedEvent.providedBy(event): # return 'workingcopydeleted' # #plone.app.registry elif IRecordModifiedEvent.providedBy(event): return self.get_record_modified_info(event) # DCWorkflow elif ITransitionEvent.providedBy(event): return self.get_transition_info(event) # CMFCore elif IActionSucceededEvent.providedBy(event): return self.get_action_succeed_info(event) # zope elif IObjectCopiedEvent.providedBy(event): return self.get_object_copied_info(event) elif IObjectMovedEvent.providedBy(event): return self.get_object_moved_info(event) elif IObjectAddedEvent.providedBy(event): return self.get_object_moved_info(event) elif IObjectRemovedEvent.providedBy(event): return self.get_object_moved_info(event)