Merge branch '2master' into 3master
This commit is contained in:
commit
71f36283b9
4 changed files with 34 additions and 0 deletions
|
@ -157,6 +157,12 @@ class RecordsFieldInstance(GridFieldInstance):
|
||||||
def getRenderer(self, name):
|
def getRenderer(self, name):
|
||||||
return grid_macros.macros.get(name)
|
return grid_macros.macros.get(name)
|
||||||
|
|
||||||
|
def fromKeyTable(self, value):
|
||||||
|
fis = self.columnFieldInstances
|
||||||
|
return [dict([(fis[0].name, k)] +
|
||||||
|
[(fi.name, v[i]) for i, v in enumerate(fis[1:])])
|
||||||
|
for k, v in value.items()]
|
||||||
|
|
||||||
def marshall(self, value):
|
def marshall(self, value):
|
||||||
result = []
|
result = []
|
||||||
value = value or []
|
value = value or []
|
||||||
|
@ -258,6 +264,13 @@ class KeyTableFieldInstance(RecordsFieldInstance):
|
||||||
pass
|
pass
|
||||||
|
|
||||||
|
|
||||||
|
class ContextBasedRecordsFieldInstance(RecordsFieldInstance):
|
||||||
|
|
||||||
|
@Lazy
|
||||||
|
def columnTypes(self):
|
||||||
|
obj = self.clientInstance.context
|
||||||
|
return [Field(name) for name in obj.columnNames]
|
||||||
|
|
||||||
class ContextBasedKeyTableFieldInstance(KeyTableFieldInstance):
|
class ContextBasedKeyTableFieldInstance(KeyTableFieldInstance):
|
||||||
|
|
||||||
@Lazy
|
@Lazy
|
||||||
|
|
|
@ -51,6 +51,16 @@ class Records(Grid):
|
||||||
instanceName='records',))
|
instanceName='records',))
|
||||||
|
|
||||||
|
|
||||||
|
class RecordsTable(Grid):
|
||||||
|
|
||||||
|
__typeInfo__ = ('recordstable',
|
||||||
|
FieldType('recordstable', 'recordstable',
|
||||||
|
u'A series of records or rows.',
|
||||||
|
displayRenderer='display_records',
|
||||||
|
inputRenderer='input_records',
|
||||||
|
instanceName='recordstable',))
|
||||||
|
|
||||||
|
|
||||||
class KeyTable(Grid):
|
class KeyTable(Grid):
|
||||||
|
|
||||||
__typeInfo__ = ('keytable',
|
__typeInfo__ = ('keytable',
|
||||||
|
|
|
@ -80,6 +80,11 @@ class Track(Persistent):
|
||||||
data.update(newData)
|
data.update(newData)
|
||||||
self.data = data # record change
|
self.data = data # record change
|
||||||
|
|
||||||
|
def updateIndex(self, **kw):
|
||||||
|
for k, v in kw.items():
|
||||||
|
setattr(self, k, v)
|
||||||
|
getParent(self).indexTrack(0, self, k)
|
||||||
|
|
||||||
def __repr__(self):
|
def __repr__(self):
|
||||||
md = self.metadata
|
md = self.metadata
|
||||||
md['timeStamp'] = timeStamp2ISO(md['timeStamp'])
|
md['timeStamp'] = timeStamp2ISO(md['timeStamp'])
|
||||||
|
@ -102,6 +107,7 @@ class TrackingStorage(BTreeContainer):
|
||||||
runs = None # currently active runs
|
runs = None # currently active runs
|
||||||
finishedRuns = None # finished runs
|
finishedRuns = None # finished runs
|
||||||
currentRuns = None # the currently active run for each task
|
currentRuns = None # the currently active run for each task
|
||||||
|
storage = None # compatibility with new cco.storage
|
||||||
|
|
||||||
def __init__(self, *args, **kw):
|
def __init__(self, *args, **kw):
|
||||||
trackFactory = kw.pop('trackFactory', None)
|
trackFactory = kw.pop('trackFactory', None)
|
||||||
|
@ -200,6 +206,9 @@ class TrackingStorage(BTreeContainer):
|
||||||
self.indexTrack(trackNum, track)
|
self.indexTrack(trackNum, track)
|
||||||
return trackId
|
return trackId
|
||||||
|
|
||||||
|
def setTrackData(self, track, data):
|
||||||
|
track.data = data # persistent track: data will be stored automatically
|
||||||
|
|
||||||
def updateTrack(self, track, data, overwrite=False):
|
def updateTrack(self, track, data, overwrite=False):
|
||||||
trackId = str(track.__name__)
|
trackId = str(track.__name__)
|
||||||
trackNum = int(trackId)
|
trackNum = int(trackId)
|
||||||
|
|
|
@ -32,6 +32,8 @@ def getTimeStamp():
|
||||||
return int(time.time())
|
return int(time.time())
|
||||||
|
|
||||||
def date2TimeStamp(d):
|
def date2TimeStamp(d):
|
||||||
|
if isinstance(d, (int, float)):
|
||||||
|
return int(d)
|
||||||
return int(time.mktime(d.timetuple()))
|
return int(time.mktime(d.timetuple()))
|
||||||
|
|
||||||
|
|
||||||
|
|
Loading…
Add table
Reference in a new issue