Files
zhijie-ERP/plugin/wfactions.py
T

54 lines
1.2 KiB
Python
Raw Normal View History

2015-07-30 13:01:42 +08:00
# created at 15-6-30
# coding=utf-8
__author__ = 'zhugl'
class Operation(object):
APPROVE = 1
DENY = 3
TERMINATE = 4
class WorkflowAction(object):
name = ''
description = ''
def action(self,request,obj,node_config,operation=Operation.APPROVE):
"""
:param request:
:param obj:
:param node_config:
:return:
"""
class TestAction(WorkflowAction):
name = 'action.test'
def action(self,request,obj,node_config,operation=Operation.APPROVE):
print 'this is a workflow test action'
print 'request user is %s,current node is %s'%(request.user,node_config)
class WorkflowActionManager(object):
"""
"""
actions = {}
registed = False
def __init__(self):
if WorkflowActionManager.registed:
pass
else:
WorkflowActionManager.register(TestAction)
WorkflowActionManager.registed = True
@classmethod
def register(cls,action):
if cls.actions.get(action.name):
raise Exception('%s already exists,register failed'%action.name)
if issubclass(action,WorkflowAction):
WorkflowActionManager.actions[action.name] = action()