finish adapting visualization to new fields loop, drilldown_x and drilldown_y
This commit is contained in:
parent
c1e52f05e1
commit
970dff985e
|
@ -0,0 +1,37 @@
|
|||
# -*- coding: utf-8 -*-
|
||||
from __future__ import unicode_literals
|
||||
|
||||
from django.db import migrations
|
||||
|
||||
|
||||
def rename_parameters(apps, schema_editor):
|
||||
Visualization = apps.get_model('visualization', 'Visualization')
|
||||
for v in Visualization.objects.all():
|
||||
v.parameters['drilldown_y'] = (v.parameters.get('drilldown') or [None])[0]
|
||||
v.parameters['measure'] = (v.parameters.get('measures') or [None])[0]
|
||||
v.parameters.pop('drilldown', None)
|
||||
v.parameters.pop('measures', None)
|
||||
v.save()
|
||||
|
||||
|
||||
def reverse_rename_parameters(apps, schema_editor):
|
||||
Visualization = apps.get_model('visualization', 'Visualization')
|
||||
for v in Visualization.objects.all():
|
||||
drilldown_y = v.parameters.get('drilldown_y')
|
||||
v.parameters['drilldown'] = [drilldown_y] if drilldown_y else []
|
||||
measure = v.parameters.get('measure')
|
||||
v.parameters['measures'] = [measure] if measure else []
|
||||
v.parameters.pop('drilldown_y', None)
|
||||
v.parameters.pop('measure', None)
|
||||
v.save()
|
||||
|
||||
|
||||
class Migration(migrations.Migration):
|
||||
|
||||
dependencies = [
|
||||
('visualization', '0001_initial'),
|
||||
]
|
||||
|
||||
operations = [
|
||||
migrations.RunPython(rename_parameters, reverse_rename_parameters),
|
||||
]
|
|
@ -83,13 +83,15 @@ class Visualization(object):
|
|||
except KeyError:
|
||||
raise Http404('cube %s not found' % d['cube'])
|
||||
representation = d['representation']
|
||||
measures = [cube.measures[name] for name in d['measures']]
|
||||
drilldown = [cube.dimensions[name] for name in d.get('drilldown', [])]
|
||||
measure = cube.measures[d['measure']]
|
||||
drilldown_x = cube.dimensions[d['drilldown_x']] if 'drilldown_x' in d else None
|
||||
drilldown_y = cube.dimensions[d['drilldown_y']] if 'drilldown_y' in d else None
|
||||
filters = d.get('filters', {})
|
||||
loop = d.get('loop')
|
||||
if loop:
|
||||
loop = cube.dimensions[loop]
|
||||
return cls(cube, representation, measures, drilldown=drilldown, filters=filters, loop=loop)
|
||||
return cls(cube, representation, measure, drilldown_x=drilldown_x, drilldown_y=drilldown_y,
|
||||
filters=filters, loop=loop)
|
||||
|
||||
@classmethod
|
||||
def from_form(cls, cube, form):
|
||||
|
|
|
@ -149,8 +149,10 @@ class VisualizationView(views.AuthorizationMixin, ODSMixin, CubeDisplayMixin,
|
|||
ctx = super(VisualizationView, self).get_context_data(**kwargs)
|
||||
initial = {
|
||||
'representation': self.visualization.representation,
|
||||
'measures': [m.name for m in self.visualization.measures],
|
||||
'drilldown': [d.name for d in self.visualization.drilldown],
|
||||
'measure': self.visualization.measure.name,
|
||||
'loop': self.visualization.loop and self.visualization.loop.name,
|
||||
'drilldown_x': self.visualization.drilldown_x and self.visualization.drilldown_x.name,
|
||||
'drilldown_y': self.visualization.drilldown_y and self.visualization.drilldown_y.name,
|
||||
}
|
||||
for key, value in self.visualization.filters.iteritems() or []:
|
||||
if isinstance(value, list):
|
||||
|
|
Loading…
Reference in New Issue