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("Diplay name")
18 # Define the User profile form
19 class UserProfileForm(FlaskForm):
20 display_name = StringField("Diplay name")
21 submit = SubmitField('Save')
23 @app.route('/user/', methods=['GET', 'POST'])
24 @app.route('/user/<username>/', methods=['GET'])
25 def user_profile_page(username=None):
29 if not current_user.is_authenticated:
30 return current_app.login_manager.unauthorized()
33 user = User.query.filter_by(username=username).first()
37 if user == current_user:
39 form = UserProfileForm(formdata=request.form, obj=current_user)
42 if request.method=='POST' and form.validate():
43 # Copy form fields to user_profile fields
44 form.populate_obj(current_user)
49 # Redirect to home page
50 return redirect(url_for('home_page'))
52 # Process GET or invalid POST
53 return render_template('users/user_profile_page.html',