0002-visualization-share-warehouses-between-visualization.patch
bijoe/views.py | ||
---|---|---|
59 | 59 | |
60 | 60 |
def get_context_data(self, **kwargs): |
61 | 61 |
ctx = super(HomepageView, self).get_context_data(**kwargs) |
62 |
ctx['visualizations'] = Visualization.objects.all()
|
|
62 |
ctx['visualizations'] = Visualization.all_visualizations()
|
|
63 | 63 |
ctx['warehouses'] = sorted((Engine(w) for w in get_warehouses()), |
64 | 64 |
key=lambda w: w.label) |
65 | 65 |
return ctx |
bijoe/visualization/models.py | ||
---|---|---|
23 | 23 |
from django.utils.translation import ugettext_lazy as _ |
24 | 24 |
from jsonfield import JSONField |
25 | 25 | |
26 |
from bijoe.utils import get_warehouses |
|
27 | ||
26 | 28 |
from .utils import Visualization as VisuUtils |
27 | 29 | |
28 | 30 | |
... | ... | |
69 | 71 |
@property |
70 | 72 |
def exists(self): |
71 | 73 |
try: |
72 |
VisuUtils.get_cube(self.parameters) |
|
74 |
VisuUtils.get_cube(self.parameters, self.warehouses)
|
|
73 | 75 |
return True |
74 | 76 |
except Http404: |
75 | 77 |
return False |
78 | ||
79 |
@property |
|
80 |
def warehouses(self): |
|
81 |
if not hasattr(self, '_warehouses'): |
|
82 |
self._warehouses = get_warehouses() |
|
83 |
return self._warehouses |
|
84 | ||
85 |
@classmethod |
|
86 |
def all_visualizations(cls): |
|
87 |
visualizations = cls.objects.all() |
|
88 |
warehouses = get_warehouses() |
|
89 |
for visu in visualizations: |
|
90 |
visu._warehouses = warehouses |
|
91 |
return visualizations |
bijoe/visualization/utils.py | ||
---|---|---|
75 | 75 |
filters=copy.deepcopy(self.filters), loop=self.loop) |
76 | 76 | |
77 | 77 |
@staticmethod |
78 |
def get_cube(d): |
|
79 |
for warehouse in get_warehouses(): |
|
78 |
def get_cube(d, warehouses=None): |
|
79 |
if not warehouses: |
|
80 |
warehouses = get_warehouses() |
|
81 |
for warehouse in warehouses: |
|
80 | 82 |
if d['warehouse'] == warehouse.name: |
81 | 83 |
break |
82 | 84 |
else: |
bijoe/visualization/views.py | ||
---|---|---|
187 | 187 |
model = models.Visualization |
188 | 188 |
context_object_name = 'visualizations' |
189 | 189 | |
190 |
def get_queryset(self): |
|
191 |
return Visualization.all_visualizations() |
|
192 | ||
190 | 193 | |
191 | 194 |
class RenameVisualization(views.AuthorizationMixin, UpdateView): |
192 | 195 |
model = models.Visualization |
193 |
- |