From 9352bf34147fc5624783563a6aa1db67f9a438a3 Mon Sep 17 00:00:00 2001 From: Andrew Williams Date: Sun, 18 Apr 2010 03:53:52 +0100 Subject: [PATCH] Added natural times to profile view --- sso/templatetags/naturaltimediff.py | 33 +++++++++++++++++++++++++++++ templates/sso/profile.html | 4 +++- 2 files changed, 36 insertions(+), 1 deletion(-) create mode 100644 sso/templatetags/naturaltimediff.py diff --git a/sso/templatetags/naturaltimediff.py b/sso/templatetags/naturaltimediff.py new file mode 100644 index 0000000..657155a --- /dev/null +++ b/sso/templatetags/naturaltimediff.py @@ -0,0 +1,33 @@ +from django import template + +register = template.Library() + +MOMENT = 120 # duration in seconds within which the time difference + # will be rendered as 'a moment ago' + +@register.filter +def naturaltimediff(value): + """ + Finds the difference between the datetime value given and now() + and returns appropriate humanize form + """ + + from datetime import datetime + + if isinstance(value, datetime): + delta = datetime.now() - value + if delta.days > 6: + return value.strftime("%b %d") # May 15 + if delta.days > 1: + return value.strftime("%A") # Wednesday + elif delta.days == 1: + return 'yesterday' # yesterday + elif delta.seconds > 3600: + return str(delta.seconds / 3600 ) + ' hours ago' # 3 hours ago + elif delta.seconds > MOMENT: + return str(delta.seconds/60) + ' minutes ago' # 29 minutes ago + else: + return 'a moment ago' # a moment ago + return defaultfilters.date(value) + else: + return str(value) diff --git a/templates/sso/profile.html b/templates/sso/profile.html index e9f9fc0..d812d87 100644 --- a/templates/sso/profile.html +++ b/templates/sso/profile.html @@ -1,5 +1,7 @@ {% extends "base.html" %} +{% load naturaltimediff %} + {% block title %}Your Profile{% endblock %} {% block content %} @@ -64,7 +66,7 @@ setup.

{{ acc.api_key }} {{ acc.description }} {{ acc.api_status_description }} - {{ acc.api_last_updated }} + {{ acc.api_last_updated|naturaltimediff }} RefreshDelete