From 79b21d82aaad40e1f43ecbd293a0e0073fd134ae Mon Sep 17 00:00:00 2001 From: Guillaume Horel Date: Tue, 13 Nov 2012 19:57:03 -0500 Subject: Use le timago.js plugin to display dates MIME-Version: 1.0 Content-Type: text/plain; charset=UTF-8 Content-Transfer-Encoding: 8bit Ca a l'air de marcher, mais pose la question suivante: Pourquoi pas se débarasser du champ timezone dans la base de donnée et faire la conversion directement au niveau du javascript? L'avantage étant que l'utilisateur n'a aucun réglage à faire car le navigateur a accès à la timezone du système qui est sans la doute la première chose que l'utilisateur change. --- README.md | 11 +++++------ famille.py | 14 +++++++++++++- static/famille.js | 1 + templates/layout.html | 5 +++++ templates/news/list.html | 4 ++-- 5 files changed, 26 insertions(+), 9 deletions(-) diff --git a/README.md b/README.md index 0ad8c57..bb4ba3a 100644 --- a/README.md +++ b/README.md @@ -3,11 +3,10 @@ Réécriture du site de la famille en Flask. TODO ---- +* Gérer les fichiers pour pouvoir insérer des images + +Done +---- +* display dates using timeago.js * Email notifications * Tirer les noms pour le Cadoscope -* Gérer les fichiers pour pouvoir insérer des images (je ne sais pas si ca marche avec rst) - -Ideas ------ - -* use timeago.js diff --git a/famille.py b/famille.py index 1f0cb10..c1fa510 100644 --- a/famille.py +++ b/famille.py @@ -38,7 +38,19 @@ 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.replace(tzinfo=timezone('utc')).astimezone(timezone(session['timezone'])).strftime(format).decode("utf8") + return date_object.replace(tzinfo=timezone('utc')). \ + astimezone(timezone(session['timezone'])).strftime(format).decode("utf8") + +@app.template_filter('format_ago') +def format_ago(date_object, format): + if not date_object: + return "" + format = format.encode("utf8") + readable = date_object.replace(tzinfo=timezone('utc')). \ + astimezone(timezone(session['timezone'])).strftime(format) + iso_format = date_object.strftime('%Y-%m-%dT%H:%M:%SZ') + return '{1}'. \ + format(iso_format, readable).decode("utf8") @app.template_filter('pluralize') def pluralize(word, count, plural=None): diff --git a/static/famille.js b/static/famille.js index 2739020..63fc3d5 100644 --- a/static/famille.js +++ b/static/famille.js @@ -21,4 +21,5 @@ $(document).ready(function(){ $("#kadobutton").click(function(){ $(".kadoscope").animate({opacity:"1"},"5000"); }); + $('span.timeago').timeago(); }); \ No newline at end of file diff --git a/templates/layout.html b/templates/layout.html index 709daef..1aa6173 100644 --- a/templates/layout.html +++ b/templates/layout.html @@ -36,5 +36,10 @@ src="{{ url_for('static', filename='jquery.js')}}"> + + diff --git a/templates/news/list.html b/templates/news/list.html index c0d7e0a..d25715b 100644 --- a/templates/news/list.html +++ b/templates/news/list.html @@ -11,7 +11,7 @@ {% for user in users %} {{user.user_name}} - {{user.last_seen|format_date('%a %d %b à %Hh%M')}} + {{user.last_seen|format_ago('%a %d %b à %Hh%M')|safe}} {% endfor %} @@ -20,7 +20,7 @@