def index(): loginData = userLogin() if loginData['status'] == 1: return redirect(loginData['uri']) try: return render_template('index.html', userInfo=loginData['user']) except TemplateNotFound: abort(404)
def index(): loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) try: return render_template('index.html',userInfo=loginData['user']) except TemplateNotFound: abort(404)
def projectList(): """ 项目管理管理 """ # print request.args.items().__str__() # print request.form.items() loginData = userLogin() if loginData['status'] == 1: return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} ## 添加项目 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) enname = str(request.form['enname']) leader = int(request.form['leader']) ## check checkData = project.query.filter( or_(project.name == name, project.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该项目名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = project(name=name, enname=enname, user_id=leader) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除项目 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = project.query.filter(project.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 该项目不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 该项目删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 编辑项目 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) enname = str(request.form['enname']) leader = int(request.form['leader']) ## check checkData = project.query.filter(project.id != id).filter( or_(project.name == name, project.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该项目名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = project.query.filter(project.id == id).first() editData.name = name editData.enname = enname editData.leader = leader db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取项目选择框下拉列表 elif request.form.has_key( 'oper') and request.form['oper'] == "getProjects": allData = project.query.filter().all() if allData: projectStr = "" # 组合成适用于编辑框的select格式 for p in allData: if projectStr: projectStr = projectStr + ";" + str(p.id) + ":" + str( p.name) else: projectStr = str(p.id) + ":" + str(p.name) returnData['data'].append({ 'id': p.id, 'name': p.name, 'enname': p.enname }) returnData['message'] = projectStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = { "total": "0", "page": str(load_page), "records": "0", "data": [] } allData = project.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_cnname: allData = allData.filter( project.name.ilike('%%%s%%' % _search_cnname)) if _search_enname: allData = allData.filter( project.enname.ilike('%%%s%%' % _search_enname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime if not _mtime: _mtime = record.ctime tmpData = { 'id': record.id, 'name': record.name, 'enname': record.enname, 'leader': record.user.name, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('project.html', userInfo=loginData['user']) except TemplateNotFound: abort(404)
def caseHistory(): """ 我的审核工单 """ loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} caseview = 0 if request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = case.query.filter(case.createuser_id == loginData['user']['id']).filter(case.status.in_([10,11,12])) if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") if _search_cnname: allData = allData.filter(case.title.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: isAuditUser = 0 for auditUser in record.auditflow: if auditUser.user_id == loginData['user']['id']: isAuditUser = 1 break isExecUser = 0 for execUser in record.execflow: if execUser.user_id == loginData['user']['id']: isExecUser = 1 break isCreateUser = 0 if record.createuser_id == loginData['user']['id']: isCreateUser = 1 if isCreateUser == 0 and isAuditUser == 0 and isExecUser == 0: continue tmpData = {'id': record.id, 'title': record.title, 'casetype': record.casetype.name, 'status': record.status.label, 'ctime': str(record.ctime), } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") elif request.args.has_key('type') and request.args.get('type') == "view": case_id = int(request.args.get("caseID")) caseview = 1 viewData = {} getCase = case.query.filter(case.id == case_id).first() viewData.update({'case_id':getCase.id, 'case_title':getCase.title, 'case_createuser':getCase.createuser.name, 'case_result':getCase.result, 'case_content': getCase.content, 'case_status': getCase.status.value, 'case_status_label': getCase.status.label, 'case_ctime': getCase.ctime, 'case_type': getCase.casetype.name, }) viewData.update({'audit_user':[]}) for auditUser in getCase.auditflow: viewData['audit_user'].append({'name':auditUser.user_rs.name,'status':auditUser.status.value}) viewData.update({'exec_user': []}) for execUser in getCase.execflow: viewData['exec_user'].append({'name':execUser.user_rs.name,'status':execUser.status.value}) viewData.update({'operation_user': []}) for operationUser in getCase.operation: viewData['operation_user'].append({'name':operationUser.user_rs.name, 'operation_type':operationUser.status.label, 'content':operationUser.content, 'ctime':operationUser.ctime}) return render_template('caseHistory.html', userInfo=loginData['user'], caseview=caseview, viewData=viewData) else: pass try: return render_template('caseHistory.html',userInfo=loginData['user'],caseview=caseview) except TemplateNotFound: abort(404)
def caseExecute(): """ 我的执行工单 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} caseview = 0 ## 确认执行ok if request.form.has_key('oper') and request.form['oper'] == "caseExecOK": case_id = int(request.form['caseid']) getCase = case.query.filter(case.id == case_id).first() getCase.status = 4 db.session.add(getCase) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 5 addCaseOperation.content = "exec ok" db.session.add(addCaseOperation) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 执行no elif request.form.has_key('oper') and request.form['oper'] == "caseExecNO": case_id = int(request.form['caseid']) getCase = case.query.filter(case.id == case_id).first() getCase.status = 8 getCase.auditNum = 0 getCase.execNum = 0 db.session.add(getCase) ## 修改审核人状态 for auditFlow in getCase.auditflow: auditFlow.status = 0 db.session.add(auditFlow) ## 修改审核人状态 for execFlow in getCase.execflow: execFlow.status = 0 db.session.add(execFlow) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 6 addCaseOperation.content = "exec no" db.session.add(addCaseOperation) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 转发执行人 elif request.form.has_key('oper') and request.form['oper'] == "caseForwarding": case_id = int(request.form['caseid']) user_id = int(request.form['executor_id']) getCase = case.query.filter(case.id == case_id).first() getUser = user.query.filter(user.id == user_id).first() getExecflow = caseexec.query.filter(caseexec.case_id == case_id ).filter(caseexec.order == getCase.execNum).first() getExecflow.user_id = user_id db.session.add(getExecflow) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 9 addCaseOperation.content = str(loginData['user']['name'])+" Forwarding to "+ str(getUser.name) db.session.add(addCaseOperation) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 执行 elif request.form.has_key('oper') and request.form['oper'] == "caseComplete": case_id = int(request.form['caseid']) casere_result = str(request.form['caseresult']) ## 判断是保存还是执行完成 casestatus = 5 if request.form.has_key('complete'): casestatus = 6 getCase = case.query.filter(case.id == case_id).first() getCase.status = casestatus getCase.result = casere_result db.session.add(getCase) getExecflow = caseexec.query.filter(caseexec.case_id == case_id).filter( caseexec.order == getCase.execNum).first() if casestatus == 6: getExecflow.status = 1 db.session.add(getExecflow) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = casestatus + 2 addCaseOperation.content = "" db.session.add(addCaseOperation) db.session.commit() return redirect("/case/execute/?type=view&caseID="+str(case_id)) ## request.method == "GET": 执行工单列表 elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = case.query.filter(case.status.in_([3,4,5,6,8,9])) if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") if _search_cnname: allData = allData.filter(case.title.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: if not record.execflow[record.execNum].user_id == loginData['user']['id']: continue userName = record.execflow[record.execNum].user_rs.name tmpData = {'id': record.id, 'title': record.title, 'casetype': record.casetype.name, 'user' : userName, 'status': record.status.label, 'ctime': str(record.ctime), } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") ## request.method == "GET": 工单详情 elif request.args.has_key('type') and request.args.get('type') == "view": case_id = int(request.args.get("caseID")) caseview = 1 viewData = {} getCase = case.query.filter(case.id == case_id).first() viewData.update({'case_id':getCase.id, 'case_title':getCase.title, 'case_createuser':getCase.createuser.name, 'case_result':getCase.result, 'case_content': getCase.content, 'case_status': getCase.status.value, 'case_status_label': getCase.status.label, 'case_ctime': getCase.ctime, 'case_type': getCase.casetype.name, }) viewData.update({'audit_user':[]}) for auditUser in getCase.auditflow: viewData['audit_user'].append({'name':auditUser.user_rs.name,'status':auditUser.status.value}) viewData.update({'exec_user': []}) for execUser in getCase.execflow: viewData['exec_user'].append({'name':execUser.user_rs.name,'status':execUser.status.value}) viewData.update({'operation_user': []}) for operationUser in getCase.operation: viewData['operation_user'].append({'name':operationUser.user_rs.name, 'operation_type':operationUser.status.label, 'content':operationUser.content, 'ctime':operationUser.ctime}) return render_template('caseExecute.html', userInfo=loginData['user'], caseview=caseview, viewData=viewData) else: pass try: return render_template('caseExecute.html',userInfo=loginData['user'],caseview=caseview) except TemplateNotFound: abort(404)
def caseMyCreate(): """ 我创建的工单 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} caseview = 0 ## 撤回工单 if request.form.has_key('oper') and request.form['oper'] == "revokeCase": case_id = int(request.form['caseid']) try: getCase = case.query.filter(case.id == case_id).first() getCase.status = 1 getCase.auditNum = 0 getCase.execNum = 0 db.session.add(getCase) ## 修改审核人状态 for auditFlow in getCase.auditflow: auditFlow.status = 0 db.session.add(auditFlow) ## 修改执行人状态 for execFlow in getCase.execflow: execFlow.status = 0 db.session.add(execFlow) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 14 addCaseOperation.content = "revoke Case" db.session.add(addCaseOperation) db.session.commit() except : print "revokeCase error" return Response(json.dumps(returnData), mimetype="application/json") ## 删除工单 elif request.form.has_key('oper') and request.form['oper'] == "deleteCase": case_id = int(request.form['caseid']) getCase = case.query.filter(case.id == case_id).first() if getCase.status.value in [1,2,3,7,11,12]: db.session.delete(getCase) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 删除工单 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: getCase = case.query.filter(case.id == id).first() if not getCase.status.value in [1, 2, 3, 7, 11, 12]: continue db.session.delete(getCase) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 编辑工单 elif request.form.has_key('oper') and request.form['oper'] == "editCase": caseid = int(request.form['caseid']) caserequire = str(request.form['caserequire']) editCase = case.query.filter(and_(case.id == caseid, case.createuser_id == loginData['user']['id'])).first() ## 判断是保存还是提交 casestatus = 2 operationstatus = 1 if request.form.has_key('save'): casestatus=1 if request.form.has_key('reset'): casestatus = 9 operationstatus = 10 editCase.execNum = 0 for execUser in editCase.execflow: execUser.status = 0 db.session.add(execUser) if request.form.has_key('close'): casestatus = 10 operationstatus = 11 ## editCase.content = caserequire editCase.status = casestatus db.session.add(editCase) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = editCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = operationstatus addCaseOperation.content = "" db.session.add(addCaseOperation) db.session.commit() return redirect("/case/mycreate/") ## 回复工单 elif request.form.has_key('oper') and request.form['oper'] == "sendMessage": case_id = int(request.form['caseid']) message = str(request.form['message']) getCase = case.query.filter(case.id == case_id).first() ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = getCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 15 addCaseOperation.content = message db.session.add(addCaseOperation) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": 工单列表 elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = case.query.filter(case.createuser_id == loginData['user']['id']).filter(case.status.in_([1,2,3,4,5,6,7,8,9])) if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") if _search_cnname: allData = allData.filter(case.title.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: if record.status.value == 2: userName = record.auditflow[record.auditNum].user_rs.name elif record.status.value in [3,4,5,9]: userName = record.execflow[record.execNum].user_rs.name else : userName = record.createuser.name tmpData = {'id': record.id, 'title': record.title, 'casetype': record.casetype.name, 'user' : userName, 'status': record.status.label, 'ctime': str(record.ctime), } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") ## request.method == "GET": 工单详情 elif request.args.has_key('type') and request.args.get('type') == "view": case_id = int(request.args.get("caseID")) caseview = 1 viewData = {} getCase = case.query.filter(case.id == case_id).first() viewData.update({'case_id':getCase.id, 'case_title':getCase.title, 'case_createuser':getCase.createuser.name, 'case_result':getCase.result, 'case_content': getCase.content, 'case_status': getCase.status.value, 'case_status_label': getCase.status.label, 'case_ctime': getCase.ctime, 'case_type': getCase.casetype.name, }) viewData.update({'audit_user':[]}) for auditUser in getCase.auditflow: viewData['audit_user'].append({'name':auditUser.user_rs.name,'status':auditUser.status.value}) viewData.update({'exec_user': []}) for execUser in getCase.execflow: viewData['exec_user'].append({'name':execUser.user_rs.name,'status':execUser.status.value}) viewData.update({'operation_user': []}) for operationUser in getCase.operation: viewData['operation_user'].append({'name':operationUser.user_rs.name, 'operation_type':operationUser.status.label, 'content': operationUser.content, 'ctime':operationUser.ctime}) return render_template('caseMyCreate.html', userInfo=loginData['user'], caseview=caseview, viewData=viewData) else: pass try: return render_template('caseMyCreate.html',userInfo=loginData['user'],caseview=caseview) except TemplateNotFound: abort(404)
def caseCreate(): """ 创建工单 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} ## 添加工单 if request.form.has_key('oper') and request.form['oper'] == "addCase": caseTypeID = int(request.form['casetype']) caseTitle = str(request.form['casetitle']) caseRequire = str(request.form['caserequire']) caseResult = str(request.form['caseresult']) ## 工单类型 getCaseType = casetype.query.filter(casetype.id == caseTypeID).first() ## 判断是保存还是提交 caseStatus = 2 if request.form.has_key('save'):caseStatus=1 ## 添加工单 addCase = case() addCase.title = caseTitle addCase.casetype_id = caseTypeID addCase.createuser_id = loginData['user']['id'] addCase.content = caseRequire addCase.result = caseResult addCase.status = caseStatus db.session.add(addCase) ## 添加审核人 for auditUser in getCaseType.audit_model: if auditUser.user_id == -1: leaderUser = user.query.filter(user.department_id == loginData['user']['department_id']).filter( user.leader == 0).first() audituser_id = leaderUser.id else: audituser_id = auditUser.user_id addCaseAudit = caseaudit() addCaseAudit.case_rs = addCase addCaseAudit.user_id = audituser_id addCaseAudit.order = auditUser.order addCaseAudit.status = 0 db.session.add(addCaseAudit) ## 添加执行人 for execUser in getCaseType.exec_model: addCaseExec = caseexec() addCaseExec.case_rs = addCase addCaseExec.user_id = execUser.user_id ##后续需要修改 addCaseExec.order = execUser.order addCaseExec.status = 0 db.session.add(addCaseExec) ## 添加操作步骤 addCaseOperation = caseoperation() addCaseOperation.case_rs = addCase addCaseOperation.user_id = loginData['user']['id'] addCaseOperation.status = 1 addCaseOperation.content = "" db.session.add(addCaseOperation) db.session.commit() return redirect("/case/mycreate/") else: getData = casetype.query.filter(casetype.status == 1).all() for record in getData: returnData['data'].append({'casetype_id':record.id,'casetype_name':record.name}) try: return render_template('caseCreate.html', casetype_list=returnData['data'],userInfo=loginData['user']) except TemplateNotFound: abort(404)
def caseTypeList(): """ 工单类型管理 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} ## 添加工单类型 if request.form.has_key('oper') and request.form['oper'] == "addCaseType": casetype_name = str(request.form['casetype_name']) casetype_executor = int(request.form['casetype_executor']) casetype_checkleader = str(request.form['casetype_checkleader']).split(',') casetype_status = int(request.form['casetype_status']) try: ## 新增工单类型 addCaseType = casetype() addCaseType.name = casetype_name addCaseType.createuser_id = loginData['user']['id'] addCaseType.status = casetype_status db.session.add(addCaseType) ## 添加执行人 addCaseExecModel = caseexecmodel() addCaseExecModel.case_type = addCaseType addCaseExecModel.user_id = casetype_executor addCaseExecModel.order = 0 db.session.add(addCaseExecModel) ## 添加审核列表 for checkleader in casetype_checkleader: addCaseAuditModel = caseauditmodel() addCaseAuditModel.case_type = addCaseType addCaseAuditModel.user_id = int(checkleader) addCaseAuditModel.order = casetype_checkleader.index(checkleader) db.session.add(addCaseAuditModel) # db.session.commit() except Exception as e: returnData['status'] = 1 returnData['message'] = '新增失败:'+str(e) #db.session().rollback() return Response(json.dumps(returnData), mimetype="application/json") ## 删除工单类型 elif request.form.has_key('oper') and request.form['oper'] == "delCaseType": casetype_ids = str(request.form['casetype_ids']).split(',') for casetypeId in casetype_ids: delData = casetype.query.filter(casetype.id == int(casetypeId)).first() db.session.delete(delData) db.session.commit() return Response(json.dumps(returnData), mimetype="application/json") ## 修改工单类型 elif request.form.has_key('oper') and request.form['oper'] == "editCaseType": casetype_id = int(request.form['casetype_id']) casetype_name = str(request.form['casetype_name']) casetype_executor = int(request.form['casetype_executor']) casetype_checkleader = str(request.form['casetype_checkleader']).split(',') casetype_status = int(request.form['casetype_status']) try: ## 编辑工单类型 editCaseType = casetype.query.filter(casetype.id == casetype_id).first() editCaseType.name = casetype_name editCaseType.status = casetype_status db.session.add(editCaseType) ## 删除执行人和审核人 delExecData = caseexecmodel.query.filter(caseexecmodel.casetype_id == editCaseType.id ).all() for i in delExecData: db.session.delete(i) delAuditData = caseauditmodel.query.filter(caseauditmodel.casetype_id == editCaseType.id ).all() for i in delAuditData: db.session.delete(i) ## 添加执行人 addCaseExecModel = caseexecmodel() addCaseExecModel.case_type = editCaseType addCaseExecModel.user_id = casetype_executor addCaseExecModel.order = 0 db.session.add(addCaseExecModel) ## 添加审核列表 for checkleader in casetype_checkleader: addCaseAuditModel = caseauditmodel() addCaseAuditModel.case_type = editCaseType addCaseAuditModel.user_id = int(checkleader) addCaseAuditModel.order = casetype_checkleader.index(checkleader) db.session.add(addCaseAuditModel) # db.session.commit() except: returnData['status'] = 1 returnData['message'] = '修改失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取单条工单类型记录(为编辑工单准备数据) elif request.form.has_key('oper') and request.form['oper'] == "getCaseType": casetype_id = int(request.form['casetype_id']) getData = casetype.query.filter(casetype.id == casetype_id).first() rData = {} rData['id'] = getData.id rData['name'] = getData.name rData['status'] = getData.status.value rData['executor'] = [] for execModel in getData.exec_model: if execModel.user_id == "-1": rData['executor'].append("-1_默认上级") else: executor = user.query.filter(user.id == execModel.user_id).first() rData['executor'].append(str(executor.id) + "_" + str(executor.cnname) + "(" + str(executor.name) + ")") rData['checkleader'] = [] for auditModel in getData.audit_model: if str(auditModel.user_id) == "-1": rData['checkleader'].append("-1_默认上级") else: checkleader = user.query.filter(user.id == auditModel.user_id).first() rData['checkleader'].append(str(checkleader.id) + "_" + str(checkleader.cnname) + "(" + str(checkleader.name) + ")") rData['users'] = [] allUser = user.query.filter().all() for record in allUser: rData['users'].append({'id': record.id, 'name': record.name, 'cnname': record.cnname}) return Response(json.dumps(rData), mimetype="application/json") ## request.method == "GET": 工单类型列表 elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = casetype.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_enname: allData = allData.filter(casetype.name.ilike('%%%s%%' % _search_enname)) if _search_cnname: allData = allData.filter(casetype.name.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime if not _mtime: _mtime = record.ctime tmpData = {'id': record.id, 'name': record.name, 'exec_model': "", 'audit_model':"", 'status': record.status.label, 'ctime': str(record.ctime), } loadData['data'].append(tmpData) executor_str = "" for execModel in record.exec_model: if str(execModel.user_id) == "-1": executor_name = "默认上级" else: user_record = user.query.filter(user.id == int(execModel.user_id)).first() executor_name = user_record.cnname if executor_str == "": executor_str = "<span> " + executor_name + " </span>" else: executor_str = executor_str + "<span class='glyphicon glyphicon-arrow-right'></span><span> " + executor_name + " </span>" tmpData['exec_model'] = executor_str checkleader_str = "" for auditModel in record.audit_model: if str(auditModel.user_id) == "-1": checkleader_name = "默认上级" else: user_record = user.query.filter(user.id == int(auditModel.user_id)).first() checkleader_name = user_record.cnname if checkleader_str == "": checkleader_str = "<span> " + checkleader_name + " </span>" else: checkleader_str = checkleader_str + "<span class='glyphicon glyphicon-arrow-right'></span><span> " + checkleader_name + " </span>" tmpData['audit_model'] = checkleader_str loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('caseType.html',userInfo=loginData['user']) except TemplateNotFound: abort(404)
def departmentList(): """ 部门管理 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': ''} ## 添加部门 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) enname = str(request.form['enname']) parent_id = int(request.form['parent']) ## check checkData = department.query.filter(or_(department.name == name, department.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该部门名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = department(name = name, enname = enname,parent = parent_id) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除部门 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = department.query.filter(department.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str(id) + ' 该部门不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str(id) + ' 删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 修改部门 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) enname = str(request.form['enname']) parent_id = int(request.form['parent']) ## check checkData = department.query.filter(department.id != id) \ .filter(or_(department.name == name,department.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该部门名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = department.query.filter(department.id == id).first() editData.name = name editData.enname = enname editData.parent = parent_id db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取部门(给页面下拉框准备, 前端js函数:getDepartment) elif request.form.has_key('oper') and request.form['oper'] == "getDepartment": allData = department.query.filter().all() if allData: depStr = "" # 组合成适用于编辑框的select格式 for dep in allData: if depStr: depStr = depStr + ";" + str(dep.id) + ":" + str(dep.name) else: depStr = str(dep.id) + ":" + str(dep.name) returnData['message'] = depStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = department.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_cnname: allData = allData.filter(department.name.ilike('%%%s%%' % _search_cnname)) if _search_enname: allData = allData.filter(department.enname.ilike('%%%s%%' % _search_enname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime if not _mtime:_mtime = record.ctime if record.parent == 0 : parent = "顶级部门" else: p = department.query.filter(department.id == record.parent).first() parent = str(p.name) tmpData = {'id': record.id, 'name': record.name, 'enname': record.enname, 'parent' : parent, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('department.html',userInfo=loginData['user']) except TemplateNotFound: abort(404)
def userList(): """ 用户管理 """ # print request.args.items().__str__() # print request.form.items() loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '','data':[]} ## 添加用户 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) cnname = str(request.form['cnname']) departmentID = int(request.form['department']) leader = int(request.form['leader']) role = int(request.form['role']) isQuit = int(request.form['is_quit']) password = str(request.form['password']) ## check checkData = user.query.filter(or_(user.name == name)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该用户名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = user(name=name, cnname=cnname,password=password,department_id=departmentID,leader=leader,is_quit=isQuit,role=role) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除用户 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = user.query.filter(user.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message']+'id:'+str(id)+' 该用户不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str(id) + ' 该用户删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 编辑用户 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) cnname = str(request.form['cnname']) departmentID = int(request.form['department']) leader = int(request.form['leader']) role = int(request.form['role']) isQuit = int(request.form['is_quit']) password = str(request.form['password']) ## check checkData = user.query.filter(user.id != id).filter(or_(user.name == name)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该用户名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = user.query.filter(user.id == id).first() editData.name = name editData.cnname = cnname editData.password = password editData.department_id = departmentID editData.is_quit = isQuit editData.leader = leader editData.role = role db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取用户(给页面表格下拉框准备, 前端js函数:getUsers) elif request.form.has_key('oper') and request.form['oper'] == "getUsers": allData = user.query.filter().all() if allData: userStr = "" # 组合成适用于编辑框的select格式 for u in allData: if userStr: userStr = userStr + ";" + str(u.id) + ":" + str(u.name) else: userStr = str(u.id) + ":" + str(u.name) returnData['data'].append({'id': u.id, 'name': u.name, 'cnname': u.cnname}) returnData['message'] = userStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = user.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_enname: allData = allData.filter(user.name.ilike('%%%s%%' % _search_enname)) if _search_cnname: allData = allData.filter(user.cnname.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime last_login = record.last_login if not _mtime: _mtime = record.ctime if not last_login: last_login = "" tmpData = {'id': record.id, 'name': record.name, 'cnname': record.cnname, 'password':"******", 'is_quit':record.is_quit.label, 'role': record.role.label, 'last_login':str(last_login), 'department':record.department.name, 'leader':record.leader.label, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('user.html',userInfo=loginData['user']) except TemplateNotFound: abort(404)
def departmentList(): """ 部门管理 """ # print request.args.items().__str__() # print request.form loginData = userLogin() if loginData['status'] == 1: return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': ''} ## 添加部门 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) enname = str(request.form['enname']) parent_id = int(request.form['parent']) ## check checkData = department.query.filter( or_(department.name == name, department.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该部门名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = department(name=name, enname=enname, parent=parent_id) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除部门 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = department.query.filter(department.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 该部门不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 修改部门 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) enname = str(request.form['enname']) parent_id = int(request.form['parent']) ## check checkData = department.query.filter(department.id != id) \ .filter(or_(department.name == name,department.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该部门名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = department.query.filter(department.id == id).first() editData.name = name editData.enname = enname editData.parent = parent_id db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取部门(给页面下拉框准备, 前端js函数:getDepartment) elif request.form.has_key( 'oper') and request.form['oper'] == "getDepartment": allData = department.query.filter().all() if allData: depStr = "" # 组合成适用于编辑框的select格式 for dep in allData: if depStr: depStr = depStr + ";" + str(dep.id) + ":" + str(dep.name) else: depStr = str(dep.id) + ":" + str(dep.name) returnData['message'] = depStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = { "total": "0", "page": str(load_page), "records": "0", "data": [] } allData = department.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_cnname: allData = allData.filter( department.name.ilike('%%%s%%' % _search_cnname)) if _search_enname: allData = allData.filter( department.enname.ilike('%%%s%%' % _search_enname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime if not _mtime: _mtime = record.ctime if record.parent == 0: parent = "顶级部门" else: p = department.query.filter( department.id == record.parent).first() parent = str(p.name) tmpData = { 'id': record.id, 'name': record.name, 'enname': record.enname, 'parent': parent, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('department.html', userInfo=loginData['user']) except TemplateNotFound: abort(404)
def userList(): """ 用户管理 """ # print request.args.items().__str__() # print request.form.items() loginData = userLogin() if loginData['status'] == 1: return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '', 'data': []} ## 添加用户 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) cnname = str(request.form['cnname']) departmentID = int(request.form['department']) leader = int(request.form['leader']) role = int(request.form['role']) isQuit = int(request.form['is_quit']) password = str(request.form['password']) ## check checkData = user.query.filter(or_(user.name == name)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该用户名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = user(name=name, cnname=cnname, password=password, department_id=departmentID, leader=leader, is_quit=isQuit, role=role) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除用户 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = user.query.filter(user.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 该用户不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str( id) + ' 该用户删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 编辑用户 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) cnname = str(request.form['cnname']) departmentID = int(request.form['department']) leader = int(request.form['leader']) role = int(request.form['role']) isQuit = int(request.form['is_quit']) password = str(request.form['password']) ## check checkData = user.query.filter(user.id != id).filter( or_(user.name == name)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该用户名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = user.query.filter(user.id == id).first() editData.name = name editData.cnname = cnname editData.password = password editData.department_id = departmentID editData.is_quit = isQuit editData.leader = leader editData.role = role db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取用户(给页面表格下拉框准备, 前端js函数:getUsers) elif request.form.has_key('oper') and request.form['oper'] == "getUsers": allData = user.query.filter().all() if allData: userStr = "" # 组合成适用于编辑框的select格式 for u in allData: if userStr: userStr = userStr + ";" + str(u.id) + ":" + str(u.name) else: userStr = str(u.id) + ":" + str(u.name) returnData['data'].append({ 'id': u.id, 'name': u.name, 'cnname': u.cnname }) returnData['message'] = userStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = { "total": "0", "page": str(load_page), "records": "0", "data": [] } allData = user.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_enname: allData = allData.filter( user.name.ilike('%%%s%%' % _search_enname)) if _search_cnname: allData = allData.filter( user.cnname.ilike('%%%s%%' % _search_cnname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime last_login = record.last_login if not _mtime: _mtime = record.ctime if not last_login: last_login = "" tmpData = { 'id': record.id, 'name': record.name, 'cnname': record.cnname, 'password': "******", 'is_quit': record.is_quit.label, 'role': record.role.label, 'last_login': str(last_login), 'department': record.department.name, 'leader': record.leader.label, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('user.html', userInfo=loginData['user']) except TemplateNotFound: abort(404)
def projectList(): """ 项目管理管理 """ # print request.args.items().__str__() # print request.form.items() loginData = userLogin() if loginData['status'] == 1 : return redirect(loginData['uri']) ## 请求返回结果数据 returnData = {'status': 0, 'message': '','data':[]} ## 添加项目 if request.form.has_key('oper') and request.form['oper'] == "add": name = str(request.form['name']) enname = str(request.form['enname']) leader = int(request.form['leader']) ## check checkData = project.query.filter(or_(project.name == name,project.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该项目名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## add try: addData = project(name=name, enname=enname,user_id=leader) db.session.add(addData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '新增失败' return Response(json.dumps(returnData), mimetype="application/json") ## 删除项目 elif request.form.has_key('oper') and request.form['oper'] == "del": ids = str(request.form['id']).split(',') for id in ids: ## check checkData = project.query.filter(project.id == id).first() if not checkData: returnData['status'] = 1 returnData['message'] = returnData['message']+'id:'+str(id)+' 该项目不存在;' ## delete try: db.session.delete(checkData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = returnData['message'] + 'id:' + str(id) + ' 该项目删除失败;' return Response(json.dumps(returnData), mimetype="application/json") ## 编辑项目 elif request.form.has_key('oper') and request.form['oper'] == "edit": id = int(request.form['id']) name = str(request.form['name']) enname = str(request.form['enname']) leader = int(request.form['leader']) ## check checkData = project.query.filter(project.id != id).filter(or_(project.name == name,project.enname == enname)).first() if checkData: returnData['status'] = 1 returnData['message'] = '该项目名称已经存在' return Response(json.dumps(returnData), mimetype="application/json") ## edit try: editData = project.query.filter(project.id == id).first() editData.name = name editData.enname = enname editData.leader = leader db.session.add(editData) db.session.commit() except: returnData['status'] = 1 returnData['message'] = '编辑失败' return Response(json.dumps(returnData), mimetype="application/json") ## 获取项目选择框下拉列表 elif request.form.has_key('oper') and request.form['oper'] == "getProjects": allData = project.query.filter().all() if allData: projectStr = "" # 组合成适用于编辑框的select格式 for p in allData: if projectStr: projectStr = projectStr + ";" + str(p.id) + ":" + str(p.name) else: projectStr = str(p.id) + ":" + str(p.name) returnData['data'].append({'id': p.id, 'name': p.name, 'enname': p.enname}) returnData['message'] = projectStr else: returnData['status'] = 1 returnData['message'] = "error" return Response(json.dumps(returnData), mimetype="application/json") ## request.method == "GET": elif request.args.has_key('type') and request.args.get('type') == "load" or \ request.args.has_key('type') and request.args.get('type') == "search": load_search = request.args.get("_search") load_nd = int(request.args.get("nd")) load_rows = int(request.args.get("rows")) load_page = int(request.args.get("page")) load_sidx = str(request.args.get("sidx")) load_sord = str(request.args.get("sord")) len_min = load_page * load_rows - load_rows len_max = load_page * load_rows loadData = {"total": "0", "page": str(load_page), "records": "0", "data": []} allData = project.query.filter() if request.args.get('type') == "search": _search_cnname = request.args.get("search_cnname") _search_enname = request.args.get("search_enname") if _search_cnname: allData = allData.filter(project.name.ilike('%%%s%%' % _search_cnname)) if _search_enname: allData = allData.filter(project.enname.ilike('%%%s%%' % _search_enname)) ## sord if not load_sidx: load_sidx = "id" if load_sord == "desc": allData = allData.order_by(desc(load_sidx)).all() else: allData = allData.order_by(load_sidx).all() for record in allData[len_min:len_max]: _mtime = record.mtime if not _mtime: _mtime = record.ctime tmpData = {'id': record.id, 'name': record.name, 'enname': record.enname, 'leader': record.user.name, 'ctime': str(record.ctime), 'mtime': str(_mtime) } loadData['data'].append(tmpData) loadData['records'] = str(len(allData)) ## rows loadData['total'] = str(len(allData) / int(load_rows) + 1) ## pages return Response(json.dumps(loadData), mimetype="application/json") else: pass try: return render_template('project.html',userInfo=loginData['user']) except TemplateNotFound: abort(404)