[annotations] Fixing migration for annotation layers (#4187)

This commit is contained in:
John Bodley
2018-01-10 08:50:05 -08:00
committed by Maxime Beauchemin
parent e182f7f962
commit 0cb7c5e4a6

View File

@@ -37,18 +37,19 @@ def upgrade():
Slice.viz_type.like('line'), Slice.viz_type.like('bar'))):
params = json.loads(slc.params)
layers = params.get('annotation_layers', [])
new_layers = []
if len(layers) and isinstance(layers[0], int):
if layers:
new_layers = []
for layer in layers:
new_layers.append(
{
'annotationType': 'INTERVAL',
'style': 'solid',
'name': 'Layer {}'.format(layer),
'show': True,
'overrides': {'since': None, 'until': None},
'value': 1, 'width': 1, 'sourceType': 'NATIVE',
})
new_layers.append({
'annotationType': 'INTERVAL',
'style': 'solid',
'name': 'Layer {}'.format(layer),
'show': True,
'overrides': {'since': None, 'until': None},
'value': layer,
'width': 1,
'sourceType': 'NATIVE',
})
params['annotation_layers'] = new_layers
slc.params = json.dumps(params)
session.merge(slc)
@@ -57,4 +58,16 @@ def upgrade():
def downgrade():
pass
bind = op.get_bind()
session = db.Session(bind=bind)
for slc in session.query(Slice).filter(or_(
Slice.viz_type.like('line'), Slice.viz_type.like('bar'))):
params = json.loads(slc.params)
layers = params.get('annotation_layers', [])
if layers:
params['annotation_layers'] = [layer['value'] for layer in layers]
slc.params = json.dumps(params)
session.merge(slc)
session.commit()
session.close()