From c7c2fecec00386b2a53b975bdec58fe0f4b7bf28 Mon Sep 17 00:00:00 2001 From: Lance Edgar Date: Thu, 21 Apr 2016 13:42:20 -0500 Subject: [PATCH] Add workarounds for certain display bugs when rendering datetimes --- tailbone/util.py | 16 +++++++++++++--- 1 file changed, 13 insertions(+), 3 deletions(-) diff --git a/tailbone/util.py b/tailbone/util.py index dc37dae1..c1a486d6 100644 --- a/tailbone/util.py +++ b/tailbone/util.py @@ -91,6 +91,16 @@ def raw_datetime(config, value): local = timezone(config) value = local.normalize(value.astimezone(local)) - return HTML.tag('span', - title=humanize.naturaltime(time_ago), - c=value.strftime('%Y-%m-%d %I:%M:%S %p')) + kwargs = {} + + # Avoid strftime error when year falls before epoch. + if value.year >= 1900: + kwargs['c'] = value.strftime('%Y-%m-%d %I:%M:%S %p') + else: + kwargs['c'] = unicode(value) + + # Avoid humanize error when calculating huge time diff. + if abs(time_ago.days) < 100000: + kwargs['title'] = humanize.naturaltime(time_ago) + + return HTML.tag('span', **kwargs)