Esempio n. 1
0
def user_registration(form):
    """

    :param form:
    :return: msg_type, status
    """
    # alert - success
    # alert - warning
    # alert - danger

    msg_type = None
    status = None

    if form.password.data != form.password_repeat.data:
        return 'danger', 'Пароли не совпадают'
    check_data = check_user_data_in_db(form.email.data, form.user_name.data)

    if check_data is not None:
        return 'danger', check_data

    if form.email.data.rfind('@') > form.email.data.rfind('.'):
        return 'danger', "Формат почты [email protected]"

    if form.user_name.data.find('@') != -1:
        return 'danger', "Ник не может содержать '@' символы"

    user = User()

    user.account_type = int(form.data['account_type'])
    user.user_name = form.user_name.data
    user.set_password(form.password.data)
    user.surname = form.surname.data
    user.name = form.name.data
    user.birthday = datetime.datetime.strptime(form.birthday.data, '%Y-%m-%d')
    user.photo = form.data['photo'].read()
    user.email = form.email.data
    user.about_me = form.about_me.data

    session = db_session.create_session()
    session.add(user)
    session.commit()

    if int(form.data['account_type']) == 2:
        director = Director()
        director.director_id = user.id
        session.add(director)
    elif int(form.data["account_type"]) == 3:
        worker = Worker()
        worker.worker_id = user.id
        session.add(worker)

    session.commit()
    return 'success', "Аккаунт успешно зарегистрирован "