示例#1
0
def show_operators():
    query = OperatorQuery(get_db_session())
    operators = query.get_operators()
    skills = query.get_not_certified_skills()
    return render_template('operators.html',
                           operators=[x if x.ojt else x for x in operators],
                           skills=skills)
示例#2
0
def show_monthly_setting():
    team_id = request.args.get('team')
    session = get_db_session()
    team = UserQuery(session).get_team(team_id)
    operators = OperatorQuery(session).get_active_operators_of_team_id(team_id)
    return render_template('scheduler-monthly-setting.html',
                           team=team,
                           operators=operators)
示例#3
0
def get_monthly_setting():
    team_id = request.args.get('team-id')
    schedule_of = to_date(request.args.get('schedule-of'), '%Y-%m')
    scheduler = SchedulerQuery(
        get_db_session()).get_scheduler_of_team_id(team_id)
    monthly_setting = scheduler.monthly_setting(schedule_of.month,
                                                schedule_of.year)
    return jsonize.json_response(jsonize.dumps(monthly_setting))
示例#4
0
def login():
    user = UserFacadeAdapter(get_db_session()).login(
        jsonize.to_dict(request.form))
    if not user:
        flash('Invalid username or password, or inactivated user', 'error')
        return index()
    login_user(user)
    flash('You were logged in')
    return redirect(url_for('menu.show_menu'))
示例#5
0
def terminate_scheduler():
    session = get_db_session()
    try:
        SchedulerCommandAdapter(session).terminate(jsonize.loads(request.data))
        response = jsonize.json_response()
    except Exception as e:
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#6
0
def get_schedules():
    team_id = request.args.get('team-id')
    schedule_of = to_date(request.args.get('schedule-of'), '%Y-%m')
    day_settings, schedules = ScheduleFacade(get_db_session()).get_schedule(
        team_id, schedule_of.month, schedule_of.year)
    return jsonize.json_response(
        jsonize.dumps({
            'day_settings': day_settings,
            'schedules': schedules
        }))
示例#7
0
def show_basic_setting():
    team_id = request.args.get('team')
    session = get_db_session()
    team = UserQuery(session).get_team(team_id)
    skills = OperatorQuery(session).get_skills()
    operators = OperatorQuery(session).get_operators()
    return render_template('scheduler.html',
                           team=team,
                           skills=skills,
                           operators=operators)
示例#8
0
def remove_request(request_id):
    session = get_db_session()
    try:
        SchedulerCommandAdapter(session).remove_request(request_id)
        session.commit()
        response = jsonize.json_response()
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#9
0
def remove_skill(skill_id: str):
    session = get_db_session()
    try:
        OperatorCommandAdapter(session).delete_skill(skill_id)
        session.commit()
        response = jsonize.json_response()
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#10
0
def update_skill(skill_id: str):
    session = get_db_session()
    try:
        OperatorCommandAdapter(session).save_skill(jsonize.loads(request.data))
        session.commit()
        response = jsonize.json_response()
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#11
0
def withdraw_schedules():
    session = get_db_session()
    try:
        ScheduleCommandAdapter(session).withdraw_schedule(
            jsonize.loads(request.data))
        session.commit()
        response = jsonize.json_response()
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#12
0
def public_monthly_setting():
    session = get_db_session()
    try:
        SchedulerCommandAdapter(session).public_monthly_setting(
            jsonize.loads(request.data))
        session.commit()
        response = jsonize.json_response()
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#13
0
def append_vacation():
    session = get_db_session()
    try:
        req = SchedulerCommandAdapter(session).append_vacation(
            jsonize.loads(request.data))
        session.commit()
        session.refresh(req)
        response = jsonize.json_response(jsonize.dumps(req))
    except Exception as e:
        session.rollback()
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#14
0
def get_vacations():
    team_id = request.args.get('team-id')
    scheduler = SchedulerQuery(
        get_db_session()).get_scheduler_of_team_id(team_id)
    schedule_of = to_date(request.args.get('schedule-of'), '%Y-%m')

    def is_in_period(on_from, on_to):
        return (on_from.year == schedule_of.year and on_from.month <= schedule_of.month
                or on_from.year < schedule_of.year)\
                and (on_to.year == schedule_of.year and on_to.month >= schedule_of.month
                     or schedule_of.year < on_to.year)

    vacations = list(
        filter(lambda x: is_in_period(x.on_from, x.on_to),
               scheduler.vacations))
    return jsonize.json_response(jsonize.dumps(vacations))
示例#15
0
def launch_scheduler():
    session = get_db_session()
    try:
        print("#### start time: {}".format(
            strftime("%a, %d %b %Y %H:%M:%S", localtime())))
        SchedulerCommandAdapter(session).launch(jsonize.loads(request.data))
        print("#### fin time: {}".format(
            strftime("%a, %d %b %Y %H:%M:%S", localtime())))
        session.commit()
        response = jsonize.json_response()
    except AlreadyLaunchError as e:
        print(e)
        response = jsonize.json_response(
            'already launched this team scheduler. please wait util its completion.',
            status_code=400)
    except Exception as e:
        print(e)
        response = jsonize.json_response(status_code=400)
    return response
示例#16
0
def get_operators():
    operators = OperatorQuery(get_db_session()).get_operators()
    return jsonize.json_response(jsonize.dumps(operators))
示例#17
0
def show_users():
    session = get_db_session()
    users = UserQuery(session).get_users()
    teams = UserQuery(session).get_teams()
    roles = [UserRole.DEVELOPER, UserRole.ADMINISTRATOR, UserRole.OPERATOR]
    return render_template('users.html', users=users, teams=teams, roles=roles)
示例#18
0
def show_teams():
    team_repository = UserQuery(get_db_session())
    teams = team_repository.get_teams()
    return render_template('teams.html', teams=teams)
示例#19
0
def get_work_categories():
    team_id = request.args.get('team-id')
    scheduler = SchedulerQuery(
        get_db_session()).get_scheduler_of_team_id(team_id)
    work_categories = scheduler.work_categories
    return jsonize.json_response(jsonize.dumps(work_categories))
示例#20
0
def get_scheduler():
    team_id = request.args.get('team-id')
    scheduler = SchedulerQuery(
        get_db_session()).get_scheduler_of_team_id(team_id)
    return jsonize.json_response(jsonize.dumps(scheduler))
示例#21
0
def show_menu():
    session = get_db_session()
    teams = UserQuery(session).get_teams_without_default()
    return render_template('scheduler-menu.html', teams=teams)
示例#22
0
def show_vacations():
    team_id = request.args.get('team')
    session = get_db_session()
    team = UserQuery(session).get_team(team_id)
    return render_template('vacations.html', team=team)
示例#23
0
def get_launch_histories():
    histories = SchedulerQuery(get_db_session()).get_launch_histories()
    return jsonize.json_response(jsonize.dumps(histories))
示例#24
0
def show_my_request():
    operator = OperatorQuery(get_db_session()).get_operator_of_user_id(
        current_user.id)
    return render_template('request.html', current_operator=operator)
示例#25
0
def show_myself(operator_id):
    query = OperatorQuery(get_db_session())
    operator = query.get_operator(operator_id)
    skills = query.get_certified_skills()
    return render_template('operator.html', operator=operator, skills=skills)
示例#26
0
def get_current_runners():
    current_runners = SchedulerQuery(get_db_session()).get_current_runners()
    return jsonize.json_response(jsonize.dumps(current_runners))
示例#27
0
def show_skills():
    query = OperatorQuery(get_db_session())
    return render_template('skills.html', skills=query.get_skills())
示例#28
0
def load_user(user_id):
    return UserQuery(get_db_session()).get_user(user_id)