def handleCheckout(event): # defer to setting properties = getToolByName(aq_base(event.object), 'portal_properties') enabled = properties.site_properties.getProperty( 'enable_checkout_workflow') if not enabled: return policy_id = properties.site_properties.getProperty( 'checkout_workflow_policy') existing_policy = getattr(aq_base(event.working_copy), WorkflowPolicyConfig_id, None) storage = get_storage(event.relation) # set config for policy in and below policy = WorkflowPolicyConfig(policy_id, policy_id) policy.coci_created = True if existing_policy is not None: storage[policy_storage] = policy # we setattr because we want the effect on non containerish objects setattr(event.working_copy, WorkflowPolicyConfig_id, policy) event.working_copy.notifyWorkflowCreated() event.working_copy.reindexObjectSecurity()
def handleCheckin( event ): policy = getattr( aq_base(event.object), WorkflowPolicyConfig_id, None ) storage = get_storage( event.relation ) previous_policy = storage.get( policy_storage ) if previous_policy is None: if policy and not getattr(policy,'coci_created',False): # only reset workflows we know.. could use are own storage return elif policy is None: return else: delattr( event.object, WorkflowPolicyConfig_id ) else: setattr( event.object, WorkflowPolicyConfig_id, previous_policy)
def handleCheckout( event ): # defer to setting properties = getToolByName(aq_base(event.object), 'portal_properties') enabled = properties.site_properties.getProperty('enable_checkout_workflow') if not enabled: return policy_id = properties.site_properties.getProperty('checkout_workflow_policy') existing_policy = getattr( aq_base( event.working_copy ), WorkflowPolicyConfig_id, None ) storage = get_storage( event.relation ) # set config for policy in and below policy = WorkflowPolicyConfig( policy_id, policy_id) policy.coci_created = True if existing_policy is not None: storage[ policy_storage ] = policy # we setattr because we want the effect on non containerish objects setattr( event.working_copy, WorkflowPolicyConfig_id, policy )
def handleCheckout(event): # defer to setting registry = getUtility(IRegistry) settings = registry.forInterface(IIterateSettings) if not settings.enable_checkout_workflow: return policy_id = str(settings.checkout_workflow_policy) existing_policy = getattr(aq_base(event.working_copy), WorkflowPolicyConfig_id, None) storage = get_storage(event.relation) # set config for policy in and below policy = WorkflowPolicyConfig(policy_id, policy_id) policy.coci_created = True if existing_policy is not None: storage[policy_storage] = policy # we setattr because we want the effect on non containerish objects setattr(event.working_copy, WorkflowPolicyConfig_id, policy) event.working_copy.notifyWorkflowCreated() event.working_copy.reindexObjectSecurity()
def handleCheckout(event): # defer to setting registry = getUtility(IRegistry) settings = registry.forInterface(IIterateSettings) if not settings.enable_checkout_workflow: return policy_id = settings.checkout_workflow_policy existing_policy = getattr( aq_base(event.working_copy), WorkflowPolicyConfig_id, None) storage = get_storage(event.relation) # set config for policy in and below policy = WorkflowPolicyConfig(policy_id, policy_id) policy.coci_created = True if existing_policy is not None: storage[policy_storage] = policy # we setattr because we want the effect on non containerish objects setattr(event.working_copy, WorkflowPolicyConfig_id, policy) event.working_copy.notifyWorkflowCreated() event.working_copy.reindexObjectSecurity()
def properties( self ): wc_ref = self._getReference() if wc_ref is not None: return get_storage( wc_ref ) else: return {}
def getProperties(self, obj, default=None): try: return get_storage(get_checkout_relation(obj), default=default) except AttributeError: return default
def getProperties(self, obj, default=None): return get_storage(obj, default=default)
def handleCheckout(event): # no cleanup since we annotate the relation and rely on its lifecycle. storage = get_storage(event.relation) user = getSecurityManager().getUser() storage[keys.checkout_user] = user.getId() storage[keys.checkout_time] = DateTime()
def handleCheckout( event ): # no cleanup since we annotate the relation and rely on its lifecycle. storage = get_storage( event.relation ) user = getSecurityManager().getUser() storage[keys.checkout_user] = user.getId() storage[keys.checkout_time] = DateTime()