[Zope3-checkins] CVS: Zope3/src/zope/app/interfaces/workflow - __init__.py:1.19 stateful.py:1.19 wfmc.py:1.2

Stephan Richter srichter at cosmos.phy.tufts.edu
Fri Aug 15 21:45:14 EDT 2003


Update of /cvs-repository/Zope3/src/zope/app/interfaces/workflow
In directory cvs.zope.org:/tmp/cvs-serv20171/app/interfaces/workflow

Modified Files:
	__init__.py stateful.py wfmc.py 
Log Message:
Merging dreamcatcher's TTW Schema branch:

1. Fixed Bug in adding that would cause infinite loops when the menu items
   action was not a valif view or factory id.

2. Extended adding to support more complex views. Until now we only 
   supported constructions like "+/AddView=id". Now you are able to say
   "+/AddView/More=id", which means that more information can be carried 
   in the URL. This can be used in many ways, including multi-page adding
   wizards. In my case I needed it to pass in the type of the TTW Schema-
   based Content Component.

3. Added Local Menus. This was a pain in the butt, but I think I got a 
   fairly nice model, where you can create local Menu Services, and Menus
   are simply named utilities. When active they are menus in the menu 
   service. This is very similar to the local interface service and TTW 
   Schema. 

4. Made some modifications to TTW Schema, cleaned up the code and moved
   the browser code and interfaces to the places they belong.

5. Added a Content Component Definition utility component, which takes a
   Schema and creates a content component for it, including permission
   settings and a menu entry. Currently the menu entry is always made to
   a local 'add_content' menu. I will change this and make it actually a
   screen, where the menu and title of the menu item can be chosen by the
   developer. Mmmh, should I add a factory for the definition as well, so
   that the content component is also available via python?

6. Added a Content Component Instance component that represents an 
   instance od a Content Component Definition. You will never directly 
   encounter this component, since it is automatically used by the adding
   code of the Content Component Definition.

7. Cleanups by both dreamcatcher and myself.

That's it. For more details see the branch checkin messages. I now consider
the dreamcatcher-ttwschema-branch closed.


=== Zope3/src/zope/app/interfaces/workflow/__init__.py 1.18 => 1.19 ===
--- Zope3/src/zope/app/interfaces/workflow/__init__.py:1.18	Thu Aug  7 20:14:44 2003
+++ Zope3/src/zope/app/interfaces/workflow/__init__.py	Fri Aug 15 20:43:37 2003
@@ -27,7 +27,7 @@
 
 class IWorkflowEvent(IEvent):
     """This event describes a generic event that is triggered by the workflow
-    mechanism.""" 
+    mechanism."""
 
 
 class IWorkflowService(Interface):
@@ -140,7 +140,7 @@
 
 class IProcessDefinitionImportHandler(Interface):
     """Handler for Import of ProcessDefinitions."""
-    
+
     def canImport(context, data):
         """Check if handler can import a processdefinition
            based on the data given."""


=== Zope3/src/zope/app/interfaces/workflow/stateful.py 1.18 => 1.19 ===
--- Zope3/src/zope/app/interfaces/workflow/stateful.py:1.18	Thu Jul 31 11:01:31 2003
+++ Zope3/src/zope/app/interfaces/workflow/stateful.py	Fri Aug 15 20:43:37 2003
@@ -35,7 +35,7 @@
 class ITransitionEvent(IWorkflowEvent):
     """An event that signalizes a transition from one state to another."""
 
-    object = Attribute("""The content object whose status will be changed.""") 
+    object = Attribute("""The content object whose status will be changed.""")
 
     process = Attribute("""The process instance that is doing the
                            transition. Note that this object really represents
@@ -87,7 +87,7 @@
 
 class IState(Interface):
     """Interface for state of a stateful workflow process definition."""
-    # XXX Should at least have a title, if not a value as well 
+    # XXX Should at least have a title, if not a value as well
 
 class IStatefulStatesContainer(IProcessDefinitionElementContainer):
     """Container that stores States."""
@@ -109,7 +109,7 @@
 
     def __allowed(self):
         return [MANUAL, AUTOMATIC]
-    
+
     allowed_values = ContextProperty(__allowed)
 
 
@@ -152,14 +152,14 @@
         title=u"Trigger Mode",
         description=u"How the Transition is triggered (Automatic/Manual)",
         default=u"Manual")
-        
+
 
     def getSourceState():
         """Get Source State."""
 
     def setSourceState(source):
         """Set Source State."""
-        
+
     def getDestinationState():
         """Get Destination State."""
 
@@ -189,7 +189,7 @@
 
     def setTriggerMode():
         """Set TriggerMode."""
-        
+
     def getProcessDefinition():
         """Return the ProcessDefinition Object."""
 
@@ -208,9 +208,9 @@
         default=None,
         required=False)
 
-    schemaPermissions = Attribute(u"A dictioary that maps set/get permissions"
+    schemaPermissions = Attribute(u"A dictionary that maps set/get permissions"
                                   u"on the schema's fields. Entries looks as"
-                                  u"follows: {fieldname : (set_perm, get_perm)}")
+                                  u"follows: {fieldname:(set_perm, get_perm)}")
 
     states = Attribute("State objects container.")
 
@@ -218,31 +218,31 @@
 
     def addState(name, state):
         """Add a IState to the process definition."""
-    
+
     def getState(name):
         """Get the named state."""
-    
+
     def removeState(name):
         """Remove a state from the process definition
-    
+
         Raises ValueError exception if trying to delete the initial state.
         """
-    
+
     def getStateNames():
         """Get the state names."""
-    
+
     def getInitialStateName():
         """Get the name of the initial state."""
-    
+
     def addTransition(name, transition):
         """Add a ITransition to the process definition."""
-    
+
     def getTransition(name):
         """Get the named transition."""
-    
+
     def removeTransition(name):
         """Remove a transition from the process definition."""
-    
+
     def getTransitionNames():
         """Get the transition names."""
 
@@ -275,7 +275,7 @@
 
     def getProcessDefinition():
         """Get the process definition for this instance."""
-        
+
 
 class IContentProcessRegistry(Interface):
     """Content Type <-> Process Definitions Registry


=== Zope3/src/zope/app/interfaces/workflow/wfmc.py 1.1 => 1.2 ===
--- Zope3/src/zope/app/interfaces/workflow/wfmc.py:1.1	Sat Feb  1 14:17:39 2003
+++ Zope3/src/zope/app/interfaces/workflow/wfmc.py	Fri Aug 15 20:43:37 2003
@@ -1,376 +1,376 @@
-##############################################################################
-#
-# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
-# All Rights Reserved.
-#
-# This software is subject to the provisions of the Zope Public License,
-# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
-# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
-# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
-# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
-# FOR A PARTICULAR PURPOSE.
-#
-##############################################################################
-
-"""Interfaces for WfMC workflow process definition.
-
-Status: Draft
-
-$Id$
-"""
-from zope.interface import Interface, Attribute
-
-from zope.app.interfaces.workflow import IProcessDefinition
-from zope.app.interfaces.workflow import IProcessInstance
-
-from zope.app.interfaces.container import IContainer
-
-
-# ToDo:
-# - Specify all Attributes as SchemaFields where possible
-# - Define necessary methods for Interfaces
-
-
-class IWfMCProcessDefinition(IProcessDefinition):
-    """WfMC Workflow process definition.
-    """
-
-    # will we have packages ??
-    # package = Attribute("ref to package")
-
-    processDefinitionHeader = Attribute("ref to pd header")
-
-    redefinableHeader = Attribute("ref to refinable header")
-
-    formalParameters = Attribute("parameters that are interchanged e.g. subflow")
-
-    relevantData = Attribute("wfr data definition")
-
-    participants = Attribute("colletion of participants")
-
-    applications = Attribute("collection of applictations")
-
-    startActivity = Attribute("ref to start activity")
-
-    endActivity = Attribute("ref to end activity")
-
-    activities = Attribute("list activities contained by PD")
-
-    transitions = Attribute("list transitions contained by PD")
-
-
-
-class IWfMCProcessDefinitionHeader(Interface):
-    """WfMC Workflow process definition header.
-    """
-
-    created = Attribute("date of creation")
-    
-    description = Attribute("description of package")
-    
-    validFrom = Attribute("date the PD is valid from")
-    
-    validTo = Attribute("date the PD is valid to")
-    
-    limit = Attribute("limit for timemanagement in units of DurationUnit")
-    
-    priority = Attribute("priority of PD")
-    
-    durationUnit = Attribute("Duration Unit")
-    
-    workingTime = Attribute("amount of time, performer of activity needs to perform task")
-    
-    waitingTime = Attribute("amount of time, needed to prepare performance of task")
-    
-    duration = Attribute("duration in units")
-    
-    timeEstimation = Attribute("estimated time for the process")
-
-
-
-class IWfMCProcessDefinitionElement(Interface):
-    """WfMC process definition Element."""
-
-    # components usually don't know their id within a container
-    # id = Attribute("id of ProcessDefinitionElement")
-
-    # we have to decide how to handle the Extended Attributes
-    extendedAttributes = Attribute("list of extended Attributes")
-
-
-
-
-## FormalParameter Declaration
-
-class IWfMCFormalParameter(IContainer):
-    """WfMC Formal Parameters Container.
-    """
-
-class IWfMCFormalParameter(IWfMCProcessDefinitionElement):
-    """WfMC Formal Parameter.
-    """
-
-    mode = Attribute("mode: in/out/inout")
-    
-    index = Attribute("index of par")
-    
-    dataType = Attribute("data type of Parameter")
-    
-    description = Attribute("the Parameter Description")
-
-
-## RelevantData Declaration
-
-class IWfMCRelevantDataContainer(IContainer):
-    """WfMC Relevant Data Container.
-    """
-
-class IWfMCRelevantData(IWfMCProcessDefinitionElement):
-    """WfMC Relevant Data.
-    """
-
-    name = Attribute("name of DataField")
-    
-    isArray = Attribute("is array ?")
-    
-    dataType = Attribute("type of data")
-    
-    initialValue = Attribute("initial Value")
-    
-    description = Attribute("description of WFRD")
-
-
-## Application Declaration
-
-class IWfMCApplicationContainer(IContainer):
-    """WfMC Application Definition Container.
-    """
-
-class IWfMCApplication(IWfMCProcessDefinitionElement):
-    """WfMC Application Definition.
-    """
-
-    name = Attribute("Name of Application.")
-
-    description = Attribute("Description of Application.")
-
-    formalParameterList = Attribute("Sequence of Formal Parameters.")
-
-
-## Participant Declaration
-
-class IWfMCParticipantContainer(IContainer):
-    """WfMC Participant Definition Container.
-    """
-
-class IWfMCParticipant(IWfMCProcessDefinitionElement):
-    """WfMC Participant Definition.
-    """
-
-    name = Attribute("Name of Participant.")
-
-    type = Attribute("""Type of Participant: RESOURCE_SET/RESOURCE/ROLE/
-                        ORGANIZATIONAL_UNIT/HUMAN/SYSTEM""")
-
-    description = Attribute("Description of Participant.")
- 
-
-
-## Activity 
-
-class IWfMCActivityContainer(IContainer):
-    """WfMC Activity Container.
-    """
-
-class IWfMCActivity(IWfMCProcessDefinitionElement):
-    """WfMC Activity.
-    """
-
-    # we get get this via acquisition
-    # processDefinition = Attribute("ref to PD the activity belongs to")
-    
-    name = Attribute("a Activity Name")
-    
-    description = Attribute("a description")
-    
-    isRoute = Attribute("is this a route Activity")
-    
-    startMode = Attribute("how Activity is started (0-Manual/1-Automatic)")
-    
-    finishMode = Attribute("how Activity is finished (0-Manual/1-Automatic)")
-    
-    performer = Attribute("link to workflow participant (may be expression)")
-    
-    implementation = Attribute("if not Route-Activity: mandatory (no/tool+/subflow/loop)")
-    
-    instantiation = Attribute("capability: once/multiple times")
-    
-    priority = Attribute("priority of Activity")
-    
-    cost = Attribute("average cost")
-    
-    workingTime = Attribute("amount of time, performer of activity needs to perform task")
-    
-    waitingTime = Attribute("amount of time, needed to prepare performance of task")
-    
-    duration = Attribute("duration of activity")
-    
-    limit = Attribute("limit in costUnits")
-    
-    icon = Attribute("icon of activity")
-    
-    documentation = Attribute("documentation")
-    
-    splitMode = Attribute("split Mode (and/xor)")
-    
-    joinMode = Attribute("join Mode (and/xor)")
-    
-    inlineBlock = Attribute("inline Block definition")
-
-
-
-class IWfMCImplementation(IWfMCProcessDefinitionElement):
-    """WfMC Implementation Definition.
-
-    is referenced by Activity Attribute: implementation.
-    """
-
-    type = Attribute("Type of Implementation: NO/SUBFLOW/TOOL")
-
-
-class IWfMCSubflow(IWfMCImplementation):
-    """WfMC Implementation Subflow.
-    """
-
-    name = Attribute("Name of Subflow to start.")
-
-    execution = Attribute("Type of Execution: Asynchr/synchr.")
-
-    actualParameterList = Attribute("""Sequence of ActualParameters with those the
-                                     new Instance is initialized and whose are
-                                     returned.""")
-    
-
-class IWfMCTool(IWfMCImplementation):
-    """WfMC Implementation Subflow.
-    """
-
-    name = Attribute("Name of Application/Procedure to invoke (Application Declaration).")
-
-    type = Attribute("Type of Tool: APPLICATION/PROCEDURE.")
-
-    description = Attribute("Description of Tool.")
-
-    actualParameterList = Attribute("""Sequence of ActualParameters with those the
-                                     new Instance is initialized and whose are
-                                     returned.""")
-
-
-
-## Transition
-
-class IWfMCCondition(Interface):
-    """WfMC Condition.
-    """
-
-    type = Attribute("Type of Condition: CONDITION/OTHERWISE")
-
-    expression = Attribute("Expression to evaluate.")
-
-
-class IWfMCTransitionContainer(IContainer):
-    """WfMC Transition Container.
-    """
-
-class IWfMCTransition(IWfMCProcessDefinitionElement):
-    """WfMC Transition.
-    """
-
-    name = Attribute("Name of Transition.")
-
-    condition = Attribute("ref to Condition.")
-
-    fromActivityId = Attribute("Id of FromActivity.")
-
-    toActivityId = Attribute("Id of ToActivity.")
-
-
-
-
-
-
-
-## ProcessInstance
-
-class IWfMCProcessInstanceData(Interface):
-    """WfMC ProcessInstance Data.
-
-    this is a base interfaces that gets extended dynamically
-    when creating a ProcessInstance from the relevantData Spec.
-    """
-
-    # XXX Not shure how to implement this.
-    # probably using schemagen
-
-
-class IWfMCProcessInstance(IProcessInstance):
-    """WfMC Workflow process instance.
-    """
-
-    processDefinitionId = Attribute("Id of ProcessDefinition.")
-
-    name = Attribute("Name of ProcessInstance.")
-
-    creationTime = Attribute("Creation Time of ProcessInstance.")
-
-    activityInstances = Attribute("ref to ActivityInstanceContainer.")
-
-    data = Attribute("WorkflowRelevant Data (instance, not definition.)")
-
-    # XXX Do we need an actual Participantlist for implementation ??
-
-    
-
-
-## ActivityInstance
-
-class IWfMCActivityInstanceContainer(IContainer):
-    """WfMC ActivityInstance Container.
-    """
-    
-class IWfMCActivityInstance(Interface):
-    """WfMC Workflow activity instance.
-    """
-
-    activityId = Attribute("Id of Activity.")
-    
-    name = Attribute("Name of ActivityInstance.")
-
-    creationTime = Attribute("Creation Time of ActivityInstance.")
-
-    status = Attribute("Status of ActivityInstance.")
-
-    priority = Attribute("Priority of ActivityInstance (initialized from Activity).")
-
-    workitems = Attribute("ref to WorkitemContainer.")
-
-    # XXX 
-    # participants = Attribute("Sequence of assigned Participants.")
-
-
-## WorkItem
-
-class IWfMCWorkitemContainer(IContainer):
-    """WfMC Workitem Container.
-    """
-
-class IWfMCWorkitem(Interface):
-    """WfMC Workflow  instance.
-    """
-
-    status = Attribute("Status of Workitem.")
-
-    priority = Attribute("Priority of Workitem.")
-
-    participant = Attribute("Participant that is assigned to do this item of Work.")
-
+##############################################################################
+#
+# Copyright (c) 2001, 2002 Zope Corporation and Contributors.
+# All Rights Reserved.
+#
+# This software is subject to the provisions of the Zope Public License,
+# Version 2.0 (ZPL).  A copy of the ZPL should accompany this distribution.
+# THIS SOFTWARE IS PROVIDED "AS IS" AND ANY AND ALL EXPRESS OR IMPLIED
+# WARRANTIES ARE DISCLAIMED, INCLUDING, BUT NOT LIMITED TO, THE IMPLIED
+# WARRANTIES OF TITLE, MERCHANTABILITY, AGAINST INFRINGEMENT, AND FITNESS
+# FOR A PARTICULAR PURPOSE.
+#
+##############################################################################
+
+"""Interfaces for WfMC workflow process definition.
+
+Status: Draft
+
+$Id$
+"""
+from zope.interface import Interface, Attribute
+
+from zope.app.interfaces.workflow import IProcessDefinition
+from zope.app.interfaces.workflow import IProcessInstance
+
+from zope.app.interfaces.container import IContainer
+
+
+# ToDo:
+# - Specify all Attributes as SchemaFields where possible
+# - Define necessary methods for Interfaces
+
+
+class IWfMCProcessDefinition(IProcessDefinition):
+    """WfMC Workflow process definition.
+    """
+
+    # will we have packages ??
+    # package = Attribute("ref to package")
+
+    processDefinitionHeader = Attribute("ref to pd header")
+
+    redefinableHeader = Attribute("ref to refinable header")
+
+    formalParameters = Attribute("parameters that are interchanged e.g. subflow")
+
+    relevantData = Attribute("wfr data definition")
+
+    participants = Attribute("colletion of participants")
+
+    applications = Attribute("collection of applictations")
+
+    startActivity = Attribute("ref to start activity")
+
+    endActivity = Attribute("ref to end activity")
+
+    activities = Attribute("list activities contained by PD")
+
+    transitions = Attribute("list transitions contained by PD")
+
+
+
+class IWfMCProcessDefinitionHeader(Interface):
+    """WfMC Workflow process definition header.
+    """
+
+    created = Attribute("date of creation")
+
+    description = Attribute("description of package")
+
+    validFrom = Attribute("date the PD is valid from")
+
+    validTo = Attribute("date the PD is valid to")
+
+    limit = Attribute("limit for timemanagement in units of DurationUnit")
+
+    priority = Attribute("priority of PD")
+
+    durationUnit = Attribute("Duration Unit")
+
+    workingTime = Attribute("amount of time, performer of activity needs to perform task")
+
+    waitingTime = Attribute("amount of time, needed to prepare performance of task")
+
+    duration = Attribute("duration in units")
+
+    timeEstimation = Attribute("estimated time for the process")
+
+
+
+class IWfMCProcessDefinitionElement(Interface):
+    """WfMC process definition Element."""
+
+    # components usually don't know their id within a container
+    # id = Attribute("id of ProcessDefinitionElement")
+
+    # we have to decide how to handle the Extended Attributes
+    extendedAttributes = Attribute("list of extended Attributes")
+
+
+
+
+## FormalParameter Declaration
+
+class IWfMCFormalParameter(IContainer):
+    """WfMC Formal Parameters Container.
+    """
+
+class IWfMCFormalParameter(IWfMCProcessDefinitionElement):
+    """WfMC Formal Parameter.
+    """
+
+    mode = Attribute("mode: in/out/inout")
+
+    index = Attribute("index of par")
+
+    dataType = Attribute("data type of Parameter")
+
+    description = Attribute("the Parameter Description")
+
+
+## RelevantData Declaration
+
+class IWfMCRelevantDataContainer(IContainer):
+    """WfMC Relevant Data Container.
+    """
+
+class IWfMCRelevantData(IWfMCProcessDefinitionElement):
+    """WfMC Relevant Data.
+    """
+
+    name = Attribute("name of DataField")
+
+    isArray = Attribute("is array ?")
+
+    dataType = Attribute("type of data")
+
+    initialValue = Attribute("initial Value")
+
+    description = Attribute("description of WFRD")
+
+
+## Application Declaration
+
+class IWfMCApplicationContainer(IContainer):
+    """WfMC Application Definition Container.
+    """
+
+class IWfMCApplication(IWfMCProcessDefinitionElement):
+    """WfMC Application Definition.
+    """
+
+    name = Attribute("Name of Application.")
+
+    description = Attribute("Description of Application.")
+
+    formalParameterList = Attribute("Sequence of Formal Parameters.")
+
+
+## Participant Declaration
+
+class IWfMCParticipantContainer(IContainer):
+    """WfMC Participant Definition Container.
+    """
+
+class IWfMCParticipant(IWfMCProcessDefinitionElement):
+    """WfMC Participant Definition.
+    """
+
+    name = Attribute("Name of Participant.")
+
+    type = Attribute("""Type of Participant: RESOURCE_SET/RESOURCE/ROLE/
+                        ORGANIZATIONAL_UNIT/HUMAN/SYSTEM""")
+
+    description = Attribute("Description of Participant.")
+
+
+
+## Activity
+
+class IWfMCActivityContainer(IContainer):
+    """WfMC Activity Container.
+    """
+
+class IWfMCActivity(IWfMCProcessDefinitionElement):
+    """WfMC Activity.
+    """
+
+    # we get get this via acquisition
+    # processDefinition = Attribute("ref to PD the activity belongs to")
+
+    name = Attribute("a Activity Name")
+
+    description = Attribute("a description")
+
+    isRoute = Attribute("is this a route Activity")
+
+    startMode = Attribute("how Activity is started (0-Manual/1-Automatic)")
+
+    finishMode = Attribute("how Activity is finished (0-Manual/1-Automatic)")
+
+    performer = Attribute("link to workflow participant (may be expression)")
+
+    implementation = Attribute("if not Route-Activity: mandatory (no/tool+/subflow/loop)")
+
+    instantiation = Attribute("capability: once/multiple times")
+
+    priority = Attribute("priority of Activity")
+
+    cost = Attribute("average cost")
+
+    workingTime = Attribute("amount of time, performer of activity needs to perform task")
+
+    waitingTime = Attribute("amount of time, needed to prepare performance of task")
+
+    duration = Attribute("duration of activity")
+
+    limit = Attribute("limit in costUnits")
+
+    icon = Attribute("icon of activity")
+
+    documentation = Attribute("documentation")
+
+    splitMode = Attribute("split Mode (and/xor)")
+
+    joinMode = Attribute("join Mode (and/xor)")
+
+    inlineBlock = Attribute("inline Block definition")
+
+
+
+class IWfMCImplementation(IWfMCProcessDefinitionElement):
+    """WfMC Implementation Definition.
+
+    is referenced by Activity Attribute: implementation.
+    """
+
+    type = Attribute("Type of Implementation: NO/SUBFLOW/TOOL")
+
+
+class IWfMCSubflow(IWfMCImplementation):
+    """WfMC Implementation Subflow.
+    """
+
+    name = Attribute("Name of Subflow to start.")
+
+    execution = Attribute("Type of Execution: Asynchr/synchr.")
+
+    actualParameterList = Attribute("""Sequence of ActualParameters with those the
+                                     new Instance is initialized and whose are
+                                     returned.""")
+
+
+class IWfMCTool(IWfMCImplementation):
+    """WfMC Implementation Subflow.
+    """
+
+    name = Attribute("Name of Application/Procedure to invoke (Application Declaration).")
+
+    type = Attribute("Type of Tool: APPLICATION/PROCEDURE.")
+
+    description = Attribute("Description of Tool.")
+
+    actualParameterList = Attribute("""Sequence of ActualParameters with those the
+                                     new Instance is initialized and whose are
+                                     returned.""")
+
+
+
+## Transition
+
+class IWfMCCondition(Interface):
+    """WfMC Condition.
+    """
+
+    type = Attribute("Type of Condition: CONDITION/OTHERWISE")
+
+    expression = Attribute("Expression to evaluate.")
+
+
+class IWfMCTransitionContainer(IContainer):
+    """WfMC Transition Container.
+    """
+
+class IWfMCTransition(IWfMCProcessDefinitionElement):
+    """WfMC Transition.
+    """
+
+    name = Attribute("Name of Transition.")
+
+    condition = Attribute("ref to Condition.")
+
+    fromActivityId = Attribute("Id of FromActivity.")
+
+    toActivityId = Attribute("Id of ToActivity.")
+
+
+
+
+
+
+
+## ProcessInstance
+
+class IWfMCProcessInstanceData(Interface):
+    """WfMC ProcessInstance Data.
+
+    this is a base interfaces that gets extended dynamically
+    when creating a ProcessInstance from the relevantData Spec.
+    """
+
+    # XXX Not shure how to implement this.
+    # probably using schemagen
+
+
+class IWfMCProcessInstance(IProcessInstance):
+    """WfMC Workflow process instance.
+    """
+
+    processDefinitionId = Attribute("Id of ProcessDefinition.")
+
+    name = Attribute("Name of ProcessInstance.")
+
+    creationTime = Attribute("Creation Time of ProcessInstance.")
+
+    activityInstances = Attribute("ref to ActivityInstanceContainer.")
+
+    data = Attribute("WorkflowRelevant Data (instance, not definition.)")
+
+    # XXX Do we need an actual Participantlist for implementation ??
+
+
+
+
+## ActivityInstance
+
+class IWfMCActivityInstanceContainer(IContainer):
+    """WfMC ActivityInstance Container.
+    """
+
+class IWfMCActivityInstance(Interface):
+    """WfMC Workflow activity instance.
+    """
+
+    activityId = Attribute("Id of Activity.")
+
+    name = Attribute("Name of ActivityInstance.")
+
+    creationTime = Attribute("Creation Time of ActivityInstance.")
+
+    status = Attribute("Status of ActivityInstance.")
+
+    priority = Attribute("Priority of ActivityInstance (initialized from Activity).")
+
+    workitems = Attribute("ref to WorkitemContainer.")
+
+    # XXX
+    # participants = Attribute("Sequence of assigned Participants.")
+
+
+## WorkItem
+
+class IWfMCWorkitemContainer(IContainer):
+    """WfMC Workitem Container.
+    """
+
+class IWfMCWorkitem(Interface):
+    """WfMC Workflow  instance.
+    """
+
+    status = Attribute("Status of Workitem.")
+
+    priority = Attribute("Priority of Workitem.")
+
+    participant = Attribute("Participant that is assigned to do this item of Work.")
+




More information about the Zope3-Checkins mailing list