Skip to content
Projects
Groups
Snippets
Help
Loading...
Help
Support
Keyboard shortcuts
?
Submit feedback
Contribute to GitLab
Sign in / Register
Toggle navigation
erp5
Project overview
Project overview
Details
Activity
Releases
Repository
Repository
Files
Commits
Branches
Tags
Contributors
Graph
Compare
Issues
0
Issues
0
List
Boards
Labels
Milestones
Merge Requests
0
Merge Requests
0
CI / CD
CI / CD
Pipelines
Jobs
Schedules
Analytics
Analytics
CI / CD
Repository
Value Stream
Wiki
Wiki
Snippets
Snippets
Members
Members
Collapse sidebar
Close sidebar
Activity
Graph
Create a new issue
Jobs
Commits
Issue Boards
Open sidebar
Carlos Ramos Carreño
erp5
Commits
74e5ca9b
Commit
74e5ca9b
authored
Mar 31, 2015
by
wenjie.zheng
Browse files
Options
Browse Files
Download
Email Patches
Plain Diff
InteractionWorkflow.py: add initializeDocument and _updateWorkflowHistory.
parent
2a059047
Changes
1
Hide whitespace changes
Inline
Side-by-side
Showing
1 changed file
with
45 additions
and
3 deletions
+45
-3
product/ERP5Workflow/Document/InteractionWorkflow.py
product/ERP5Workflow/Document/InteractionWorkflow.py
+45
-3
No files found.
product/ERP5Workflow/Document/InteractionWorkflow.py
View file @
74e5ca9b
...
...
@@ -43,6 +43,7 @@ from Products.DCWorkflow.Expression import StateChangeInfo
from
Products.ERP5Type.Workflow
import
addWorkflowFactory
from
Products.CMFActivity.ActiveObject
import
ActiveObject
from
Products.ERP5Type.patches.Expression
import
Expression_createExprContext
from
Products.ERP5Type.Globals
import
PersistentMapping
_MARKER
=
[]
...
...
@@ -79,6 +80,32 @@ class InteractionWorkflow(XMLObject):
PropertySheet
.
InteractionWorkflow
,
)
def
initializeDocument
(
self
,
document
):
"""
Set initial state on the Document
zwj:is Interaction Workflow called during the intialization of the object?
"""
state_bc_id
=
'state'
# document.setCategoryMembership(state_bc_id, self.getSource())
object
=
self
.
getStateChangeInformation
(
document
,
self
.
getSourceValue
())
# Initialize workflow history
status_dict
=
{
state_bc_id
:
'current'
}
variable_list
=
self
.
objectValues
(
portal_type
=
'Variable'
)
former_status
=
None
ec
=
Expression_createExprContext
(
StateChangeInfo
(
document
,
self
,
former_status
))
for
variable
in
variable_list
:
if
variable
.
for_status
==
0
:
continue
if
variable
.
default_expr
is
not
None
:
expr
=
Expression
(
variable
.
default_expr
)
value
=
expr
(
ec
)
else
:
value
=
variable
.
getInitialValue
(
object
=
object
)
status_dict
[
variable
.
getId
()]
=
value
self
.
_updateWorkflowHistory
(
document
,
status_dict
)
security
.
declareProtected
(
Permissions
.
View
,
'getChainedPortalTypeList'
)
def
getChainedPortalTypeList
(
self
):
"""Returns the list of portal types that are chained to this
...
...
@@ -146,9 +173,6 @@ class InteractionWorkflow(XMLObject):
tdef
=
self
.
_getOb
(
method_id
,
None
)
return
tdef
is
not
None
and
self
.
_checkTransitionGuard
(
tdef
,
ob
)
def
execute
(
self
):
### zwj: execute interaction, check Transition.py/execute
pass
def
_before_commit
(
self
,
sci
,
script_name
,
security_manager
):
# check the object still exists before calling the script
ob
=
sci
.
object
...
...
@@ -190,3 +214,21 @@ class InteractionWorkflow(XMLObject):
def
getValidRoleList
(
self
):
return
sorted
(
self
.
getPortalObject
().
getDefaultModule
(
'acl_users'
).
valid_roles
())
def
_updateWorkflowHistory
(
self
,
document
,
status_dict
):
"""
Change the state of the object.
"""
# Create history attributes if needed
if
getattr
(
aq_base
(
document
),
'workflow_history'
,
None
)
is
None
:
document
.
workflow_history
=
PersistentMapping
()
# XXX this _p_changed is apparently not necessary
document
.
_p_changed
=
1
# Add an entry for the workflow in the history
workflow_key
=
self
.
_generateHistoryKey
()
if
not
document
.
workflow_history
.
has_key
(
workflow_key
):
document
.
workflow_history
[
workflow_key
]
=
()
# Update history
document
.
workflow_history
[
workflow_key
]
+=
(
status_dict
,)
Write
Preview
Markdown
is supported
0%
Try again
or
attach a new file
Attach a file
Cancel
You are about to add
0
people
to the discussion. Proceed with caution.
Finish editing this message first!
Cancel
Please
register
or
sign in
to comment