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