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)
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)