def delete(self, lid): leave = Leave.get(lid) if leave["uid"] != session.get_uid(): raise ExceptionEx("权限不足") Leave.delete(lid) return self.succ()
def post(self): submit = self.request() submit["uid"] = session.get_uid() submit["apply_time"] = datetime.now() if Leave.check_overlap(submit): raise ExceptionEx("起止时间不能与已提交申请重叠," "可在请假审批中修改已提交的申请") leave = Leave.add(submit, auto_commit=False) Mail().to(leave) db.session.commit() return self.succ()
def put(self, lid): submit = self.request() submit["id"] = lid submit["approval_time"] = datetime.now().strftime("%Y-%m-%d") leave = Leave.edit(submit, auto_commit=False) Mail().to(leave) db.session.commit() return self.succ()
def get(self, begin_time, end_time): result = pd.DataFrame(columns=["name", "days"]) leaves = pd.read_json( json.dumps(Leave.between(begin_time, end_time,query_type=False))) if leaves.empty: return self.succ([]) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) result_lst = [] result.sort_values("days", ascending=False).apply( lambda x: result_lst.append({"name": x["name"], "days": x["days"]}), axis=1) return self.succ(result_lst)
def get(self, begin_time, end_time): result = pd.DataFrame(columns=["name", "days"]) leaves = pd.read_json( json.dumps(Leave.between(begin_time, end_time, query_type=False))) if leaves.empty: return self.succ([]) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) result_lst = [] result.sort_values("days", ascending=False).apply( lambda x: result_lst.append({ "name": x["name"], "days": x["days"] }), axis=1) return self.succ(result_lst)
def get(self, page, pre_page): return self.succ(Leave.history(page, pre_page))
# coding=utf-8 from bmp.apis.base import BaseApi from bmp.models.leave import Leave class Leave_historyApi(BaseApi): route = ["/leave/history/<int:page>/<int:pre_page>"] def get(self, page, pre_page): return self.succ(Leave.history(page, pre_page)) if __name__ == "__main__": print Leave.history(1, 10)
route = ["/stats/leave/days/<string:begin_time>/<string:end_time>"] def get(self, begin_time, end_time): result = pd.DataFrame(columns=["name", "days"]) leaves = pd.read_json( json.dumps(Leave.between(begin_time, end_time,query_type=False))) if leaves.empty: return self.succ([]) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) result_lst = [] result.sort_values("days", ascending=False).apply( lambda x: result_lst.append({"name": x["name"], "days": x["days"]}), axis=1) return self.succ(result_lst) if __name__ == "__main__": result = pd.DataFrame(columns=["name", "days"]) leaves = pd.read_json( json.dumps(Leave.between("2016-01-01", "2016-03-07"))) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) print(result)
json.dumps(Leave.between(begin_time, end_time, query_type=False))) if leaves.empty: return self.succ([]) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) result_lst = [] result.sort_values("days", ascending=False).apply( lambda x: result_lst.append({ "name": x["name"], "days": x["days"] }), axis=1) return self.succ(result_lst) if __name__ == "__main__": result = pd.DataFrame(columns=["name", "days"]) leaves = pd.read_json(json.dumps(Leave.between("2016-01-01", "2016-03-07"))) for name, g in leaves.groupby("uid"): result.set_value(len(result), ["name", "days"], [name, g.days.sum()]) print(result)
def get(self, page, pre_page): return self.succ(Leave.unapprovaled(page, pre_page))
def get(self, begin_time, end_time, name="%"): if session[USER_SESSION]["uid"] not in [u.uid for u in Group.get_users(DEFAULT_GROUP.LEAVE.SEARCH)]: name = session[USER_SESSION]["uid"] return self.succ(Leave.search(begin_time, end_time, name))
def put(self, lid): submit = self.request() submit["id"] = lid Leave.edit(submit) return self.succ()
def get(self, begin_time, end_time): query = Leave.between(begin_time, end_time).filter(Leave.days > 0) return self.succ([Leave._to_dict(l) for l in query.all()])