def update_status(): data = dict((k, v[0]) for k, v in dict(request.form).items()) job = db.list('ops_jobs', fields_job, data['id']) res = {} # 获取申请人信息 users = db.list('users', fields_user) for user in users: if job['apply_persion'] == user['name']: # 获取值班人的邮箱 email = user['email'] if data['status'] == '1': data['deal_persion'] = session.get('name') result = '申请已通过,请执行!' # 值班人执行操作后发邮件给工单申请人 thr = Thread(target=myMail.myMail, args=(duty_email, duty_passwd, email, result)) thr.start() else: data['deal_time'] = time.strftime(ISOTIMEFORMAT, time.localtime()) if data['status'] == '2': result = '工单处理正确,{}'.format(data['deal_desc']) else: result = '工单失败,失败原因:{}'.format(data['deal_desc']) thr = Thread(target=myMail.myMail, args=(duty_email, duty_passwd, email, result)) thr.start() conditions = ["%s='%s'" % (k, v) for k, v in data.items()] db.update('ops_jobs', conditions, data['id']) return json.dumps({'code': 0, 'result': 'execute completed!'})
def userlist(): role = session.get('role') if role == 'admin': users = db.list('users',fields_user) return render_template("/user/userlist.html",users = users,role = role) else: user = db.list('users',fields_user,session.get('id')) return render_template("/user/userself.html",user = user,role = role)
def server(): if not session.get('name'): return render_template('login.html') role = session.get('role') servers = db.list('server', fields_server) for i in servers: cabinet = db.list('cabinet', fields_cabinet, i['cabinet_id']) i['cabinet_id'] = cabinet['name'] return render_template("serverlist.html", servers=servers, role=role)
def userlist(): if not session.get('name'): return render_template('login.html') role = session.get('role') if role == 'admin': users = db.list('users', fields_user) return render_template("userlist.html", users=users, role=role) else: user = db.list('users', fields_user, session.get('id')) return render_template("userself.html", user=user, role=role)
def cabinet(): if not session.get('name'): return render_template('login.html') role = session.get('role') cabinets = db.list('cabinet', fields_cabinet) for i in cabinets: idc = db.list('idc', fields_idc, i['idc_id']) i['idc_id'] = idc['name'] return render_template("cabinetlist.html", cabinets=cabinets, role=role)
def send_mail(): job_id = request.form.get('id') job = db.list('ops_jobs', fields_job, job_id) user = db.list('users', fields_user, session.get('id')) email, passwd = user['email'], base64.b64decode(user['email_password']) result = '申请时间: {},工单名: {} 已处理,请确认'.format(job['apply_date'], job['apply_type']) thr = Thread(target=myMail.myMail, args=(email, passwd, duty_email, result)) thr.start() return json.dumps({'result': 'send mail success!'})
def dutyself(): today = date.weekday(date.today()) # 今天是星期几 id = duty(today) user = db.list('users', fields_user, id) role = session.get('role') return render_template("/duty/dutyself.html", user=user, role=role)
def jobadd(): name = session.get('name') id = session.get('id') if request.method == 'GET': return render_template('/job/jobadd.html', info=session, role=session.get('role')) else: data = dict((k, v[0]) for k, v in dict(request.form).items()) data['apply_persion'] = name if not data['apply_desc']: return json.dumps({ 'code': 1, 'errmsg': 'job description can not be null' }) conditions = ["%s='%s'" % (k, v) for k, v in data.items()] db.add('ops_jobs', conditions) # 获取申请人email地址 user = db.list('users', fields_user, id) # 从用户列表获取邮箱账号和密码 email, passwd = user['email'], base64.b64decode(user['email_password']) # 发送邮件(申请人发邮件给当天值班人) # myMail.myMail(email,passwd,duty_email,data['apply_desc']) # 异步发送 thr = Thread(target=myMail.myMail, args=(email, passwd, duty_email, data['apply_desc'])) thr.start() return json.dumps({'code': 0, 'result': 'apply job success'})
def useradd(): if not session.get('name'): return redirect('/login') if request.method == 'GET': return render_template('add.html', role=session.get('role')) if request.method == 'POST': l = [] data = dict((k, v[0]) for k, v in dict(request.form).items()) data['password'] = md5(request.form.get('password') + salt).hexdigest() for i in db.list('users', fields_user): l.append(i['name']) if not data['name']: return json.dumps({'code': 1, 'errmsg': 'name can not be null'}) elif not data['name_cn']: return json.dumps({ 'code': 1, 'errmsg': 'chinese name can not be null' }) elif not data['password']: return json.dumps({ 'code': 1, 'errmsg': 'password can not be null' }) elif data['name'] not in l: conditions = ["%s='%s'" % (k, v) for k, v in data.items()] db.add('users', conditions) return json.dumps({'code': 0, 'result': 'add user success'}) return json.dumps({'code': 1, 'errmsg': 'username is exist'})
def userself(): if not session.get('name'): return render_template('login.html') role = session.get('role') id = session.get('id') user = db.list('users', fields_user, id) return render_template("userself.html", user=user, role=role)
def update_msg(): id = request.args.get('id') user = db.list('users',fields_user,id) if session.get('role') == 'admin': return json.dumps({'code':0,'result':user}) else: return json.dumps({'code':2,'result':user})
def login(): if request.method == 'GET': return render_template('login.html') else: name = request.form.get('name') password = md5(request.form.get('password') + salt).hexdigest() print password d = {} for i in db.list('users', fields_user): d[i['name']] = [i['password'], i['role'], i['id'], i['status']] if not name or not password: errmsg = 'name or password not be null' return json.dumps({'code': '1', 'errmsg': errmsg}) elif d[name][3] != 0: return json.dumps({'code': '1', 'errmsg': 'user is locked'}) elif name in d and d[name][0] == password: session['name'] = name session['role'] = d[name][1] session['id'] = d[name][2] return json.dumps({'code': '0', 'result': 'login success'}) else: errmsg = 'name or password wrong' return json.dumps({'code': '1', 'errmsg': errmsg})
def modpwd(): data = dict(request.form) if 'password' in data.keys(): if not data['password'][0] or not data['newpassword'][0] or not data['renewpassword'][0]: errmsg = 'password can not be null' return json.dumps({'code':'1','errmsg':errmsg}) else: if not data['newpassword'][0] or not data['renewpassword'][0]: errmsg = 'password can not be null' return json.dumps({'code':'1','errmsg':errmsg}) try: condition = [ "%s='%s'" % ('password',md5(v[0]+salt).hexdigest()) for k,v in data.items() if k == 'newpassword'] id = session.get('id') if session.get('role') == 'admin': db.update('users',condition,data['id'][0]) return json.dumps({'code':'0','result':'modify completed!'}) else: if md5(data['password'][0]+salt).hexdigest() == db.list('users',fields_user,id)['password']: db.update('users',condition,data['id'][0]) return json.dumps({'code':'0','result':'modify completed!'}) return json.dumps({'code':'1','errmsg':'wrong old password'}) except: errmsg = "modify failed" return json.dumps({'code':'1','errmsg':errmsg})
def execute(self, message): if message.command == spec.ttypes.Command.INSERT: return db.insert(message.title, message.content) elif message.command == spec.ttypes.Command.GET: return db.get(message.id) elif message.command == spec.ttypes.Command.LIST: return db.list(message.count)
def joblist(): role = session.get('role') jobs = db.list('ops_jobs', fields_job) list_jobs = [] for job in jobs: if job['status'] == 0 or job['status'] == 1: list_jobs.append(job) return render_template("/job/joblist.html", jobs=list_jobs, role=role)
def worklist(): role = session.get('role') works = db.list('work', fields_work) list_works = [] for work in works: if int(work['work_status']) == 0: list_works.append(work) return render_template("/work/worklist.html", works=list_works, role=role)
def update_msg(): id = request.args.get('id') user = db.list('users', fields_user, id) user['email_password'] = base64.b64decode(user['email_password']) if session.get('role') == 'admin': return json.dumps({'code': 0, 'result': user}) else: return json.dumps({'code': 2, 'result': user})
def main(): action = None data = "" db = None directory = None name = None if len(sys.argv) < 3: _help() sys.exit() for arg in sys.argv[1:]: if arg in ("-h", "--help"): _help() sys.exit() directory, action = sys.argv[1:3] action = action.lower() if action in ("append", "contains", "delete", "get", "set"): if len(sys.argv) < 4: print "Missing entry name." _help() sys.exit() name = list(csv.reader(StringIO.StringIO(sys.argv[3])))[0] if action in ("append", "set") and len(sys.argv) > 4: data = sys.argv[4] elif not action in ("clean", "init", "list", "size"): print "Invalid action." _help() sys.exit() db = DB(directory) db.__enter__() if action == "append": db.append(name, data) elif action == "clean": db.clean() elif action == "contains": print name in db elif action == "delete": del db[name] elif action == "get": sys.stdout.write(db[name]) sys.stdout.flush() elif action == "list": for n in db.list(): if not isinstance(n, list) and not isinstance(n, tuple): n = [n] csv.writer(sys.stdout).writerow(n) sys.stdout.flush() elif action == "set": db[name] = data elif action == "size": print len(db) # otherwise action == "init" db.__exit__()
def workhistory(): role = session.get('role') works = db.list('work', fields_work) history_works = [] for work in works: if int(work['work_status']) != 0: history_works.append(work) return render_template("/work/workhistory.html", works=history_works, role=role)
def jobhistory(): role = session.get('role') jobs = db.list('ops_jobs', fields_job) history_jobs = [] for job in jobs: if job['status'] == 2 or job['status'] == 3: history_jobs.append(job) return render_template("/job/jobhistory.html", jobs=history_jobs, role=role)
def job_status(): id = request.args.get('id') job = db.list('ops_jobs', fields_job, id) # return json.dumps({'code':0,'result1':apply_desc,'result2':status}) result1 = job['status'] result2 = job['apply_desc'] result3 = job['deal_desc'] return json.dumps({ 'code': 0, 'result1': result1, 'result2': result2, 'result3': result3 })
def idcadd(): if request.method == 'GET': return render_template('/idc/idcadd.html',info = session,role = session.get('role')) if request.method == 'POST': data = dict((k,v[0]) for k,v in dict(request.form).items()) l = [] for i in db.list('idc',fields_idc): l.append(i['name']) if not data['name']: return json.dumps({'code':1,'errmsg':'name can not be null'}) elif data['name'] not in l: conditions = [ "%s='%s'" % (k,v) for k,v in data.items()] db.add('idc',conditions) return json.dumps({'code':0,'result':'add idc success'}) return json.dumps({'code':1,'errmsg':'idc name is exist'})
def duty(day): # 查看星期几的值班人的编号 duty_dict = {} # 带索引的值班人员字典 duty_week = {} # k: 星期几 ,v: 为list 值班人 ,v[0][1] 表示第二周的星期一 duty_list = [] # 所有值班人员列表 users = db.list('users', fields_user) for user in users: if user['role'] == 'admin' and user['status'] == 0: duty_list.append(user['id']) duty_list *= 5 duty_dict = {k: v for k, v in enumerate(duty_list)} for k, v in duty_dict.items(): duty_week.setdefault(k, []) duty_week[k % 5].append(v) week_num = (int(time.strftime('%W'))) % ( int(len(duty_list)) / 5) # 第几个星期 , 'int(len(duty_list))/5'周重置一次 return duty_week[day][week_num]
def dutylist(): every_week = [] # 每周值班人汇总 role = session.get('role') for i in range(5): data = db.list('users', fields_user, duty(i)) if i == 0: data['week'] = '星期一' data['id'] = i elif i == 1: data['week'] = '星期二' data['id'] = i elif i == 2: data['week'] = '星期三' data['id'] = i elif i == 3: data['week'] = '星期四' data['id'] = i else: data['week'] = '星期五' data['id'] = i every_week.append(data) return render_template("/duty/dutylist.html", users=every_week, role=role)
def __str__(self): list = map(lambda el: "<a href='/%s'>%s</a>" % (el[0], el[0]), db.list()) return "<br/>".join(list)
def idc(): role = session.get('role') idcs = db.list('idc',fields_idc) return render_template("/idc/idclist.html",idcs = idcs,role = role)
elif not action in ("clean", "init", "list", "size"): print "Invalid action." _help() sys.exit() db = DB(directory) db.__enter__() if action == "append": db.append(name, data) elif action == "clean": db.clean() elif action == "contains": print name in db elif action == "delete": del db[name] elif action == "get": sys.stdout.write(db[name]) sys.stdout.flush() elif action == "list": for n in db.list(): if not isinstance(n, list) and not isinstance(n, tuple): n = [n] csv.writer(sys.stdout).writerow(n) sys.stdout.flush() elif action == "set": db[name] = data elif action == "size": print len(db) # otherwise action == "init" db.__exit__()
def idc_msg(): idcs = db.list('idc',fields_idc) return json.dumps({'result':idcs})
import base64 import json import db import time app.config.from_object(Table) fields_job = app.config.get('FIELDS_OPS_JOBS') fields_user = app.config.get('FIELDS_USER') ISOTIMEFORMAT = '%Y-%m-%d %X' ''' {'0':'未处理','1':'处理中','2':'完成','3':'失败'} ''' # 获取值班人邮件地址和密码 today = date.weekday(date.today()) duty_email = db.list('users', fields_user, duty(today))['email'] duty_passwd = base64.b64decode( db.list('users', fields_user, duty(today))['email_password']) @app.route('/joblist/') @login_request.login_request def joblist(): role = session.get('role') jobs = db.list('ops_jobs', fields_job) list_jobs = [] for job in jobs: if job['status'] == 0 or job['status'] == 1: list_jobs.append(job) return render_template("/job/joblist.html", jobs=list_jobs, role=role)
def idc_update_msg(): id = request.args.get('id') idc = db.list('idc',fields_idc,id) return json.dumps({'code':0,'result':idc})
def userself(): role = session.get('role') user = db.list('users',fields_user,session.get('id')) return render_template("/user/userself.html",user = user,role = role)
def server_update_msg(): id = request.args.get('id') server = db.list('server', fields_server, id) return json.dumps({'code': 0, 'result': server})