aboutsummaryrefslogtreecommitdiff
diff options
context:
space:
mode:
authorrubenwardy <rw@rubenwardy.com>2018-03-18 18:14:55 +0000
committerrubenwardy <rw@rubenwardy.com>2018-03-18 18:14:55 +0000
commit84f123a0ab529ac8a649e0e0ca4a49fd0c828db3 (patch)
tree90e473f075c52107941ea8038307a93f7189fa8c
parent7d20c49ebb2a59e54a77ab92f268acd7fe069383 (diff)
downloadcheatdb-84f123a0ab529ac8a649e0e0ca4a49fd0c828db3.tar.xz
Fix profile page
-rw-r--r--app/templates/macros/forms.html42
-rw-r--r--app/templates/users/user_profile_page.html72
-rw-r--r--app/views/users.py12
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 %}
+ &#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 %}
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():