Ejemplo n.º 1
0
def signup():
    """Handles user signup"""

    form = UserForm()

    if form.validate_on_submit():
        print(f'form.city.data: {form.city.data}')
        print(f'form.state.data.id: {form.state.data.id}')
        city = City.get_city_from_query(form.city.data, form.state.data.id)
        try:
            user = User.signup(username=form.username.data,
                               password=form.password.data,
                               email=form.email.data,
                               image_url=form.image_url.data,
                               city_id=city.id)
            db.session.commit()

        except IntegrityError:
            db.session.rollback()
            flash("Username or email already taken", "danger")
            return render_template('users/signup.html', form=form)
        except:
            flash("Unexpected error. Please try again.", "danger")
            return render_template('users/signup.html', form=form)

        do_login(user)

        return redirect("/")

    else:
        return render_template('users/signup.html', form=form)
Ejemplo n.º 2
0
def edit_profile():
    """Update profile for current user."""

    if not g.user:
        flash("Access unauthorized.", "danger")
        return redirect("/")

    form = UserForm(username=g.user.username,
                    email=g.user.email,
                    password=g.user.password,
                    image_url=g.user.image_url,
                    city=g.user.city.name,
                    state=g.user.city.state)
    if form.validate_on_submit():
        user = User.authenticate(form.username.data, form.password.data)
        if not user:
            flash('Password was incorrect. Please try again.', 'danger')
            return redirect('/profile')
        else:
            user.username = form.username.data
            user.email = form.email.data
            user.image_url = form.image_url.data
            user.city_id = City.get_city_from_query(form.city.data,
                                                    form.state.data.id).id
            db.session.add(user)
            db.session.commit()
            flash('Successfully updated your profile!', 'success')
            return redirect('/profile')
    else:
        return render_template('users/edit_profile.html', form=form)