Fix profile page

This commit is contained in:
rubenwardy 2018-03-18 18:14:55 +00:00
parent 7d20c49ebb
commit 84f123a0ab
3 changed files with 117 additions and 9 deletions

@ -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 %}

@ -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 %}
&#x1f30e;
{% endif %}
</td>
</tr>
{% if user == current_user %}
<tr>
<td>Email:</td>
<td>
{{ user.email }} |
<a href="">{% if user.email %}change{% else %}add{% endif %}</a>
&#x1f512;
</td>
</tr>
<tr>
<td>Password:</td>
<td>
<a href="{{ url_for('user.change_password') }}">
{% if user.password %}Change password{% else %}Add password{% endif %}
</a> &#x1f512;
</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 %}

@ -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():