2 from flask_user import *
3 from flask_login import login_user, logout_user
4 from flask.ext import menu
6 from app.models import *
10 # Define the User registration form
11 # It augments the Flask-User RegisterForm with additional fields
12 from flask_user.forms import RegisterForm
13 from flask_wtf import FlaskForm
14 from wtforms import StringField, SubmitField, validators
15 class MyRegisterForm(RegisterForm):
16 display_name = StringField("Display name")
18 # Define the User profile form
19 class UserProfileForm(FlaskForm):
20 display_name = StringField("Display name")
21 submit = SubmitField("Save")
23 @app.route("/users/", methods=["GET"])
25 users = User.query.all()
26 return render_template("users/list.html", users=users)
29 @app.route("/users/<username>/", methods=["GET", "POST"])
30 def user_profile_page(username):
31 user = User.query.filter_by(username=username).first()
36 if user == current_user:
38 form = UserProfileForm(formdata=request.form, obj=current_user)
41 if request.method=="POST" and form.validate():
42 # Copy form fields to user_profile fields
43 form.populate_obj(current_user)
48 # Redirect to home page
49 return redirect(url_for("home_page"))
51 # Process GET or invalid POST
52 return render_template("users/user_profile_page.html",