Skip to content
Snippets Groups Projects
Commit 0cdb11ae authored by kaiyou's avatar kaiyou
Browse files

Add a contact info field for users

parent 8e0bd7c5
No related branches found
No related tags found
No related merge requests found
......@@ -28,3 +28,9 @@ class PasswordForm(flask_wtf.FlaskForm):
password2 = fields.PasswordField(_('Confirm new password'),
[validators.DataRequired(), validators.EqualTo('password')])
submit = fields.SubmitField(_('Change password'))
class ContactForm(flask_wtf.FlaskForm):
email = fields.StringField(_("Email address"), [validators.Email()])
matrix = fields.StringField(_("Matrix ID"), [])
submit = fields.SubmitField(_("Update contact info"))
......@@ -21,3 +21,17 @@ def password():
else:
flask.flash("Wrong credentials, check your old password", "danger")
return flask.render_template("account_password.html", form=form)
@blueprint.route("/contact", methods=["GET", "POST"])
@security.authentication_required()
def contact():
user = flask_login.current_user
form = forms.ContactForm()
if form.validate_on_submit():
user.contact = form.data
models.db.session.add(user)
models.db.session.commit()
flask.flash("Successfully updated your contact info", "success")
form.process(**user.contact)
return flask.render_template("account_contact.html", form=form)
{% extends "form.html" %}
{% block title %}{% trans %}Update contact info{% endtrans %}{% endblock %}
......@@ -77,6 +77,7 @@ class User(db.Model):
username = db.Column(db.String(255), nullable=False, unique=True)
is_admin = db.Column(db.Boolean(), nullable=False, default=False)
contact = db.Column(mutable.MutableDict.as_mutable(JSONEncoded))
# Flask-login attributes
is_authenticated = True
......
""" Add a contact info field
Revision ID: ebc103f8bc5e
Revises: fa59f288c9f2
Create Date: 2019-12-11 16:05:46.359886
"""
from alembic import op
import sqlalchemy as sa
import hiboo
revision = 'ebc103f8bc5e'
down_revision = 'fa59f288c9f2'
branch_labels = None
depends_on = None
def upgrade():
with op.batch_alter_table('user') as batch_op:
batch_op.add_column(sa.Column('contact', hiboo.models.JSONEncoded(), nullable=True))
def downgrade():
with op.batch_alter_table('user') as batch_op:
batch_op.drop_column('contact')
0% Loading or .
You are about to add 0 people to the discussion. Proceed with caution.
Finish editing this message first!
Please register or to comment