def load_issue(): """ load_[wf_code] """ category = create_category('5f31d065-00cc-0020-beea-641f0a670010', 'HR') process = create_process('issue', 'Issue', category=category) create_node('5f31d065-00a0-0020-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0020-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0020-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0020-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0020-beea-641f0a670050', process, 'A1', operators='[owner]') create_transition('5f31d065-00e0-0020-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0020-beea-641f0a670020', process, 'A1,', 'Completed')
def load_issue(): """load_[wf_code]""" category = create_category("5f31d065-00cc-0020-beea-641f0a670010", "HR") process = create_process("purchase", "Purchase", category=category) create_node( "5f31d065-00a0-0030-beea-641f0a670010", process, "Draft", status="draft", ) create_node( "5f31d065-00a0-0030-beea-641f0a670020", process, "Given up", status="given up", ) create_node( "5f31d065-00a0-0030-beea-641f0a670030", process, "Rejected", status="rejected", ) create_node( "5f31d065-00a0-0030-beea-641f0a670040", process, "Completed", status="completed", ) create_node( "5f31d065-00a0-0030-beea-641f0a670050", process, "A1", operators="[owner]", ) create_transition("5f31d065-00e0-0030-beea-641f0a670010", process, "Draft,", "A1") create_transition("5f31d065-00e0-0030-beea-641f0a670020", process, "A1,", "Completed")
def load_simplewf(): category = create_category('5f31d065-00cc-0020-be00-641f0a670010', 'IT') ext_data_buy_computer = { 'template': """Brand: Price: Other requirements: """ } process = create_process('simplewf__buy_computer', 'Buy computer', category=category, ext_data=ext_data_buy_computer) # Nodes create_node('5f31d065-00a0-0010-be00-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0010-be00-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0010-be00-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0010-be00-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0010-be00-641f0a670060', process, 'Department Leader', operators='[o.created_by.get_department().leader]') create_node('5f31d065-00a0-0010-be00-641f0a670065', process, 'IT', operators='[it]') create_transition('5f31d667-0010-0020-be00-641f0a670010', process, 'Draft,', 'Department Leader') create_transition('5f31d667-0010-0020-be00-641f0a670020', process, 'Department Leader', 'IT') create_transition('5f31d667-0010-0020-be00-641f0a670030', process, 'IT,', 'Completed') ext_data_issue = {'template': """From: Requirements:"""} process = create_process('simplewf__issue', 'Issue', category=category, ext_data=ext_data_issue) create_node('5f31d667-00a0-0020-be00-641f0a670010', process, 'Draft', status='draft') create_node('5f31d667-00a0-0020-be00-641f0a670020', process, 'Given up', status='given up') create_node('5f31d667-00a0-0020-be00-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d667-00a0-0020-be00-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0020-be00-641f0a670060', process, 'IT Leader', operators='dept_direct_leaders d[it]') create_node('5f31d065-00a0-0020-be00-641f0a670070', process, 'IT', operators='[it]') create_transition('5f31d667-0020-0020-be00-641f0a670010', process, 'Draft,', 'IT Leader') create_transition('5f31d667-0020-0020-be00-641f0a670020', process, 'IT Leader', 'IT') create_transition('5f31d667-0020-0020-be00-641f0a670030', process, 'IT,', 'Completed')
def load_leave(): """ load_[wf_code] """ category = create_category('5f31d065-00cc-0010-beea-641f0a670010', 'HR') process = create_process('leave', 'Leave', category=category) create_node('5f31d065-00a0-0010-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0010-beea-641f0a670010', process, 'Draft', status='draft') # test for update create_node('5f31d065-00a0-0010-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0010-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0010-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0010-beea-641f0a670050', process, 'A1', operators='[owner]') create_node('5f31d065-00a0-0010-beea-641f0a670060', process, 'A2', operators='[tom]') create_node('5f31d065-00a0-0010-beea-641f0a670065', process, 'A2B1', operators='[tom],[owner]') create_node('5f31d065-00a0-0010-beea-641f0a670070', process, 'A3', operators='[vicalloy]') create_node('5f31d065-00a0-0010-beea-641f0a670080', process, 'A4', operators='[hr]') create_transition('5f31d065-00e0-0010-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0010-beea-641f0a670020', process, 'A1,', 'A2') create_transition( '5f31d065-00e0-0010-beea-641f0a670030', process, 'A2,', 'A3', condition='o.leave_days<7 # days<7') create_transition( '5f31d065-00e0-0010-beea-641f0a670040', process, 'A2,', 'A2B1', condition='o.leave_days>=7 # days>=7') create_transition( '5f31d065-00e0-0010-beea-641f0a670050', process, 'A2B1,', 'A3', routing_rule='joint', can_auto_agree=False) create_transition('5f31d065-00e0-0010-beea-641f0a670060', process, 'A3,', 'A4') create_transition( '5f31d065-00e0-0010-beea-641f0a670070', process, 'A4,', 'Completed', app='Customized URL', app_param='wf_execute_transition {{wf_code}} c')
def load_warning(): # 拟定--------cgl---------cry--------归档 """ load_[wf_code] """ category = create_category('5f31d065-00cc-0160-beea-641f0a670010', '告警通知单') process = create_process('warning', 'Warning', category=category) create_node('5f31d065-00a0-0160-beea-641f0a670010', process, 'Draft', status='拟定') create_node('5f31d065-00a0-0160-beea-641f0a670020', process, 'Given up', status='放弃') create_node('5f31d065-00a0-0160-beea-641f0a670030', process, 'Rejected', status='拒绝') create_node('5f31d065-00a0-0160-beea-641f0a670040', process, 'Completed', status='归档') create_node('5f31d065-00a0-0160-beea-641f0a670050', process, 'A1', operators='[cgl]') create_node('5f31d065-00a0-0160-beea-641f0a670060', process, 'A2', operators='[lyh]') create_transition('5f31d065-00e0-0160-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0160-beea-641f0a670020', process, 'A1,', 'A2') create_transition('5f31d065-00e0-0160-beea-641f0a670030', process, 'A2,', 'Completed')
def node_add(request, pp_id): user = request.session['mylogin'] myprocess = MyProcess.objects.filter(id=pp_id).first() mynum = request.POST['mynum'] # print(myprocess.company,'myprocess.company') netstructure = NetStructure.objects.filter( place=myprocess.company, is_activate=1).first() # 查询网络结构信息 if mynum == '1': # 如果前端用户提交了节点信息 node_name = request.POST['node_name'] # 节点名称 job_name = request.POST['job_name'] # 岗位名称 resource = request.POST['choice'] # 流程流转类型 can_give_up = request.POST['can_give_up'] # can_edit = request.POST['can_edit'] # if resource == '0': resource = '监督网络' job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人帐号 job_name = person_name ''' # 1为生技部主任 2.监督专责 3.执行人 if job_name == '生技部主任': job_name = 1 if job_name == '监督专责': job_name = 2 if job_name == '执行人': job_name = 3 # print(job_name) # print(netstructure) # print(NetStructure.objects.filter(place=myprocess.company,is_activate=1)) job = NetStaff.objects.filter(net_name=job_name, netstructure=netstructure).first() # 查询网络人员 # print(job,"==========2222222") if job != None: job = job.id userdata = [] cursor = connection.cursor() # 从角色,用户及其中间表中取他们相对应的关系 cursor.execute( "select myuser_id from netstaff_netstaff_user where netstaff_id = '%s' " % job) for row in cursor.fetchall(): usertable = { 'user': row[0], } userdata.append(usertable) cursor.close() myuser_list = userdata job_name = '' for user in myuser_list: new_user = MyUser.objects.filter(id=user['user']).first() job_name += new_user.user.username + ',' job_name = job_name[:-1] ''' elif resource == '1': resource = '行政岗位' job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人 job_name = person_name elif resource == '2': resource = '审批人' ''' job_name = MyUser.objects.filter(name=job_name).first().user.username ''' job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人 job_name = person_name if resource == '3': # 如果选择是责任组 resource = '责任组' job_name = '' # 工作流审批人变量 duty_group_id = request.POST.get('duty_group_name', '') # 责任组id # 获取该责任组的下属人员 duty_group_obj = MyGroup.objects.filter( id=duty_group_id).first() # 责任组对象 duty_user_obj_list = duty_group_obj.duty_user.all() # 责任人员列表 operators_job_str = '' for duty_user_obj in duty_user_obj_list: operators_job_str += '[%s],' % duty_user_obj.number # 形成工作流模块需要的数据形式 [xxx],[xxxx],[xxxx] operators_job_str = operators_job_str[:-1] # 去除字符串最后的逗号 node = create_node(uuid.uuid1(), myprocess.process, node_name, operators='%s' % operators_job_str) node.can_edit = can_edit node.can_give_up = can_give_up mynode = MyNode.objects.create(node_name=node_name, resource=resource, myprocess=myprocess, operators_job='%s' % operators_job_str, node=node) mynode.save() else: node = create_node(uuid.uuid1(), myprocess.process, node_name, operators='[%s]' % job_name) node.can_edit = can_edit node.can_give_up = can_give_up mynode = MyNode.objects.create(node_name=node_name, resource=resource, myprocess=myprocess, operators_job='[%s]' % job_name, node=node) mynode.save() mytransition_list = Transition.objects.filter( is_active=1, process=myprocess.process) # if mytransition_list == None: if len(mytransition_list) == 0: create_transition(uuid.uuid1(), myprocess.process, 'Draft', node_name) # 草稿 create_transition(uuid.uuid1(), myprocess.process, node_name, 'Completed') # 完成 else: for transition in mytransition_list: if transition.output_node.name == 'Completed': # 如果最后一个节点‘完成’节点 transition.output_node = node # 将最后一个节点变成新增加的节点 transition.save() # 保存节点 create_transition(uuid.uuid1(), myprocess.process, node_name, 'Completed') # 创建新的‘完成’节点 elif mynum == '0': # 未提交节点信息,只提交工作流程 pass return HttpResponseRedirect('/wf/' + str(myprocess.id) + '/mywf_detail/?action=new&menuid=47')
def mywf_add(request): action = request.GET.get('action') menuid = request.GET.get('menuid') power = checkpower(menuid, request.session['mylogin'], request.session['role_id']) request.session['powerdata'] = power app_names = LBWF_APPS.keys() user = request.session['mylogin'] place = request.session['mylogin'].myuser.company # job_list =['生技部主任','监督专责','执行人'] node_name_list2 = { '放弃': 'Given up', '拒绝': 'Rejected', '草稿': 'Draft', '归档': 'Completed' } supervision_major_list = SupervisionType.objects.all() if user.is_superuser: company_list = Company.objects.all() else: company_list = Company.objects.filter(comname=place.comname) first_node_list = ['Draft'] next_node_list = ['Completed'] app_object_list = RegularWorkPlan.objects.filter(place=place, is_activate=1) if request.method == 'GET': return render(request, 'myworkflow/mywf_add.html', locals()) elif request.method == 'POST': companyname = request.POST['companyname'] # 公司名称 company = Company.objects.filter(comname=companyname).first() appname_key = request.POST['appname'] appname = LBWF_APPS.get(appname_key) # 获取app名称 myprocess_name = request.POST['myprocess_name'] supervision_major = request.POST['supervision_major'] # 监督专业 mynum = request.POST['mynum'] # 判断是否新增节点 app_object_id = request.POST['app_object_id'] # 获取定期工作策划编码 netstructure = NetStructure.objects.filter( place=company, is_activate=1).first() # 获取网络结构信息 # print(NetStructure.objects.filter(place=company, is_activate=1),"=======111111") ''' category = create_category('5f31d065-00cc-0100-beea-641f0a670010', '月度工作执行') process = create_process('monworkexe', 'Monworkexe', category=category) create_node('5f31d065-00a0-0100-beea-641f0a670010', process, 'Draft', status='拟定') create_node('5f31d065-00a0-0100-beea-641f0a670050', process, 'A1', operators='[cgl]') create_transition('5f31d065-00e0-0100-beea-641f0a670010', process, 'Draft,', 'A1') ''' category_list = ProcessCategory.objects.filter(is_active=1) mycategory = '' category_namelist = [] for category in category_list: category_namelist.append(category.name) if appname_key in category_namelist: mycategory = ProcessCategory.objects.filter( name=appname_key).first() else: mycategory = create_category(uuid.uuid1(), appname_key) # num = datetime.now().strftime("%Y%m%d%H%M%S") process = create_process(appname + num, appname.capitalize(), category=mycategory) # 创建process company = Company.objects.filter(comname=companyname).first() new_process = '' if supervision_major == '0': new_process = MyProcess.objects.create( company=company, myprocess_name=myprocess_name, process=process, app_name=appname_key, app_object_id=app_object_id) # 创建myprocess else: supervision_major = SupervisionType.objects.filter( name=supervision_major).first() new_process = MyProcess.objects.create( company=company, supervision_major=supervision_major, myprocess_name=myprocess_name, process=process, app_name=appname_key, app_object_id=app_object_id) # 创建myprocess app = App.objects.filter(name=appname).first() node1 = create_node(uuid.uuid1(), process, 'Draft', status='draft') node1.can_edit = 1 mynode = MyNode.objects.create(node_name='拟定', resource='无', myprocess=new_process, node=node1) node2 = create_node(uuid.uuid1(), process, 'Given up', status='given up') mynode = MyNode.objects.create(node_name='放弃', resource='无', myprocess=new_process, node=node2) node3 = create_node(uuid.uuid1(), process, 'Rejected', status='rejected') mynode = MyNode.objects.create(node_name='拒绝', resource='无', myprocess=new_process, node=node3) node4 = create_node(uuid.uuid1(), process, 'Completed', status='completed') mynode = MyNode.objects.create(node_name='归档', resource='无', myprocess=new_process, node=node4) if mynum == '1': # 如果前端用户提交了节点信息 node_name = request.POST['node_name'] # 节点名称 job_name = request.POST['job_name'] # 岗位名称 resource = request.POST['choice'] # 流程流转类型 can_give_up = request.POST['can_give_up'] # 可以放弃 can_edit = request.POST['can_edit'] # 可以编辑 if resource == '0': resource = '监督网络' # 1为生技部主任 2.监督专责 3.执行人 job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人帐号 job_name = person_name ''' print(job_name,"====2=====22===") job = NetStaff.objects.filter(net_name=job_name,netstructure=netstructure).first() if job != None: job = job.id userdata=[] cursor = connection.cursor() # 从角色,用户及其中间表中取他们相对应的关系 cursor.execute( "select myuser_id from netstaff_netstaff_user where netstaff_id = '%s' " % job) for row in cursor.fetchall(): usertable = { 'user': row[0], } userdata.append(usertable) cursor.close() myuser_list = userdata job_name = '' for user in myuser_list: new_user = MyUser.objects.filter(id=user['user']).first() job_name += new_user.user.username + ',' job_name = job_name[:-1] ''' elif resource == '1': resource = '行政岗位' ''' # job = Job.objects.filter(jobname=job_name,company=company).first() job = Department.objects.filter(departname=job_name,company=company).first() # myuser_list = MyUser.objects.filter(jobname=job) myuser_list = MyUser.objects.filter(department=job) job_name='' for user in myuser_list: job_name += user.user.username+',' job_name = job_name[:-1]''' job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人 job_name = person_name elif resource == '2': resource = '审批人' ''' job_name = MyUser.objects.filter(name=job_name).first().user.username ''' job_name = '' # 工作流审批人变量 person_name = request.POST.get('person_name', '') # 审批人帐号 job_name = person_name if resource == '3': # 如果选择是责任组 resource = '责任组' job_name = '' # 工作流审批人变量 duty_group_id = request.POST.get('duty_group_name', '') # 责任组id # 获取该责任组的下属人员 duty_group_obj = MyGroup.objects.filter( id=duty_group_id).first() # 责任组对象 duty_user_obj_list = duty_group_obj.duty_user.all() # 责任人员列表 operators_job_str = '' for duty_user_obj in duty_user_obj_list: operators_job_str += '[%s],' % duty_user_obj.number # 形成工作流模块需要的数据形式 [xxx],[xxxx],[xxxx] operators_job_str = operators_job_str[:-1] # 去除字符串最后的逗号 node = create_node(uuid.uuid1(), process, node_name, operators='%s' % operators_job_str) node.can_edit = can_edit node.can_give_up = can_give_up mynode = MyNode.objects.create(node_name=node_name, resource=resource, myprocess=new_process, operators_job='%s' % operators_job_str, node=node) mynode.save() else: node = create_node(uuid.uuid1(), process, node_name, operators='[%s]' % job_name) node.can_edit = can_edit node.can_give_up = can_give_up mynode = MyNode.objects.create(node_name=node_name, resource=resource, myprocess=new_process, operators_job='[%s]' % job_name, node=node) mynode.save() # 保存信息到transition表 create_transition(uuid.uuid1(), process, 'Draft', node_name) create_transition(uuid.uuid1(), process, node_name, 'Completed') # print("33333") elif mynum == '0': # 未提交节点信息,只提交工作流程 # print("44444") pass return HttpResponseRedirect('/wf/' + str(new_process.id) + '/mywf_detail/?action=new&menuid=47')
def load_regularwork(): category = create_category('5f31d065-00cc-0030-beea-641f0a670010', '定期工作任务') process = create_process('regularworktask', 'Regularworktask', category=category) create_node('5f31d065-00a0-0030-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0030-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0030-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0030-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0030-beea-641f0a670050', process, 'A1', operators='[clp]') create_node('5f31d065-00a0-0030-beea-641f0a670060', process, 'A2', operators='[cgl]') create_node('5f31d065-00a0-0030-beea-641f0a670070', process, 'A3', operators='[lyh]') create_transition('5f31d065-00e0-0030-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0030-beea-641f0a670020', process, 'A1,', 'A2') create_transition('5f31d065-00e0-0030-beea-641f0a670030', process, 'A2,', 'A3') create_transition('5f31d065-00e0-0030-beea-641f0a670040', process, 'A3,', 'Completed')
def load_monworkplan(): # 拟定--------cgl---------cry--------归档 """ load_[wf_code] """ category = create_category('5f31d065-00cc-0090-beea-641f0a670010', '月度计划与总结') process = create_process('monworkplan', 'Monworkplan', category=category) create_node('5f31d065-00a0-0090-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0090-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0090-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0090-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0090-beea-641f0a670050', process, 'A1', operators='[clp]') create_node('5f31d065-00a0-0090-beea-641f0a670060', process, 'A2', operators='[cgl]') create_node('5f31d065-00a0-0090-beea-641f0a670070', process, 'A3', operators='[lyh]') create_transition('5f31d065-00e0-0090-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0090-beea-641f0a670020', process, 'A1,', 'A2') create_transition('5f31d065-00e0-0090-beea-641f0a670030', process, 'A2,', 'A3') create_transition('5f31d065-00e0-0090-beea-641f0a670040', process, 'A3,', 'Completed')
def load_simplewf(): category = create_category("5f31d065-00cc-0020-beea-641f0a670010", "HR") ext_data_a = {"template": """# WorkFlow A Content A"""} process = create_process( "simplewf__A", "Simple Workflow: A", category=category, ext_data=ext_data_a, ) create_node( "5f31d666-00a0-0020-beea-641f0a670010", process, "Draft", status="draft", ) create_node( "5f31d666-00a0-0020-beea-641f0a670020", process, "Given up", status="given up", ) create_node( "5f31d666-00a0-0020-beea-641f0a670030", process, "Rejected", status="rejected", ) create_node( "5f31d666-00a0-0020-beea-641f0a670040", process, "Completed", status="completed", ) create_node( "5f31d666-00a0-0020-beea-641f0a670050", process, "A1", operators="[owner]", ) create_transition("5f31d666-00e0-0020-beea-641f0a670010", process, "Draft,", "A1") create_transition("5f31d666-00e0-0020-beea-641f0a670020", process, "A1,", "Completed") ext_data_b = {"template": """# WorkFlow B Content B"""} process = create_process( "simplewf__B", "Simple Workflow: B", category=category, ext_data=ext_data_b, ) create_node( "5f31d667-00a0-0020-beea-641f0a670010", process, "Draft", status="draft", ) create_node( "5f31d667-00a0-0020-beea-641f0a670020", process, "Given up", status="given up", ) create_node( "5f31d667-00a0-0020-beea-641f0a670030", process, "Rejected", status="rejected", ) create_node( "5f31d667-00a0-0020-beea-641f0a670040", process, "Completed", status="completed", ) create_node( "5f31d667-00a0-0020-beea-641f0a670050", process, "A1", operators="[owner]", ) create_transition("5f31d667-00e0-0020-beea-641f0a670010", process, "Draft,", "A1") create_transition("5f31d667-00e0-0020-beea-641f0a670020", process, "A1,", "Completed")
def load_regularwork(): category = create_category('5f31d065-00cc-0030-beea-641f0a670010', '定期工作策划') process = create_process('regularworkplan', 'Regularworkplan', category=category) create_node('5f31d065-00a0-0030-beea-641f0a670010', process, 'Draft', status='草稿') create_node('5f31d065-00a0-0030-beea-641f0a670020', process, 'Given up', status='放弃') create_node('5f31d065-00a0-0030-beea-641f0a670030', process, 'Rejected', status='拒绝') create_node('5f31d065-00a0-0030-beea-641f0a670040', process, 'Completed', status='归档') create_node('5f31d065-00a0-0030-beea-641f0a670050', process, 'A1', operators='[admin]') create_node('5f31d065-00a0-0030-beea-641f0a670060', process, 'A2', operators='[admin]') create_transition('5f31d065-00e0-0030-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d065-00e0-0030-beea-641f0a670020', process, 'A1,', 'A2') create_transition('5f31d065-00e0-0030-beea-641f0a670030', process, 'A2,', 'Completed')
def load_leave(): """ load_[wf_code] """ category = create_category('5f31d065-00cc-0010-beea-641f0a670010', 'HR') process = create_process('leave', 'Leave', category=category) # Nodes create_node('5f31d065-00a0-0010-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d065-00a0-0010-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d065-00a0-0010-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d065-00a0-0010-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d065-00a0-0010-beea-641f0a670050', process, 'Staff Leader', operators='[o.created_by.leader]') create_node('5f31d065-00a0-0010-beea-641f0a670060', process, 'Department Leader', operators='[o.created_by.get_department().leader]') create_node('5f31d065-00a0-0010-beea-641f0a670065', process, 'HR', operators='r[hr]') create_node('5f31d065-00a0-0010-beea-641f0a670070', process, 'CEO', operators='[ceo]') # Transitions create_transition('5f31d065-00e0-0010-beea-641f0a670010', process, 'Draft', 'Staff Leader') create_transition('5f31d065-00e0-0010-beea-641f0a670020', process, 'Staff Leader', 'Department Leader') create_transition('5f31d065-00e0-0010-beea-641f0a670030', process, 'Department Leader', 'HR', condition='o.leave_days<7 # days<7') create_transition('5f31d065-00e0-0010-beea-641f0a670040', process, 'Department Leader', 'CEO', condition='o.leave_days>=7 # days>=7') create_transition('5f31d065-00e0-0010-beea-641f0a670045', process, 'CEO', 'HR') create_transition('5f31d065-00e0-0010-beea-641f0a670050', process, 'HR', 'Completed', app='Customized URL', app_param='wf_execute_transition {{wf_code}} c')
def load_simplewf(): category = create_category('5f31d065-00cc-0020-beea-641f0a670010', 'HR') ext_data_a = {'template': """# WorkFlow A Content A"""} process = create_process('simplewf__A', 'Simple Workflow: A', category=category, ext_data=ext_data_a) create_node('5f31d666-00a0-0020-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d666-00a0-0020-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d666-00a0-0020-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d666-00a0-0020-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d666-00a0-0020-beea-641f0a670050', process, 'A1', operators='[owner]') create_transition('5f31d666-00e0-0020-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d666-00e0-0020-beea-641f0a670020', process, 'A1,', 'Completed') ext_data_b = {'template': """# WorkFlow B Content B"""} process = create_process('simplewf__B', 'Simple Workflow: B', category=category, ext_data=ext_data_b) create_node('5f31d667-00a0-0020-beea-641f0a670010', process, 'Draft', status='draft') create_node('5f31d667-00a0-0020-beea-641f0a670020', process, 'Given up', status='given up') create_node('5f31d667-00a0-0020-beea-641f0a670030', process, 'Rejected', status='rejected') create_node('5f31d667-00a0-0020-beea-641f0a670040', process, 'Completed', status='completed') create_node('5f31d667-00a0-0020-beea-641f0a670050', process, 'A1', operators='[owner]') create_transition('5f31d667-00e0-0020-beea-641f0a670010', process, 'Draft,', 'A1') create_transition('5f31d667-00e0-0020-beea-641f0a670020', process, 'A1,', 'Completed')
def load_leave(): """load_[wf_code]""" category = create_category("5f31d065-00cc-0020-beea-641f0a670010", "HR") process = create_process("leave", "Leave", category=category) create_node( "5f31d065-00a0-0010-beea-641f0a670010", process, "Draft", status="draft", ) create_node( "5f31d065-00a0-0010-beea-641f0a670010", process, "Draft", status="draft", ) # test for update create_node( "5f31d065-00a0-0010-beea-641f0a670020", process, "Given up", status="given up", ) create_node( "5f31d065-00a0-0010-beea-641f0a670030", process, "Rejected", status="rejected", ) create_node( "5f31d065-00a0-0010-beea-641f0a670040", process, "Completed", status="completed", ) create_node( "5f31d065-00a0-0010-beea-641f0a670050", process, "A1", operators="[owner]", ) create_node( "5f31d065-00a0-0010-beea-641f0a670060", process, "A2", operators="[tom]", ) create_node( "5f31d065-00a0-0010-beea-641f0a670065", process, "A2B1", operators="[tom],[owner]", ) create_node( "5f31d065-00a0-0010-beea-641f0a670070", process, "A3", operators="[vicalloy]", ) create_node("5f31d065-00a0-0010-beea-641f0a670080", process, "A4", operators="[hr]") create_node( "5f31d065-00a0-0010-beea-641f0a670a10", process, "R1", operators="", node_type="router", ) create_transition("5f31d065-00e0-0010-beea-641f0a670010", process, "Draft,", "A1") create_transition("5f31d065-00e0-0010-beea-641f0a670020", process, "A1,", "A2") create_transition( "5f31d065-00e0-0010-beea-641f0a670030", process, "A2,", "A3", condition="o.leave_days<7 # days<7", ) create_transition( "5f31d065-00e0-0010-beea-641f0a670040", process, "A2,", "A2B1", condition="o.leave_days>=7 # days>=7", ) create_transition( "5f31d065-00e0-0010-beea-641f0a670050", process, "A2B1,", "A3", routing_rule="joint", can_auto_agree=False, ) create_transition("5f31d065-00e0-0010-beea-641f0a670060", process, "A3,", "A4") create_transition( "5f31d065-00e0-0010-beea-641f0a670070", process, "A4,", "R1", app="Customized URL", app_param="wf_execute_transition {{wf_code}} c", ) create_transition("5f31d065-00e0-0010-beea-641f0a670080", process, "R1,", "Completed")