diff options
Diffstat (limited to 'famille.py')
| -rw-r--r-- | famille.py | 38 |
1 files changed, 37 insertions, 1 deletions
@@ -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' |
