loops/organize/tracking/storage/compat.py

33 lines
762 B
Python

# loops.organize.tracking.storage.compat
"""loops compatibility layer on cco.storage.tracking.
Provides a Container subclass that defines methods from cybertools...TrackingStorage
used by code based on loops.organize.tracking.
"""
from cco.storage.tracking import record
class Track(record.Track):
@property
def taskId(self):
return self.head.get('taskId')
class Container(record.Container):
itemFactory = Track
def saveUserTrack(self, taskId, runId, userName, data):
track = self.itemFactory(taskId, userName, data=data)
return self.save(track)
def setTrackData(self, track, data):
track.data = data
self.update(track)
def removeTrack(self, track):
self.remove(track.trackId)