aboutsummaryrefslogtreecommitdiffstats
path: root/famille.py
diff options
context:
space:
mode:
authorGuillaume Horel <guillaume.horel@gmail.com>2012-11-10 16:54:34 -0500
committerGuillaume Horel <guillaume.horel@gmail.com>2012-11-10 16:54:34 -0500
commitbefef25e71eef3bf9150e7ac6718ad7f149ff3f0 (patch)
tree423f52e79ce49f23c03faa941f61742530efe514 /famille.py
parent0ae7f695448d5384f9fc6037e7acc7177fd55f55 (diff)
downloadfamille-flask-befef25e71eef3bf9150e7ac6718ad7f149ff3f0.tar.gz
The time is be displayed in the user timezone
I can't make the user edit template work The dropdown doesn't default to the current timezone.
Diffstat (limited to 'famille.py')
-rw-r--r--famille.py16
1 files changed, 11 insertions, 5 deletions
diff --git a/famille.py b/famille.py
index 203bc23..47e98ea 100644
--- a/famille.py
+++ b/famille.py
@@ -5,6 +5,8 @@ from flask import Flask, request, session, g, redirect, url_for, \
abort, render_template, flash, _app_ctx_stack
from functools import wraps
import hashlib
+from pytz import timezone
+import pytz
from docutils import core
from docutils.writers.html4css1 import Writer
from datetime import datetime
@@ -36,7 +38,7 @@ def format_date(date_object, format=u"%a %d %b %Y à %Hh%M"):
if not date_object:
return ""
format = format.encode("utf8")
- return date_object.strftime(format).decode("utf8")
+ return date_object.replace(tzinfo=timezone('utc')).astimezone(timezone(session['timezone'])).strftime(format).decode("utf8")
@app.template_filter('pluralize')
def pluralize(word, count, plural=None):
@@ -61,6 +63,7 @@ def before_request():
detect_types=sqlite3.PARSE_DECLTYPES)
conn.row_factory = sqlite3.Row
g.db = conn
+ g.timezone = pytz.common_timezones
@app.teardown_appcontext
def close_db_connection(exception):
@@ -118,7 +121,8 @@ def add_news():
@app.route('/news/<int:news_id>/', methods=['GET', 'POST'])
@login_required
def show_news(news_id):
- news = query_db("SELECT * FROM news LEFT JOIN users ON news.user_id = users.id "
+ news = query_db("SELECT * FROM news LEFT JOIN users "
+ "ON news.user_id = users.id "
"WHERE news.id = ?", (news_id,), True)
if request.method == 'GET':
comments = query_db("SELECT * FROM comments LEFT JOIN users "
@@ -132,7 +136,8 @@ def show_news(news_id):
content_cache = rstify(content)
g.db.execute("INSERT INTO comments "
"('user_id', 'content', 'news_id', 'content_cache') "
- "VALUES (?, ?, ?, ?)", (user_id, content, news_id, content_cache))
+ "VALUES (?, ?, ?, ?)",
+ (user_id, content, news_id, content_cache))
g.db.commit()
return redirect(url_for('show_news', news_id=news_id))
@@ -180,7 +185,7 @@ def edit_user():
pass
args = tuple(request.form[key].encode("utf8") for key in \
['email', 'phone', 'birthday', 'nameday', 'address_line1', \
- 'address_line2', 'address_city_line'])
+ 'address_line2', 'address_city_line', 'timezone'])
args += ("notify" in request.form, session['user_id'])
sqlstr = "UPDATE users SET email= ?, phone=?, birthday=?, nameday=?," \
"address_line1=?, address_line2=?, address_city_line=?, notify=? " \
@@ -203,8 +208,9 @@ def login():
if user['password'] == password:
session['user_name'] = user['user_name']
session['user_id'] = user['id']
+ session['timezone'] = user['timezone']
g.db.execute("UPDATE users SET last_seen=? WHERE id=?",
- (datetime.utcnow(),session['user_id']))
+ (datetime.utcnow(),session['user_id']))
g.db.commit()
return redirect(url_for('list_news'))
else: