]> git.lizzy.rs Git - cheatdb.git/blob - app/views/users.py
Fix profile page
[cheatdb.git] / app / views / users.py
1 from flask import *
2 from flask_user import *
3 from flask_login import login_user, logout_user
4 from flask.ext import menu
5 from app import app
6 from app.models import *
7
8
9
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")
17
18 # Define the User profile form
19 class UserProfileForm(FlaskForm):
20         display_name = StringField("Diplay name")
21         submit = SubmitField('Save')
22
23 @app.route('/user/', methods=['GET', 'POST'])
24 @app.route('/user/<username>/', methods=['GET'])
25 def user_profile_page(username=None):
26         user = None
27         form = None
28         if username is None:
29                 if not current_user.is_authenticated:
30                         return current_app.login_manager.unauthorized()
31                 user = current_user
32         else:
33                 user = User.query.filter_by(username=username).first()
34                 if not user:
35                         abort(404)
36
37         if user == current_user:
38                 # Initialize form
39                 form = UserProfileForm(formdata=request.form, obj=current_user)
40
41                 # Process valid POST
42                 if request.method=='POST' and form.validate():
43                         # Copy form fields to user_profile fields
44                         form.populate_obj(current_user)
45
46                         # Save user_profile
47                         db.session.commit()
48
49                         # Redirect to home page
50                         return redirect(url_for('home_page'))
51
52         # Process GET or invalid POST
53         return render_template('users/user_profile_page.html',
54                         user=user, form=form)