def register():
    form = RegisterUserForm()
    if form.validate_on_submit():
        if form.password.data != form.repeat_password.data:
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Пароли не совпадают")
        session = db_session.create_session()
        if session.query(User).filter(
                User.email == form.username.data).first():
            return render_template('register.html',
                                   title='Регистрация',
                                   form=form,
                                   message="Такой пользователь уже есть")
        user = User(surname=form.surname.data,
                    name=form.name.data,
                    age=form.age.data,
                    position=form.position.data,
                    speciality=form.speciality.data,
                    address=form.address.data,
                    email=form.username.data,
                    hashed_password=form.password.data)
        user.set_password(form.password.data)
        session.add(user)
        session.commit()
        return redirect('/success')
    return render_template('register.html', title='Регистрация', form=form)
def edit_jobs(id):
    form = EditForm()
    if request.method == "GET":
        session = db_session.create_session()
        jobs = session.query(Jobs).filter(Jobs.id == id,
                                          Jobs.user == current_user).first()
        if not jobs:
            jobs = session.query(Jobs).filter(Jobs.id == id,
                                              current_user.id == 1).first()
        if jobs:
            form.teamlider.data = jobs.team_leader
            form.job.data = jobs.job
            form.work_size.data = jobs.work_size
            form.collaborators.data = jobs.collaborators
            form.start_date.data = jobs.start_date
            form.end_date.data = jobs.end_date
            form.is_finished.data = jobs.is_finished
        else:
            abort(404)
    if form.validate_on_submit():
        session = db_session.create_session()
        jobs = session.query(Jobs).filter(Jobs.id == id,
                                          Jobs.user == current_user).first()
        if not jobs:
            jobs = session.query(Jobs).filter(Jobs.id == id,
                                              current_user.id == 1).first()
        if jobs:
            jobs.team_leader = form.teamlider.data
            jobs.job = form.job.data
            jobs.work_size = form.work_size.data
            jobs.collaborators = form.collaborators.data
            jobs.start_date = form.start_date.data
            jobs.end_date = form.end_date.data
            jobs.is_finished = form.is_finished.data
            session.commit()
            return redirect('/works_log')
        else:
            abort(404)
    return render_template('register_job.html',
                           title='Редактирование новости',
                           form=form)
def login():
    form = LoginForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        user = session.query(User).filter(
            User.email == form.email.data).first()
        if user and user.check_password(form.password.data):
            login_user(user, remember=form.remember_me.data)
            return redirect("/works_log")
        return render_template('login.html',
                               message="Неправильный логин или пароль",
                               form=form)
    return render_template('login.html', title='Авторизация', form=form)
def jobs_delete(id):
    session = db_session.create_session()
    jobs = session.query(Jobs).filter(Jobs.id == id,
                                      Jobs.user == current_user).first()
    if not jobs:
        jobs = session.query(Jobs).filter(Jobs.id == id,
                                          current_user.id == 1).first()
    if jobs:
        session.delete(jobs)
        session.commit()
    else:
        abort(404)
    return redirect('/')
def reqister_job():
    form = RegisterForm()
    if form.validate_on_submit():
        session = db_session.create_session()
        job = Jobs(
            team_leader=session.query(User).filter(
                User.name == form.teamlider.data.split()[0],
                User.surname == form.teamlider.data.split()[1])[0].id,
            job=form.job.data,
            work_size=form.work_size.data,
            collaborators=form.collaborators.data,
            start_date=datetime(
                *list(map(int, form.start_date.data.split('.')))),
            end_date=datetime(*list(map(int, form.end_date.data.split('.')))),
            is_finished=form.is_finished.data)
        session.add(job)
        session.commit()
        return redirect('/works_log')
    return render_template('register_job.html',
                           title='Регистрация работы',
                           form=form)
def load_user(user_id):
    session = db_session.create_session()
    return session.query(User).get(user_id)
    map_params = {
        "ll": ",".join([str(toponym_longitude),
                        str(toponym_lattitude)]),
        "l": "sat",
        "spn": f'{delta_1},{delta_2}'
    }

    map_api_server = "http://static-maps.yandex.ru/1.x/"
    configure['image_url'] = requests.get(map_api_server,
                                          params=map_params,
                                          stream=True).url
    return render_template('user_show.html', **configure)


@app.errorhandler(404)
def not_found(error):
    return make_response(jsonify({'error': 'Not found'}), 404)


if __name__ == '__main__':
    db_session.global_init("static/db/blogs.sqlite")
    session = db_session.create_session()
    app.register_blueprint(jobs_api.blueprint)
    app.register_blueprint(user_api.blueprint2)
    api.add_resource(users_resource.userListResource, '/api/v2/users')
    api.add_resource(users_resource.userResource,
                     '/api/v2/users/<int:user_id>')
    api.add_resource(jobs_resource.jobsListResource, '/api/v2/jobs')
    api.add_resource(jobs_resource.jobsResource, '/api/v2/jobs/<int:jobs_id>')
    app.run(port=8080, host='127.0.0.1')