Esempio n. 1
0
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()
Esempio n. 2
0
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)
Esempio n. 3
0
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)
Esempio n. 4
0
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 )
Esempio n. 5
0
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()
Esempio n. 7
0
 def properties( self ):
     wc_ref = self._getReference()
     if wc_ref is not None:
         return get_storage( wc_ref )
     else:
         return {}
Esempio n. 8
0
 def getProperties(self, obj, default=None):
     try:
         return get_storage(get_checkout_relation(obj), default=default)
     except AttributeError:
         return default
Esempio n. 9
0
 def properties( self ):
     wc_ref = self._getReference()
     if wc_ref is not None:
         return get_storage( wc_ref )
     else:
         return {}
Esempio n. 10
0
 def getProperties(self, obj, default=None):
     return get_storage(obj, default=default)
Esempio n. 11
0
 def getProperties(self, obj, default=None):
     return get_storage(obj, default=default)
Esempio n. 12
0
 def getProperties(self, obj, default=None):
     try:
         return get_storage(get_checkout_relation(obj), default=default)
     except AttributeError:
         return default
Esempio n. 13
0
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()
Esempio n. 14
0
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()