From: zworkb <svn...@pl...> - 2006-01-03 12:01:58
|
Author: zworkb Date: Tue Jan 3 12:01:06 2006 New Revision: 15480 Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/Install.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow_scripts.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow_scripts.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow_scripts.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Order.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/OrderManager.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/config.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml.bak.0 PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml.bak.1 PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/PloneMallOrderTest.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManager.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManagerSimple.py PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/version.txt Log: workflow state promotion to all subobjects as well as notifyOrderState as callback function Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/Install.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/Install.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/Install.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ """ Extensions/Install.py """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generated: # Generator: ArchGenXML Version 1.4.1 svn/devel Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow.py Tue Jan 3 12:01:06 2006 @@ -1,7 +1,7 @@ """Workflow: order_item_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml @@ -46,10 +46,10 @@ ##/code-section create-workflow-setup-method-header - for s in ['dummy']: + for s in ['finished', 'cancelled', 'failed', 'created']: workflow.states.addState(s) - for t in []: + for t in ['cancel', 'finish', 'Im7c7cdb8bm1088aaba85fmm6612']: workflow.transitions.addTransition(t) for v in ['review_history', 'comments', 'time', 'actor', 'action']: @@ -66,13 +66,25 @@ ## Initial State - workflow.states.setInitialState('dummy') + workflow.states.setInitialState('created') ## States initialization - stateDef = workflow.states['dummy'] - stateDef.setProperties(title="""dummy""", + stateDef = workflow.states['finished'] + stateDef.setProperties(title="""finished""", transitions=[]) + + stateDef = workflow.states['cancelled'] + stateDef.setProperties(title="""cancelled""", + transitions=[]) + + stateDef = workflow.states['failed'] + stateDef.setProperties(title="""failed""", + transitions=[]) + + stateDef = workflow.states['created'] + stateDef.setProperties(title="""created""", + transitions=['finish', 'cancel', 'Im7c7cdb8bm1088aaba85fmm6612']) stateDef.setPermission('Modify portal content', 1, []) @@ -88,6 +100,63 @@ ## Transitions initialization + ##creation of workflow scripts + for wf_scriptname in ['cancel']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_item_workflow_scripts', + wf_scriptname)) + + transitionDef = workflow.transitions['cancel'] + transitionDef.setProperties(title="""cancel""", + new_state_id="""cancelled""", + trigger_type=1, + script_name="""""", + after_script_name="""cancel""", + actbox_name="""cancel""", + actbox_url="""""", + actbox_category="""workflow""", + props={}, + ) + + ##creation of workflow scripts + for wf_scriptname in ['finish']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_item_workflow_scripts', + wf_scriptname)) + + transitionDef = workflow.transitions['finish'] + transitionDef.setProperties(title="""finish""", + new_state_id="""finished""", + trigger_type=1, + script_name="""""", + after_script_name="""finish""", + actbox_name="""finish""", + actbox_url="""""", + actbox_category="""workflow""", + props={}, + ) + + ##creation of workflow scripts + for wf_scriptname in ['fail']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_item_workflow_scripts', + wf_scriptname)) + + transitionDef = workflow.transitions['Im7c7cdb8bm1088aaba85fmm6612'] + transitionDef.setProperties(title="""Im7c7cdb8bm1088aaba85fmm6612""", + new_state_id="""failed""", + trigger_type=1, + script_name="""""", + after_script_name="""fail""", + actbox_name="""Im7c7cdb8bm1088aaba85fmm6612""", + actbox_url="""""", + actbox_category="""workflow""", + props={}, + ) + ## State Variable workflow.variables.setStateVar('review_state') Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow_scripts.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow_scripts.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_item_workflow_scripts.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ """ Workflow Scripts for: order_item_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://sf.net/projects/archetypes/ @@ -27,3 +27,15 @@ ##/code-section workflow-script-header ## [] + +def cancel(self,state_change,**kw): + pass + + +def fail(self,state_change,**kw): + pass + + +def finish(self,state_change,**kw): + pass + Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow.py Tue Jan 3 12:01:06 2006 @@ -1,7 +1,7 @@ """Workflow: order_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml @@ -46,10 +46,10 @@ ##/code-section create-workflow-setup-method-header - for s in ['in_process', 'finished', 'initializing']: + for s in ['in_process', 'finished', 'cancelled', 'failed', 'initializing']: workflow.states.addState(s) - for t in ['start', 'finish']: + for t in ['cancel', 'start', 'fail', 'finish']: workflow.transitions.addTransition(t) for v in ['review_history', 'comments', 'time', 'actor', 'action']: @@ -72,7 +72,7 @@ stateDef = workflow.states['in_process'] stateDef.setProperties(title="""in_process""", - transitions=['finish']) + transitions=['finish', 'cancel', 'fail']) stateDef.setPermission('Access contents information', 0, ['Anonymous', 'Authenticated']) @@ -102,6 +102,14 @@ 0, ['Manager', 'Owner']) + stateDef = workflow.states['cancelled'] + stateDef.setProperties(title="""cancelled""", + transitions=[]) + + stateDef = workflow.states['failed'] + stateDef.setProperties(title="""failed""", + transitions=[]) + stateDef = workflow.states['initializing'] stateDef.setProperties(title="""initializing""", transitions=['start']) @@ -120,6 +128,25 @@ ## Transitions initialization + ##creation of workflow scripts + for wf_scriptname in ['cancel']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_workflow_scripts', + wf_scriptname)) + + transitionDef = workflow.transitions['cancel'] + transitionDef.setProperties(title="""cancel""", + new_state_id="""cancelled""", + trigger_type=1, + script_name="""""", + after_script_name="""cancel""", + actbox_name="""cancel""", + actbox_url="""""", + actbox_category="""workflow""", + props={}, + ) + transitionDef = workflow.transitions['start'] transitionDef.setProperties(title="""start""", new_state_id="""in_process""", @@ -132,12 +159,38 @@ props={}, ) + ##creation of workflow scripts + for wf_scriptname in ['fail']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_workflow_scripts', + wf_scriptname)) + + transitionDef = workflow.transitions['fail'] + transitionDef.setProperties(title="""fail""", + new_state_id="""failed""", + trigger_type=1, + script_name="""""", + after_script_name="""fail""", + actbox_name="""fail""", + actbox_url="""""", + actbox_category="""workflow""", + props={}, + ) + + ##creation of workflow scripts + for wf_scriptname in ['finish']: + if not wf_scriptname in workflow.scripts.objectIds(): + workflow.scripts._setObject(wf_scriptname,ExternalMethod(wf_scriptname, wf_scriptname, + productname + '.order_workflow_scripts', + wf_scriptname)) + transitionDef = workflow.transitions['finish'] transitionDef.setProperties(title="""finish""", new_state_id="""finished""", trigger_type=1, script_name="""""", - after_script_name="""""", + after_script_name="""finish""", actbox_name="""finish""", actbox_url="""""", actbox_category="""workflow""", Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow_scripts.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow_scripts.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/order_workflow_scripts.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ """ Workflow Scripts for: order_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://sf.net/projects/archetypes/ @@ -27,3 +27,34 @@ ##/code-section workflow-script-header ## [] + +def cancel(self,state_change,**kw): + promoteState(state_change.object,state_change,**kw) + + +def fail(self,state_change,**kw): + promoteState(state_change.object,state_change,**kw) + + +def finish(self,state_change,**kw): + promoteState(state_change.object,state_change,**kw) + +def promoteState(obj,state_change,**kw): + + try: + obj.portal_workflow.doActionFor(obj,state_change.transition.__name__) + except: + pass + + if hasattr(obj.aq_base,'notifyOrderState'): + obj.notifyOrderState(state_change.new_state.__name__) + + #promote the state change to all subobjects + if obj.isPrincipiaFolderish: + for o in obj.contentValues(): + try: + promoteState(o,state_change,**kw) + #self.portal_workflow.doActionFor(o,state_change.transition.__name__) + except: + pass + Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow.py Tue Jan 3 12:01:06 2006 @@ -1,7 +1,7 @@ """Workflow: ordermanager_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow_scripts.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow_scripts.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Extensions/ordermanager_workflow_scripts.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ """ Workflow Scripts for: ordermanager_workflow """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://sf.net/projects/archetypes/ Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Order.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Order.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/Order.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ # File: Order.py # -# Copyright (c) 2005 by +# Copyright (c) 2006 by # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml # @@ -250,7 +250,6 @@ - security.declareProtected("View", 'hasShipping') def hasShipping(self): """ @@ -466,6 +465,10 @@ #manually created methods + def notifyChanged(self,object): + ''' called if subprocess changed its state ''' + + def getOrder(self): return self Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/OrderManager.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/OrderManager.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/OrderManager.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ # File: OrderManager.py # -# Copyright (c) 2005 by +# Copyright (c) 2006 by # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml # @@ -192,6 +192,7 @@ pass + def changeOwnershipOf(self, object, owner, recursive=0): """Changes the ownership of an object.""" membership = getToolByName(self, 'portal_membership') @@ -233,6 +234,7 @@ catalog_tool.reindexObject(obj) + registerType(OrderManager,PROJECTNAME) # end of class OrderManager Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/config.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/config.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/config.py Tue Jan 3 12:01:06 2006 @@ -8,7 +8,7 @@ in this file if found. """ -# Copyright (c) 2005 by +# Copyright (c) 2006 by # # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml ============================================================================== Binary files. No diff available. Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml.bak.0 ============================================================================== Binary files. No diff available. Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/model/PloneMallOrder.zuml.bak.1 ============================================================================== Binary files. No diff available. Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/PloneMallOrderTest.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/PloneMallOrderTest.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/PloneMallOrderTest.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ # File: PloneMallOrderTest.py # -# Copyright (c) 2005 by +# Copyright (c) 2006 by # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml # Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManager.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManager.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManager.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ # File: testOrderManager.py # -# Copyright (c) 2005 by +# Copyright (c) 2006 by # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml # Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManagerSimple.py ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManagerSimple.py (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/tests/testOrderManagerSimple.py Tue Jan 3 12:01:06 2006 @@ -1,6 +1,6 @@ # File: testOrderManagerSimple.py # -# Copyright (c) 2005 by +# Copyright (c) 2006 by # Generator: ArchGenXML Version 1.4.1 svn/devel # http://plone.org/products/archgenxml # Modified: PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/version.txt ============================================================================== --- PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/version.txt (original) +++ PloneMall/core/PloneMallOrder/branches/1.1/PloneMallOrder/version.txt Tue Jan 3 12:01:06 2006 @@ -1 +1 @@ -0.1 build 61 +0.1 build 62 |