diff options
| author | rubenwardy <rw@rubenwardy.com> | 2018-03-18 18:14:55 +0000 |
|---|---|---|
| committer | rubenwardy <rw@rubenwardy.com> | 2018-03-18 18:14:55 +0000 |
| commit | 84f123a0ab529ac8a649e0e0ca4a49fd0c828db3 (patch) | |
| tree | 90e473f075c52107941ea8038307a93f7189fa8c /app | |
| parent | 7d20c49ebb2a59e54a77ab92f268acd7fe069383 (diff) | |
| download | cheatdb-84f123a0ab529ac8a649e0e0ca4a49fd0c828db3.tar.xz | |
Fix profile page
Diffstat (limited to 'app')
| -rw-r--r-- | app/templates/macros/forms.html | 42 | ||||
| -rw-r--r-- | app/templates/users/user_profile_page.html | 72 | ||||
| -rw-r--r-- | app/views/users.py | 12 |
3 files changed, 117 insertions, 9 deletions
diff --git a/app/templates/macros/forms.html b/app/templates/macros/forms.html new file mode 100644 index 0000000..a2b75a7 --- /dev/null +++ b/app/templates/macros/forms.html @@ -0,0 +1,42 @@ +{% macro render_field(field, label=None, label_visible=true, right_url=None, right_label=None) -%} + <div class="form-group {% if field.errors %}has-error{% endif %} {{ kwargs.pop('class_', '') }}"> + {% if field.type != 'HiddenField' and label_visible %} + {% if not label %}{% set label=field.label.text %}{% endif %} + <label for="{{ field.id }}" class="control-label">{{ label|safe }}</label> + {% endif %} + {{ field(class_='form-control', **kwargs) }} + {% if field.errors %} + {% for e in field.errors %} + <p class="help-block">{{ e }}</p> + {% endfor %} + {% endif %} + </div> +{%- endmacro %} + +{% macro render_checkbox_field(field, label=None) -%} + {% if not label %}{% set label=field.label.text %}{% endif %} + <div class="checkbox"> + <label> + {{ field(type='checkbox', **kwargs) }} {{ label }} + </label> + </div> +{%- endmacro %} + +{% macro render_radio_field(field) -%} + {% for value, label, checked in field.iter_choices() %} + <div class="radio"> + <label> + <input type="radio" name="{{ field.id }}" id="{{ field.id }}" value="{{ value }}"{% if checked %} checked{% endif %}> + {{ label }} + </label> + </div> + {% endfor %} +{%- endmacro %} + +{% macro render_submit_field(field, label=None, tabindex=None) -%} + {% if not label %}{% set label=field.label.text %}{% endif %} + {#<button type="submit" class="form-control btn btn-default btn-primary">{{label}}</button>#} + <input type="submit" value="{{label}}" + {% if tabindex %}tabindex="{{ tabindex }}"{% endif %} + > +{%- endmacro %} diff --git a/app/templates/users/user_profile_page.html b/app/templates/users/user_profile_page.html new file mode 100644 index 0000000..0eb6adb --- /dev/null +++ b/app/templates/users/user_profile_page.html @@ -0,0 +1,72 @@ +{% extends "base.html" %} + +{% block title %} + {{ user.username }} +{% endblock %} + +{% block content %} + +<div class="box box_grey"> + <h2>{{ user.username }}</h2> + + <table> + <tr> + <td>Accounts:</td> + <td> + {% if user.forums_username %} + <a href="https://forum.minetest.net/memberlist.php?mode=viewprofile&un={{ user.forums_username }}"> + Minetest Forum + </a> + {% elif user == current_user %} + <a href="">Link Forums Account</a> + {% endif %} + | + {% if user.github_username %} + <a href="https://github.com/{{ user.github_username }}">GitHub</a> + {% elif user == current_user %} + <a href="{{ url_for('github_signin_page') }}">Link Github</a> + {% endif %} + + {% if user == current_user %} + 🌎 + {% endif %} + </td> + </tr> + {% if user == current_user %} + <tr> + <td>Email:</td> + <td> + {{ user.email }} | + <a href="">{% if user.email %}change{% else %}add{% endif %}</a> + 🔒 + </td> + </tr> + <tr> + <td>Password:</td> + <td> + <a href="{{ url_for('user.change_password') }}"> + {% if user.password %}Change password{% else %}Add password{% endif %} + </a> 🔒 + </td> + </tr> + {% endif %} + </table> +</div> + +{% if form %} + {% from "macros/forms.html" import render_field, render_submit_field %} + <form class="box box_grey" action="" method="POST" class="form" role="form"> + <h2>Edit Details</h2> + + <div class="row"> + <div class="col-sm-6 col-md-5 col-lg-4"> + {{ form.hidden_tag() }} + + {{ render_field(form.display_name, tabindex=240) }} + + {{ render_submit_field(form.submit, tabindex=280) }} + </div> + </div> + </form> +{% endif %} +{% endblock %} diff --git a/app/views/users.py b/app/views/users.py index 99cf19c..1dc5e29 100644 --- a/app/views/users.py +++ b/app/views/users.py @@ -13,17 +13,11 @@ from flask_user.forms import RegisterForm from flask_wtf import FlaskForm from wtforms import StringField, SubmitField, validators class MyRegisterForm(RegisterForm): - first_name = StringField('First name', validators=[ - validators.DataRequired('First name is required')]) - last_name = StringField('Last name', validators=[ - validators.DataRequired('Last name is required')]) + display_name = StringField("Diplay name") # Define the User profile form class UserProfileForm(FlaskForm): - first_name = StringField('First name', validators=[ - validators.DataRequired('First name is required')]) - last_name = StringField('Last name', validators=[ - validators.DataRequired('Last name is required')]) + display_name = StringField("Diplay name") submit = SubmitField('Save') @app.route('/user/', methods=['GET', 'POST']) @@ -42,7 +36,7 @@ def user_profile_page(username=None): if user == current_user: # Initialize form - form = UserProfileForm(request.form, current_user) + form = UserProfileForm(formdata=request.form, obj=current_user) # Process valid POST if request.method=='POST' and form.validate(): |
