From d867e693355d9edfbbf7381e8bcee24dbd7b620c Mon Sep 17 00:00:00 2001 From: =?utf8?q?Elan=20Ruusam=C3=A4e?= Date: Wed, 20 Jan 2016 18:22:13 +0200 Subject: [PATCH] format requests with relative date seems the current implementation showing in users' timezone was broken anyway when DST is not active --- PLD_Builder/bqueue.py | 1 + PLD_Builder/request.py | 14 ++++++++++++-- PLD_Builder/script.js | 13 ++----------- 3 files changed, 15 insertions(+), 13 deletions(-) diff --git a/PLD_Builder/bqueue.py b/PLD_Builder/bqueue.py index c324f81..30ecf20 100644 --- a/PLD_Builder/bqueue.py +++ b/PLD_Builder/bqueue.py @@ -44,6 +44,7 @@ class B_Queue: PLD builder queue + diff --git a/PLD_Builder/request.py b/PLD_Builder/request.py index 588a9c4..9cdc055 100644 --- a/PLD_Builder/request.py +++ b/PLD_Builder/request.py @@ -1,6 +1,7 @@ # vi: encoding=utf-8 ts=8 sts=4 sw=4 et from xml.dom.minidom import * +from datetime import datetime import string import time import xml.sax.saxutils @@ -8,6 +9,7 @@ import fnmatch import os import urllib import cgi +import pytz import util import log @@ -39,7 +41,6 @@ def escape(s): # so we could parse it in javascript def tzdate(t): # as strftime %z is unofficial, and does not work, need to make it numeric ourselves -# date = time.strftime("%Y-%m-%d %H:%M:%S", time.localtime(t)) date = time.strftime("%a %b %d %Y %H:%M:%S", time.localtime(t)) # NOTE: the altzone is showing CURRENT timezone, not what the "t" reflects # NOTE: when DST is off timezone gets it right, altzone not @@ -50,6 +51,12 @@ def tzdate(t): tz = '%+05d' % (-tzoffset / 3600 * 100) return date + ' ' + tz +# return date in iso8601 format +def iso8601(ts, timezone='UTC'): + tz = pytz.timezone(timezone) + dt = datetime.fromtimestamp(ts, tz) + return dt.isoformat() + def is_blank(e): return e.nodeType == Element.TEXT_NODE and string.strip(e.nodeValue) == "" @@ -111,12 +118,15 @@ class Group: def dump_html(self, f): f.write( "
\n" - "%(no)d. %(time)s from %(requester)s " + "%(no)d. " + " " + "from %(requester)s " "%(id)s, prio=%(priority)d, jobs=%(max_jobs)d, %(flags)s\n" % { 'no': self.no, 'id': '%(id)s' % {'id': self.id}, 'time': escape(tzdate(self.time)), + 'datetime': escape(iso8601(self.time)), 'requester': escape(self.requester), 'priority': self.priority, 'max_jobs': self.max_jobs, diff --git a/PLD_Builder/script.js b/PLD_Builder/script.js index 6019aeb..5b8b060 100644 --- a/PLD_Builder/script.js +++ b/PLD_Builder/script.js @@ -2,18 +2,9 @@ jQuery(function($) { update_tz(); filter_requesters(); - // update date stamps to reflect viewers timezone + // setup relative time display function update_tz() { - $('span#tz').each(function(i, el) { - var $el = $(el); - dt = new Date($el.text()).toString(); - // strip timezone name, it is usually wrong when not initialized - // from TZ env, but reverse calculated from os data - dt = dt.replace(/\s+\(.+\)/, ""); - // strip "GMT" - dt = dt.replace(/GMT/, ""); - $el.text(dt); - }); + $('time.timeago').timeago(); } // draw filter for requesters -- 2.44.0