diff --git a/app/forms.py b/app/forms.py
index 6938e22..2e1aaff 100644
--- a/app/forms.py
+++ b/app/forms.py
@@ -1,6 +1,6 @@
from flask_login import current_user
from flask_wtf import FlaskForm
-from wtforms import StringField, PasswordField, BooleanField, TextAreaField, SubmitField
+from wtforms import StringField, PasswordField, BooleanField, TextAreaField, SubmitField, FileField
from wtforms.fields.html5 import DateField
from wtforms.validators import ValidationError, DataRequired, Optional, Email, EqualTo
from app.models.users import Member
@@ -48,6 +48,7 @@ class RegistrationForm(FlaskForm):
submit = SubmitField('S\'enregistrer')
class UpdateAccountForm(FlaskForm):
+ avatar = FileField('Avatar :', validators=[])
email = StringField('Adresse Email :', validators=[Optional(), Email(), validate_email])
password = PasswordField('Mot de passe :', validators=[Optional(), validate_password])
password2 = PasswordField('Répéter le mot de passe', validators=[Optional(), EqualTo('password')])
diff --git a/app/routes.py b/app/routes.py
index 1fa5293..a1cd895 100644
--- a/app/routes.py
+++ b/app/routes.py
@@ -5,23 +5,33 @@ from app import app, db
from app.forms import LoginForm, RegistrationForm, UpdateAccountForm
from app.models.users import Member
+# Ce truc c'est la vie !
+def _render_template(*args, **kwargs):
+ # TODO: debugguer cette merde : au logout, ça foire
+ # if current_user.is_authenticated:
+ # login_form = LoginForm()
+ # return render_template(*args, **kwargs, login_form=login_form)
+ # return render_template(*args, **kwargs)
+ login_form = LoginForm()
+ return render_template(*args, **kwargs, login_form=login_form)
+
@app.route('/')
def index():
login_form = LoginForm()
- return render_template('index.html', login_form=login_form)
+ return _render_template('index.html')
@app.route('/login', methods=['GET', 'POST'])
def login():
if request.method == 'GET':
return redirect(url_for('index'))
login_form = LoginForm()
- if form.validate_on_submit():
- member = Member.query.filter_by(username=form.username.data).first()
- if member is None or not member.check_password(form.password.data):
+ if login_form.validate_on_submit():
+ member = Member.query.filter_by(username=login_form.username.data).first()
+ if member is None or not member.check_password(login_form.password.data):
flash('Pseudo ou mot de passe invalide', 'error')
return redirect(request.referrer)
- login_user(member, remember=form.remember_me.data)
+ login_user(member, remember=login_form.remember_me.data)
flash('Connexion réussie', 'info')
return redirect(request.referrer)
@@ -37,43 +47,40 @@ def account():
if not current_user.is_authenticated:
flash('Veuillez vous authentifier', 'warning')
return redirect(url_for('index'))
- login_form = LoginForm()
- form2 = UpdateAccountForm()
+ form = UpdateAccountForm()
if request.method == "POST":
- if form2.validate_on_submit():
+ if form.validate_on_submit():
current_user.update(
- email = form2.email.data,
- password = form2.password.data,
- signature = form2.signature.data,
- biography = form2.biography.data,
- birthday = form2.birthday.data,
- receive_newsletter = form2.newsletter.data)
+ email = form.email.data,
+ password = form.password.data,
+ signature = form.signature.data,
+ biography = form.biography.data,
+ birthday = form.birthday.data,
+ receive_newsletter = form.newsletter.data)
db.session.add(current_user)
db.session.commit()
flash('Modifications effectuées', 'ok')
else:
flash('Erreur lors de la modification', 'error')
- return render_template('account.html', login_form=login_form, form2=form2)
+ return _render_template('account.html', form=form)
@app.route('/register', methods=['GET', 'POST'])
def register():
if current_user.is_authenticated:
return redirect(url_for('index'))
- login_form = LoginForm()
- form2 = RegistrationForm()
- if form2.validate_on_submit():
- member = Member(form2.username.data, form2.email.data, form2.password.data)
+ form = RegistrationForm()
+ if form.validate_on_submit():
+ member = Member(form.username.data, form.email.data, form.password.data)
member.biography = ""
member.signature = ""
db.session.add(member)
db.session.commit()
flash('Inscription réussie', 'ok')
return redirect(url_for('validation'))
- return render_template('register.html', title='Register', login_form=login_form, form2=form2)
+ return _render_template('register.html', title='Register', form=form)
@app.route('/register/validation/')
def validation():
if current_user.is_authenticated :
return redirect(url_for('index'))
- login_form = LoginForm()
- return render_template('validation.html', login_form=login_form)
+ return _render_template('validation.html')
diff --git a/app/static/css/container.css b/app/static/css/container.css
index f390b72..2c61111 100644
--- a/app/static/css/container.css
+++ b/app/static/css/container.css
@@ -7,6 +7,7 @@ section {
}
section h1 {
+ margin-top: 0;
border-bottom: 1px solid #a0a0a0;
font-family: Raleway; font-size: 32px;
font-weight: 200; color: #242424;
@@ -23,5 +24,3 @@ section h1 {
font-family: Raleway; font-size: 20px;
font-weight: 200; color: #242424;
} */
-
-
diff --git a/app/static/css/form.css b/app/static/css/form.css
new file mode 100644
index 0000000..49a4fc1
--- /dev/null
+++ b/app/static/css/form.css
@@ -0,0 +1,61 @@
+.form {
+ min-width: 350px;
+ margin: 20px auto 0; padding: 20px;
+ background: #ffffff;
+ border: 1px solid #dddddd; border-radius: 5px;
+}
+
+.form .avatar {
+ display: inline-block; vertical-align: middle;
+ border-radius: 100%;
+ width: 150px; height: 150px;
+}
+.form input[type="file"] {
+ display: inline-block; margin-left: 20px;
+ vertical-align: middle;
+}
+
+.form form > div:not(:last-child) {
+ margin-bottom: 15px;
+}
+
+.form form label {
+ display: inline-block;
+ margin-bottom: 5px;
+}
+
+.form input[type='text'],
+.form input[type='email'],
+.form input[type='date'],
+.form input[type='password'],
+.form textarea {
+ display: block;
+ width: 100%; padding: 6px 2.5%;
+ border: 1px solid #abcdef;
+}
+.form input[type='text']:focus,
+.form input[type='email']:focus,
+.form input[type='date']:focus,
+.form input[type='password']:focus,
+.form textarea:focus {
+ box-shadow: 0 0 4px rgba(0, 102, 255, .9);
+}
+
+.form input[type="submit"] {
+ width: 100%;
+ background-color: #149641;
+ border-color: #0e692d;
+ color: #ffffff;
+}
+.form input[type="submit"]:hover,
+.form input[type="submit"]:focus,
+.form input[type="submit"]:active {
+ background-color: #0f7331;
+ border-color: #073617;
+}
+
+.form form .msgerror {
+ color: red;
+ font-weight: 400;
+ margin-top: 5px;
+}
\ No newline at end of file
diff --git a/app/templates/account.html b/app/templates/account.html
index 9d75259..7cf5133 100644
--- a/app/templates/account.html
+++ b/app/templates/account.html
@@ -1,71 +1,77 @@
{% extends "base/container.html" %}
{% block content %}
-Gestion du compte :
+Gestion du compte :
-
New User? Click to Register!
{% endblock %} diff --git a/app/templates/register.html b/app/templates/register.html index 846b7dc..10ab547 100644 --- a/app/templates/register.html +++ b/app/templates/register.html @@ -1,57 +1,56 @@ {% extends "base/container.html" %} {% block content %} -