Exemplo n.º 1
0
    def post(self):
        args = self.parser.parse_args()
        servers = args.pop('servers')

        # 写入数据库
        ticket = Ticket(**args)
        ticket.pub_time = datetime.now()
        ticket.pub_user_id = get_jwt_identity()

        for server_id in servers:
            server = Server.query.filter(Server.id == server_id).first()
            if server:
                t2s = Ticket_2_Server()
                t2s.server = server
                t2s.ticket = ticket
                db.session.add(t2s)
            else:
                abort(400, message="Server does not exist")

        db.session.add(ticket)
        db_commit()

        return {
            'id': ticket.id,
            'title': ticket.title,
            'pub_time': ticket.pub_time.strftime("%Y-%m-%d %H:%M:%S"),
            'description': ticket.description,
            'affect': ticket.affect,
            'pub_user': ticket.pub_user.name,
            'handler': ticket.handler.name,
            'status': ticket.status,
            'level': ticket.level,
            'classify': ticket.classify.category,
            'occur_time': ticket.occur_time.strftime("%Y-%m-%d %H:%M:%S")
        }
Exemplo n.º 2
0
    def put(self, user_id):
        # 修改用户
        # 解析json数据
        args = user_parser.parse_args()

        # 查找用户
        user = User.query.filter(User.id == user_id).first()
        if not user:
            abort(400, message="User does not exist")

        # 写入数据库
        user.update(**args)

        db.session.add(user)
        db_commit()

        return {
            'id': user.id,
            'account': user.account,
            'name': user.name,
            'is_super': user.is_super,
            'is_active': user.is_active,
            'email': user.email,
            'phone': user.phone,
            'remarks': user.remarks
        }
Exemplo n.º 3
0
    def post(self):
        try:
            file = request.files['file']
            year = int(request.form['year'])
            month = int(request.form['month'])
            if year < 2018 or not 0 < month < 13:
                abort(400, message="Bad Request")

            days = calendar.monthrange(year, month)[1]
            #
            query = Scheduling.query.filter(
                and_(
                    extract('month', Scheduling.date) == month,
                    extract('year', Scheduling.date) == year))
            #

            f = file.read()
            data = xlrd.open_workbook(file_contents=f)
            table = data.sheets()[0]

            users = set()
            for i in range(1, table.nrows):
                row_values = table.row_values(i)
                user = User.query.filter(User.name == row_values[0]).first()
                if not user:
                    abort(400, message="Bad Request")

                users.add(user.id)

                for d in range(1, days + 1):
                    day = date(year, month, d)
                    try:
                        v = row_values[d]
                    except IndexError:
                        v = "休"

                    scheduling = query.filter((Scheduling.date == day) & (
                        Scheduling.user_id == user.id)).first()
                    shift = Shift.query.filter(Shift.shift == v).first()
                    if shift:
                        if scheduling:
                            scheduling.shift = shift
                        else:
                            scheduling = Scheduling(user=user,
                                                    date=day,
                                                    shift=shift)
                        db.session.add(scheduling)
                    else:
                        if scheduling:
                            db.session.delete(scheduling)

            # 删除未排班用户
            for s in query.filter(~Scheduling.user_id.in_(users)):
                db.session.delete(s)

            db_commit()
        except Exception as e:
            abort(400, message="Bad Request")

        return "", 202
Exemplo n.º 4
0
    def post(self):
        args = self.parser.parse_args()

        tickets = []
        for t_id in args["tickets_id"]:
            ticket = Ticket.query.filter(
                Ticket.id == t_id).first()
            if not ticket:
                abort(400, message="Ticket does not exist")

            if ticket.status == 2:
                continue

            tickets.append(ticket)

        target_user = User.query.filter(User.id == args['user_id']).first()
        if not target_user:
            abort(400, message="Bad Request")

        for t in tickets:
            t.handler = target_user

            progress = Progress()
            progress.handle_time = datetime.now()
            progress.handler_id = get_jwt_identity()
            progress.ticket_id = t.id
            progress.progress = "指定 [{}] 处理".format(target_user.name)

            db.session.add(t)
            db.session.add(progress)

        db_commit()

        return "", 200
Exemplo n.º 5
0
    def delete(self, server_id):
        server = Server.query.filter(Server.id == server_id).first()
        if not server:
            abort(400, message="Server does not exist")

        db.session.delete(server)
        db_commit()

        return "", 204
Exemplo n.º 6
0
    def delete(self, shift_id):
        shift = Shift.query.filter(Shift.id == shift_id).first()
        if not shift:
            abort(400, message="Shift does not exist")

        db.session.delete(shift)
        db_commit()

        return "", 204
Exemplo n.º 7
0
    def delete(self, user_id):
        # 查找用户
        user = User.query.filter(User.id == user_id).first()
        if not user:
            abort(400, message="User does not exist")

        db.session.delete(user)
        db_commit()

        return "", 204
Exemplo n.º 8
0
    def post(self):
        # 解析json数据
        args = classify_parser.parse_args()

        # 写入数据库
        classify = Classify(**args)

        db.session.add(classify)
        db_commit()

        return {
            'id': classify.id,
            'category': classify.category,
        }
Exemplo n.º 9
0
    def post(self):
        # 解析json数据
        args = shift_parser.parse_args()

        # 写入数据库
        shift = Shift(**args)

        db.session.add(shift)
        db_commit()

        return {
            'id': shift.id,
            'shift': shift.shift,
            'start_time': shift.start_time.strftime("%H:%M:%S"),
            'end_time': shift.end_time.strftime("%H:%M:%S"),
        }
Exemplo n.º 10
0
    def post(self):
        # 解析json数据
        args = server_parser.parse_args()

        # 写入数据库
        server = Server(**args)

        db.session.add(server)
        db_commit()

        return {
            'id': server.id,
            'hostname': server.hostname,
            'ip': server.ip,
            'app': server.app,
            'user': server.user.name,
            'remarks': server.remarks
        }
Exemplo n.º 11
0
    def put(self, shift_id):
        # 解析json数据
        args = shift_parser.parse_args()

        # 查找服务器
        shift = Shift.query.filter(Shift.id == shift_id).first()
        if not shift:
            abort(400, message="Shift does not exist")

        # 写入数据库
        shift.update(**args)

        db.session.add(shift)
        db_commit()

        return {
            'id': shift.id,
            'shift': shift.shift,
            'start_time': shift.start_time.strftime("%H:%M:%S"),
            'end_time': shift.end_time.strftime("%H:%M:%S"),
        }
Exemplo n.º 12
0
    def put(self, server_id):
        # 解析json数据
        args = server_parser.parse_args()

        # 查找服务器
        server = Server.query.filter(Server.id == server_id).first()
        if not server:
            abort(400, message="Server does not exist")

        # 写入数据库
        server.update(**args)

        db.session.add(server)
        db_commit()

        return {
            'id': server.id,
            'hostname': server.hostname,
            'ip': server.ip,
            'app': server.app,
            'user': server.user.name,
            'remarks': server.remarks
        }
Exemplo n.º 13
0
    def post(self):
        # 解析json数据
        args = user_parser.parse_args()

        # 写入数据库
        user = User(**args)
        passwd = gen_password(10)
        user.set_password(passwd)

        db.session.add(user)
        db_commit()

        send_password(user, passwd)

        return {
            'id': user.id,
            'account': user.account,
            'name': user.name,
            'is_super': user.is_super,
            'is_active': user.is_active,
            'email': user.email,
            'phone': user.phone,
            'remarks': user.remarks
        }
Exemplo n.º 14
0
    def post(self, ticket_id):
        ticket = Ticket.query.filter(
            Ticket.id == ticket_id).first()
        if not ticket:
            abort(400, message="Ticket does not exist")

        if ticket.status == 2:
            abort(400, message="The fault has been resolved")

        args = self.parser.parse_args()
        progress = Progress()
        progress.handle_time = datetime.now()
        progress.handler_id = get_jwt_identity()
        progress.ticket_id = ticket_id
        progress.progress = args["progress"]

        if args["status"] in [1, 2, 3]:
            ticket.status = args["status"]
            if args["status"] == 2:
                if not args["restore_time"]:
                    abort(400, message="Restore_time cannot be blank")
                ticket.restore_time = args["restore_time"]
        else:
            abort(400, message="Status value error")

        db.session.add(ticket)
        db.session.add(progress)
        db_commit()

        return {
            'id': progress.id,
            'handle_time': progress.handle_time.strftime("%Y-%m-%d %H:%M:%S"),
            'handler': progress.handler.name,
            'progress': progress.progress,
            'ticket_id': progress.ticket_id
        }