aboutsummaryrefslogtreecommitdiffstats
path: root/famille.py
diff options
context:
space:
mode:
authorThibaut Horel <thibaut.horel@gmail.com>2012-11-08 22:22:36 +0100
committerThibaut Horel <thibaut.horel@gmail.com>2012-11-08 22:22:36 +0100
commit8ab3ac64902e3216feaf6333a6ab93a0175b8b51 (patch)
treec522a9cf9638305779339b2e4b2c8a63ac444cdc /famille.py
parent3e83f67dd0f3e16631207596f849e0977aa6d020 (diff)
downloadfamille-flask-8ab3ac64902e3216feaf6333a6ab93a0175b8b51.tar.gz
User feature (view and edit profile)
Diffstat (limited to 'famille.py')
-rw-r--r--famille.py38
1 files changed, 37 insertions, 1 deletions
diff --git a/famille.py b/famille.py
index 1c2cdfc..e4174ca 100644
--- a/famille.py
+++ b/famille.py
@@ -127,7 +127,39 @@ def edit_news(news_id):
@app.route('/user/<int:user_id>/')
@login_required
def view_user(user_id):
- pass
+ user = query_db('SELECT * FROM users WHERE id= ?', (session['user_id'],), True)
+ return render_template("user/show.html", user=user)
+
+@app.route('/user/edit/', methods=['GET', 'POST'])
+@login_required
+def edit_user():
+ if request.method == 'GET':
+ user = query_db('SELECT * FROM users WHERE id= ?', (session['user_id'],),
+ True)
+ user = {k: user[k] for k in user.keys() if user[k]}
+ return render_template("user/edit.html", user=user)
+ elif request.method == 'POST':
+ result = {}
+ try:
+ if request.form['password'] == request.form['password_confirm']:
+ result['password'] =hashlib.md5(request.form['password']).hexdigest()
+ else:
+ error = u"Les deux mots de passe ne coïncident pas"
+ return render_template("user/edit.html", user=request.form,
+ error=error)
+ except KeyError:
+ pass
+ result["notify"] = 1 if "notify" in request.form else 0
+ for key in ['email', 'phone', 'birthday', 'nameday', 'address_line1',
+ 'address_line2', 'address_city_line']:
+ result[key] = request.form[key].encode("utf8")
+ set_string = ",".join("'{}'='{}'".format(key, value)
+ for key,value in result.iteritems())
+ print set_string
+ g.db.execute("UPDATE users SET {} where id=?".format(set_string),
+ (session['user_id'],))
+ g.db.commit()
+ return redirect(url_for('view_user', user_id=session['user_id']))
@app.route('/login/', methods=['GET', 'POST'])
def login():
@@ -143,6 +175,10 @@ def login():
if user['password'] == password:
session['user_name'] = user['user_name']
session['user_id'] = user['id']
+ g.db.execute("UPDATE users SET last_seen=? WHERE id=?",
+ (datetime.utcnow().strftime("%Y-%m-%dT%H:%M:%SZ"),
+ session['user_id']))
+ g.db.commit()
return redirect(url_for('list_news'))
else:
error = u'Mot de passe incorrect'