From b850fcdfbf86ba4a8c76a630e89768cb2eb9c202 Mon Sep 17 00:00:00 2001 From: helmutm Date: Sun, 9 Nov 2008 11:20:19 +0000 Subject: [PATCH] allow explicit setting of the time stamp when creating a track; this is necessary for processing log file items (access logs) git-svn-id: svn://svn.cy55.de/Zope3/src/cybertools/trunk@2968 fd906abe-77d9-0310-91a1-e0d9ade77398 --- tracking/btree.py | 8 ++++++-- tracking/logfile.py | 4 ++-- 2 files changed, 8 insertions(+), 4 deletions(-) diff --git a/tracking/btree.py b/tracking/btree.py index 98d6440..fdcbdc9 100644 --- a/tracking/btree.py +++ b/tracking/btree.py @@ -172,19 +172,23 @@ class TrackingStorage(BTreeContainer): trackId = self.idFromNum(self.trackNum) return trackId, self.trackNum - def saveUserTrack(self, taskId, runId, userName, data, update=False): + def saveUserTrack(self, taskId, runId, userName, data, update=False, timeStamp=None): + ts = timeStamp or getTimeStamp() if not runId: runId = self.currentRuns.get(taskId) or self.startRun(taskId) run = self.getRun(runId=runId) if run is None: raise ValueError('Invalid run: %i.' % runId) - run.end = getTimeStamp() + if run.end < ts: + run.end = ts if update: track = self.getLastUserTrack(taskId, runId, userName) if track is not None: return self.updateTrack(track, data) trackId, trackNum = self.generateTrackId() track = self.trackFactory(taskId, runId, userName, data) + if timeStamp: + track.timeStamp = timeStamp self[trackId] = track self.indexTrack(trackNum, track) return trackId diff --git a/tracking/logfile.py b/tracking/logfile.py index f024ac2..d66fa61 100644 --- a/tracking/logfile.py +++ b/tracking/logfile.py @@ -31,8 +31,8 @@ class Logger(object): handler = None - def __init__(self, logname, logfile, logformat='%(asctime)s;%(message)s', - **kw): + def __init__(self, logname, logfile, + logformat='%(asctime)s;%(message)s', **kw): self.logname = logname self.logfile = logfile self.logformat = logformat