From 8ffcbca4d585b2bc06c50e471a5b123b4b434744 Mon Sep 17 00:00:00 2001 From: aldacron Date: Wed, 17 May 2017 00:53:07 -0700 Subject: [PATCH] improved profile page user flow. clears data on success and shows current email. also, flashes success message if successful --- nyaa/routes.py | 12 +++++++++--- nyaa/templates/profile.html | 6 ++++++ 2 files changed, 15 insertions(+), 3 deletions(-) diff --git a/nyaa/routes.py b/nyaa/routes.py index a0c312c..a538a8b 100644 --- a/nyaa/routes.py +++ b/nyaa/routes.py @@ -402,7 +402,7 @@ def profile(): form = forms.ProfileForm(flask.request.form) if flask.request.method == 'POST' and form.validate(): user = flask.g.user - new_email = form.email.data + new_email = form.email.data.strip() new_password = form.new_password.data if new_email: @@ -412,20 +412,26 @@ def profile(): 'Email change failed! Incorrect password.'), 'danger') return flask.redirect('/profile') user.email = form.email.data - + flask.flash(flask.Markup( + 'Email successfully changed!'), 'info') if new_password: if form.current_password.data != user.password_hash: flask.flash(flask.Markup( 'Password change failed! Incorrect password.'), 'danger') return flask.redirect('/profile') user.password_hash = form.new_password.data + flask.flash(flask.Markup( + 'Password successfully changed!'), 'info') db.session.add(user) db.session.commit() flask.g.user = user + return flask.redirect('/profile') - return flask.render_template('profile.html', form=form) + current_email = models.User.by_id(flask.g.user.id).email + + return flask.render_template('profile.html', form=form, email=current_email) @app.route('/user/activate/') diff --git a/nyaa/templates/profile.html b/nyaa/templates/profile.html index 9206730..8c84cbf 100644 --- a/nyaa/templates/profile.html +++ b/nyaa/templates/profile.html @@ -43,6 +43,12 @@
{{ form.csrf_token }} +
+
+ +
{{email}}
+
+
{{ render_field(form.email, class_='form-control', placeholder='New email address') }}