]> git.lizzy.rs Git - cheatdb.git/blob - app/views/users.py
Add user list
[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("Display name")
17
18 # Define the User profile form
19 class UserProfileForm(FlaskForm):
20         display_name = StringField("Display name")
21         submit = SubmitField("Save")
22
23 @app.route("/users/", methods=["GET"])
24 def user_list_page():
25         users = User.query.all()
26         return render_template("users/list.html", users=users)
27
28
29 @app.route("/users/<username>/", methods=["GET", "POST"])
30 def user_profile_page(username):
31         user = User.query.filter_by(username=username).first()
32         if not user:
33                 abort(404)
34
35         form = None
36         if user == current_user:
37                 # Initialize form
38                 form = UserProfileForm(formdata=request.form, obj=current_user)
39
40                 # Process valid POST
41                 if request.method=="POST" and form.validate():
42                         # Copy form fields to user_profile fields
43                         form.populate_obj(current_user)
44
45                         # Save user_profile
46                         db.session.commit()
47
48                         # Redirect to home page
49                         return redirect(url_for("home_page"))
50
51         # Process GET or invalid POST
52         return render_template("users/user_profile_page.html",
53                         user=user, form=form)