DCWorkflow Package¶
DCWorkflow
Package¶
Web-configurable workflow.
- Products.DCWorkflow.__init__.initialize(context)¶
ContainerTab
Module¶
A convenient base class for representing a container as a management tab.
- class Products.DCWorkflow.ContainerTab.ContainerTab(id)¶
Bases:
Folder
Folders are basic container objects that provide a standard interface for object management. Folder objects also implement a management interface and can have arbitrary properties.
- get(name, default=None)¶
- getId()¶
Return the id of the object as a string.
This method should be used in preference to accessing an id attribute of an object directly. The getId method is public.
- has_key(key)¶
- items()¶
- keys()¶
- manage_options()¶
Built-in immutable sequence.
If no argument is given, the constructor returns an empty tuple. If iterable is specified the tuple is initialized from iterable’s items.
If the argument is a tuple, the return value is the same object.
- manage_options__roles__ = ('Manager',)¶
- manage_renameObjects(ids=[], new_ids=[], REQUEST=None)¶
Rename several sub-objects
- manage_renameObjects__roles__ = ('Manager',)¶
- manage_workspace(RESPONSE)¶
Redirects to the primary option.
- manage_workspace__roles__ = ('Manager',)¶
- meta_types = ()¶
- objectIds(spec=None)¶
- values()¶
DCWorkflow
Module¶
Web-configurable workflow.
- class Products.DCWorkflow.DCWorkflow.DCWorkflowDefinition(id)¶
Bases:
WorkflowUIMixin
,Folder
This class is the workflow engine and the container for the workflow definition. UI methods are in WorkflowUIMixin.
- allowCreate(container, type_name)¶
Returns true if the user is allowed to create a workflow instance.
The object passed to the guard is the prospective container.
- allowCreate__roles__ = ()¶
- creation_guard = None¶
- description = ''¶
- doActionFor(ob, action, comment='', **kw)¶
Allows the user to request a workflow action. This method must perform its own security checks.
- doActionFor__roles__ = ()¶
- getCatalogVariablesFor(ob)¶
Allows this workflow to make workflow-specific variables available to the catalog, making it possible to implement worklists in a simple way. Returns a mapping containing the catalog variables that apply to ob.
- getCatalogVariablesFor__roles__ = ()¶
- getInfoFor(ob, name, default)¶
Allows the user to request information provided by the workflow. This method must perform its own security checks.
- getInfoFor__roles__ = ()¶
- groups = ()¶
- initial_state = None¶
- isActionSupported(ob, action, **kw)¶
Returns a true value if the given action name is possible in the current state.
- isActionSupported__roles__ = ()¶
- isInfoSupported(ob, name)¶
Returns a true value if the given info name is supported.
- isInfoSupported__roles__ = ()¶
- listGlobalActions(info)¶
Allows this workflow to include actions to be displayed in the actions box. Called on every request. Returns the actions to be displayed to the user.
- listGlobalActions__roles__ = ()¶
- listObjectActions(info)¶
Allows this workflow to include actions to be displayed in the actions box. Called only when this workflow is applicable to info.object. Returns the actions to be displayed to the user.
- listObjectActions__roles__ = ()¶
- manage_options = ({'action': 'manage_properties', 'label': 'Properties'}, {'action': 'states/manage_main', 'label': 'States'}, {'action': 'transitions/manage_main', 'label': 'Transitions'}, {'action': 'variables/manage_main', 'label': 'Variables'}, {'action': 'worklists/manage_main', 'label': 'Worklists'}, {'action': 'scripts/manage_main', 'label': 'Scripts'}, {'action': 'manage_permissions', 'label': 'Permissions'}, {'action': 'manage_groups', 'label': 'Groups'})¶
- manager_bypass = 0¶
- meta_types = ()¶
- notifyBefore(ob, action)¶
Notifies this workflow of an action before it happens, allowing veto by exception. Unless an exception is thrown, either a notifySuccess() or notifyException() can be expected later on. The action usually corresponds to a method name.
- notifyBefore__roles__ = ()¶
- notifyCreated(ob)¶
Notifies this workflow after an object has been created and added.
- notifyCreated__roles__ = ()¶
- notifyException(ob, action, exc)¶
Notifies this workflow that an action failed.
- notifyException__roles__ = ()¶
- notifySuccess(ob, action, result)¶
Notifies this workflow that an action has taken place.
- notifySuccess__roles__ = ()¶
- permissions = ()¶
- roles = None¶
- scripts = None¶
- state_var = 'state'¶
- states = None¶
- title = 'DC Workflow Definition'¶
- transitions = None¶
- updateRoleMappingsFor(ob)¶
Changes the object permissions according to the current state.
- updateRoleMappingsFor__roles__ = ()¶
- variables = None¶
- worklists = None¶
- Products.DCWorkflow.DCWorkflow.bad_id(string, pos=0, endpos=9223372036854775807)¶
Scan through string looking for a match, and return a corresponding match object instance.
Return None if no position in the string matches.
- Products.DCWorkflow.DCWorkflow.checkId(id)¶
Expression
Module¶
Expressions in a web-configurable workflow.
- class Products.DCWorkflow.Expression.SafeMapping(*args)¶
Bases:
MultiMapping
Mapping with security declarations and limited method exposure.
Since it subclasses MultiMapping, this class can be used to wrap one or more mapping objects. Restricted Python code will not be able to mutate the SafeMapping or the wrapped mappings, but will be able to read any value.
- pop = None¶
- push = None¶
- class Products.DCWorkflow.Expression.StateChangeInfo(object, workflow, status=None, transition=None, old_state=None, new_state=None, kwargs=None)¶
Bases:
object
Provides information for expressions and scripts.
- exception ObjectDeleted(result=None)¶
Bases:
Exception
Raise to tell the workflow tool that the object has been deleted.
Swallowed by the workflow tool.
- getResult()¶
- exception ObjectMoved(new_ob, result=None)¶
Bases:
Exception
Raise to tell the workflow tool that the object has moved.
Swallowed by the workflow tool.
- getNewObject()¶
- getResult()¶
- getDateTime()¶
- getHistory()¶
- getPortal()¶
- Products.DCWorkflow.Expression.createExprContext(sci)¶
An expression context provides names for TALES expressions.
Guard
Module¶
Guard conditions in a web-configurable workflow.
- class Products.DCWorkflow.Guard.Guard¶
Bases:
Persistent
,ExplicitAcquirer
Persistent ExtensionClass
- changeFromProperties(props)¶
Returns 1 if changes were specified.
- check(sm, wf_def, ob, **kw)¶
Checks conditions in this guard.
- expr = None¶
- getExprText()¶
- getExprText__roles__¶
PermissionRole C implementation
- getGroupsText()¶
- getGroupsText__roles__¶
PermissionRole C implementation
- getPermissionsText()¶
- getPermissionsText__roles__¶
PermissionRole C implementation
- getRolesText()¶
- getRolesText__roles__¶
PermissionRole C implementation
- getSummary()¶
- getSummary__roles__¶
PermissionRole C implementation
- groups = ()¶
- guardForm = <App.special_dtml.DTMLFile object>¶
- permissions = ()¶
- roles = ()¶
- Products.DCWorkflow.Guard.formatNameUnion(names)¶
Scripts
Module¶
Scripts in a web-configurable workflow.
States
Module¶
States in a web-configurable workflow.
- class Products.DCWorkflow.States.StateDefinition(id)¶
Bases:
SimpleItem
State definition
- addVariable(id, value, REQUEST=None)¶
Add a WorkflowVariable to State.
- deleteVariables(ids=[], REQUEST=None)¶
Delete a WorkflowVariable from State.
- description = ''¶
- getAvailableRoles()¶
- getAvailableTransitionIds()¶
- getAvailableVarIds()¶
- getGroupInfo(group)¶
Returns the list of roles to be assigned to a group.
- getId()¶
Return the id of the object as a string.
This method should be used in preference to accessing an id attribute of an object directly. The getId method is public.
- getManagedPermissions()¶
- getPermissionInfo(p)¶
Returns the list of roles to be assigned to a permission.
- getTransitionTitle(tid)¶
- getTransitions()¶
- getVariableValues()¶
Get VariableValues for management UI.
- getWorkflow()¶
- getWorkflowVariables()¶
Get all variables that are available from the workflow and not handled yet.
- group_roles = None¶
- manage_groups = <PageTemplateFile at state_groups>¶
- manage_groups__roles__ = ('Manager',)¶
- manage_options = ({'action': 'manage_properties', 'label': 'Properties'}, {'action': 'manage_permissions', 'label': 'Permissions'}, {'action': 'manage_groups', 'label': 'Groups'}, {'action': 'manage_variables', 'label': 'Variables'})¶
- manage_permissions(REQUEST, manage_tabs_message=None)¶
Present TTW UI for managing this State’s permissions.
- manage_permissions__roles__ = ('Manager',)¶
- manage_properties(REQUEST, manage_tabs_message=None)¶
Show state properties ZMI form.
- manage_properties__roles__ = ('Manager',)¶
- manage_variables(REQUEST, manage_tabs_message=None)¶
Show State variables ZMI form.
- manage_variables__roles__ = ('Manager',)¶
- meta_type = 'Workflow State'¶
- permission_roles = None¶
- setGroups(REQUEST, RESPONSE=[])¶
Set the group to role mappings in REQUEST for this State.
- setPermission(permission, acquired, roles, REQUEST=[])¶
Set a permission for this State.
- setPermissions(REQUEST)¶
Set the permissions in REQUEST for this State.
- setProperties(title='', transitions=(), REQUEST=None, description='')¶
Set the properties for this State.
- setVariables(ids=[], REQUEST=None)¶
Set values for Variables set by this State.
- title = ''¶
- transitions = ()¶
- var_values = None¶
- class Products.DCWorkflow.States.States(id)¶
Bases:
ContainerTab
A container for state definitions
- addState(id, REQUEST=None)¶
- all_meta_types = ({'action': 'addState', 'name': 'Workflow State', 'permission': 'Manage portal'},)¶
- deleteStates(ids, REQUEST=None)¶
- manage_main(REQUEST, manage_tabs_message=None)¶
- manage_main__roles__ = ('Manager',)¶
- meta_type = 'Workflow States'¶
- meta_types = ()¶
- setInitialState(id=None, ids=None, REQUEST=None)¶
Transitions
Module¶
Transitions in a web-configurable workflow.
- class Products.DCWorkflow.Transitions.TransitionDefinition(id)¶
Bases:
SimpleItem
Transition definition
- actbox_category = 'workflow'¶
- actbox_icon = ''¶
- actbox_name = ''¶
- actbox_url = ''¶
- addVariable(id, text, REQUEST=None)¶
Add a variable expression.
- after_script_name = None¶
- deleteVariables(ids=[], REQUEST=None)¶
delete a WorkflowVariable from State
- description = ''¶
- getAvailableScriptIds()¶
- getAvailableStateIds()¶
- getAvailableVarIds()¶
- getGuard()¶
- getGuardSummary()¶
- getId()¶
Return the id of the object as a string.
This method should be used in preference to accessing an id attribute of an object directly. The getId method is public.
- getVarExprText(id)¶
- getVariableExprs()¶
get variable exprs for management UI
- getWorkflow()¶
- getWorkflowVariables()¶
get all variables that are available form workflow and not handled yet.
- guard = None¶
- manage_options = ({'action': 'manage_properties', 'label': 'Properties'}, {'action': 'manage_variables', 'label': 'Variables'})¶
- manage_properties(REQUEST, manage_tabs_message=None)¶
- manage_properties__roles__ = ('Manager',)¶
- manage_variables(REQUEST, manage_tabs_message=None)¶
- manage_variables__roles__ = ('Manager',)¶
- meta_type = 'Workflow Transition'¶
- new_state_id = ''¶
- script_name = None¶
- setProperties(title, new_state_id, trigger_type=1, script_name='', after_script_name='', actbox_name='', actbox_url='', actbox_category='workflow', actbox_icon='', props=None, REQUEST=None, description='')¶
- setVariables(ids=[], REQUEST=None)¶
set values for Variables set by this state
- title = ''¶
- trigger_type = 1¶
- var_exprs = None¶
- class Products.DCWorkflow.Transitions.Transitions(id)¶
Bases:
ContainerTab
A container for transition definitions
- addTransition(id, REQUEST=None)¶
- all_meta_types = ({'action': 'addTransition', 'name': 'Workflow Transition', 'permission': 'Manage portal'},)¶
- deleteTransitions(ids, REQUEST=None)¶
- manage_main(REQUEST, manage_tabs_message=None)¶
- manage_main__roles__ = ('Manager',)¶
- meta_type = 'Workflow Transitions'¶
- meta_types = ()¶
Variables
Module¶
Variables in a web-configurable workflow.
- class Products.DCWorkflow.Variables.VariableDefinition(id)¶
Bases:
SimpleItem
Variable definition
- default_expr = None¶
- default_value = ''¶
- description = ''¶
- for_catalog = 1¶
- for_status = 1¶
- getDefaultExprText()¶
- getInfoGuard()¶
- getInfoGuardSummary()¶
- info_guard = None¶
- manage_options = ({'action': 'manage_properties', 'label': 'Properties'},)¶
- manage_properties(REQUEST, manage_tabs_message=None)¶
- manage_properties__roles__ = ('Manager',)¶
- meta_type = 'Workflow Variable'¶
- setProperties(description, default_value='', default_expr='', for_catalog=0, for_status=0, update_always=0, props=None, REQUEST=None)¶
- update_always = 1¶
- class Products.DCWorkflow.Variables.Variables(id)¶
Bases:
ContainerTab
A container for variable definitions
- addVariable(id, REQUEST=None)¶
- all_meta_types = ({'action': 'addVariable', 'name': 'Workflow Variable', 'permission': 'Manage portal'},)¶
- deleteVariables(ids, REQUEST=None)¶
- getStateVar()¶
- manage_main(REQUEST, manage_tabs_message=None)¶
- manage_main__roles__ = ('Manager',)¶
- meta_type = 'Workflow Variables'¶
- meta_types = ()¶
- setStateVar(id, REQUEST=None)¶
WorkflowUIMixin
Module¶
Web-configurable workflow UI.
- class Products.DCWorkflow.WorkflowUIMixin.WorkflowUIMixin¶
Bases:
object
- addGroup(group, RESPONSE=[], REQUEST=[])¶
Adds a group by name.
- addGroup__roles__¶
PermissionRole C implementation
- addManagedPermission(p, REQUEST=[])¶
Adds to the list of permissions to manage.
- addManagedPermission__roles__¶
PermissionRole C implementation
- delGroups(groups, RESPONSE=[], REQUEST=[])¶
Removes groups by name.
- delGroups__roles__¶
PermissionRole C implementation
- delManagedPermissions(ps, REQUEST=[])¶
Removes from the list of permissions to manage.
- delManagedPermissions__roles__¶
PermissionRole C implementation
- getAvailableGroups()¶
Returns a list of available group names.
- getAvailableGroups__roles__¶
PermissionRole C implementation
- getAvailableRoles()¶
Returns the acquired roles mixed with base_cms roles.
- getAvailableRoles__roles__¶
PermissionRole C implementation
- getGroups()¶
Returns the names of groups managed by this workflow.
- getGroups__roles__¶
PermissionRole C implementation
- getGuard()¶
Returns the initiation guard.
If no init guard has been created, returns a temporary object.
- getGuard__roles__¶
PermissionRole C implementation
- getPossiblePermissions()¶
Returns the list of all permissions that can be managed.
- getPossiblePermissions__roles__¶
PermissionRole C implementation
- getRoles()¶
Returns the list of roles managed by this workflow.
- getRoles__roles__¶
PermissionRole C implementation
- guardExprDocs()¶
Returns documentation on guard expressions.
- guardExprDocs__roles__ = None¶
- manage_groups = <PageTemplateFile at workflow_groups>¶
- manage_groups__roles__ = ('Manager',)¶
- manage_permissions(REQUEST, manage_tabs_message=None)¶
Displays the form for choosing which permissions to manage.
- manage_permissions__roles__¶
PermissionRole C implementation
- manage_properties = <App.special_dtml.DTMLFile object>¶
- manage_properties__roles__¶
PermissionRole C implementation
- setProperties(title, manager_bypass=[], props=[], REQUEST=[], description=[])¶
Sets basic properties.
- setProperties__roles__¶
PermissionRole C implementation
- setRoles(roles, RESPONSE=[], REQUEST=[])¶
Changes the list of roles mapped to groups by this workflow.
- setRoles__roles__¶
PermissionRole C implementation
Worklists
Module¶
Worklists in a web-configurable workflow.
- class Products.DCWorkflow.Worklists.WorklistDefinition(id)¶
Bases:
SimpleItem
Worklist definiton
- actbox_category = 'global'¶
- actbox_icon = ''¶
- actbox_name = ''¶
- actbox_url = ''¶
- description = ''¶
- getAvailableCatalogVars()¶
- getGuard()¶
- getGuardSummary()¶
- getVarMatch(id)¶
- getVarMatchKeys()¶
- getVarMatchText(id)¶
- getWorkflow()¶
- guard = None¶
- manage_options = ({'action': 'manage_properties', 'label': 'Properties'},)¶
- manage_properties(REQUEST, manage_tabs_message=None)¶
- manage_properties__roles__ = ('Manager',)¶
- meta_type = 'Worklist'¶
- search(info=None, **kw)¶
Perform the search corresponding to this worklist
Returns sequence of ZCatalog brains - info is a mapping for resolving formatted string variable references - additional keyword/value pairs may be used to restrict the query
- setProperties(description, actbox_name='', actbox_url='', actbox_category='global', actbox_icon='', props=None, REQUEST=None)¶
- var_matches = None¶
- class Products.DCWorkflow.Worklists.Worklists(id)¶
Bases:
ContainerTab
A container for worklist definitions
- addWorklist(id, REQUEST=None)¶
- all_meta_types = ({'action': 'addWorklist', 'name': 'Worklist', 'permission': 'Manage portal'},)¶
- deleteWorklists(ids, REQUEST=None)¶
- manage_main(REQUEST, manage_tabs_message=None)¶
- manage_main__roles__ = ('Manager',)¶
- meta_type = 'Worklists'¶
- meta_types = ()¶
events
Module¶
- class Products.DCWorkflow.events.AfterTransitionEvent(obj, workflow, old_state, new_state, transition, status, kwargs)¶
Bases:
TransitionEvent
- class Products.DCWorkflow.events.BeforeTransitionEvent(obj, workflow, old_state, new_state, transition, status, kwargs)¶
Bases:
TransitionEvent
- class Products.DCWorkflow.events.TransitionEvent(obj, workflow, old_state, new_state, transition, status, kwargs)¶
Bases:
ObjectEvent
exportimport
Module¶
DCWorkflow export / import support.
- class Products.DCWorkflow.exportimport.DCWorkflowDefinitionBodyAdapter(context, environ)¶
Bases:
BodyAdapterBase
Body im- and exporter for DCWorkflowDefinition.
- property body¶
Export the object as a file body.
- mime_type = 'text/xml'¶
- suffix = '/definition.xml'¶
- class Products.DCWorkflow.exportimport.WorkflowDefinitionConfigurator(obj)¶
Bases:
Acquirer
Synthesize XML description of site’s workflows.
- generateWorkflowXML()¶
Pseudo API.
- generateWorkflowXML__roles__¶
PermissionRole C implementation
- getWorkflowInfo(workflow_id)¶
Return a mapping describing a given workflow.
o Keys in the mappings:
‘id’ – the ID of the workflow within the tool
‘meta_type’ – the workflow’s meta_type
‘title’ – the workflow’s title property
‘description’ – the workflow’s description property
- o See ‘_extractDCWorkflowInfo’ below for keys present only for
DCWorkflow definitions.
- getWorkflowInfo__roles__¶
PermissionRole C implementation
- getWorkflowScripts()¶
Get workflow scripts information
- getWorkflowScripts__roles__¶
PermissionRole C implementation
- parseWorkflowXML(xml, encoding='utf-8')¶
Pseudo API.
- parseWorkflowXML__roles__¶
PermissionRole C implementation
interfaces
Module¶
DCWorkflow interfaces.
- interface Products.DCWorkflow.interfaces.IAfterTransitionEvent¶
Extends:
Products.DCWorkflow.interfaces.ITransitionEvent
An event that’s fired after a workflow transition.
- interface Products.DCWorkflow.interfaces.IBeforeTransitionEvent¶
Extends:
Products.DCWorkflow.interfaces.ITransitionEvent
An event fired before a workflow transition.
- interface Products.DCWorkflow.interfaces.IDCWorkflowDefinition¶
Web-configurable workflow definition.
- interface Products.DCWorkflow.interfaces.ITransitionEvent¶
Extends:
zope.interface.interfaces.IObjectEvent
An event that’s fired upon a workflow transition.
- kwargs¶
Any keyword arguments passed to doActionFor() when the transition was invoked
- new_state¶
The state definition of the workflow state before after transition
- old_state¶
The state definition of the workflow state before the transition
- status¶
The status dict of the object.
- transition¶
The transition definition taking place. May be None if this is the ‘transition’ to the initial state.
- workflow¶
The workflow definition triggering the transition
permissions
Module¶
DCWorkflow product permissions
testing
Module¶
Unit test layers.
- class Products.DCWorkflow.testing.ExportImportZCMLLayer¶
Bases:
ZopeLite
- classmethod setUp()¶
Brings up the ZopeLite environment.
- classmethod tearDown()¶
ZopeLite doesn’t support tear down.
We don’t raise NotImplementedError to avoid triggering the testrunner’s “resume layer” mechanism.
See zope.testrunner-layers-ntd.txt
utils
Module¶
Some common utilities.
- Products.DCWorkflow.utils.ac_inherited_permissions(ob, all=0)¶
- Products.DCWorkflow.utils.modifyRolesForGroup(ob, group, grant_roles, managed_roles)¶
Modifies local roles for one group.
- Products.DCWorkflow.utils.modifyRolesForPermission(ob, pname, roles)¶
Modifies multiple role to permission mappings. roles is a list to acquire, a tuple to not acquire.