0001-utils-get-tenant-from-import-rather-than-request-274.patch
bijoe/utils.py | ||
---|---|---|
19 | 19 |
import json |
20 | 20 | |
21 | 21 |
from django.conf import settings |
22 |
from django.db import connection |
|
22 | 23 |
from django.utils.translation import ugettext as _ |
23 | 24 | |
24 | 25 |
from .schemas import Warehouse |
25 | 26 | |
26 | 27 | |
27 |
def get_warehouses(request=None):
|
|
28 |
def get_warehouses(): |
|
28 | 29 |
warehouses = [] |
29 | 30 |
for pattern in settings.BIJOE_SCHEMAS: |
30 | 31 |
for path in glob.glob(pattern): |
31 | 32 |
warehouses.append(Warehouse.from_json(json.load(open(path)))) |
32 |
if hasattr(request, 'tenant'):
|
|
33 |
pattern = os.path.join(request.tenant.get_directory(), 'schemas', '*.model')
|
|
33 |
if hasattr(connection, 'tenant'):
|
|
34 |
pattern = os.path.join(connection.tenant.get_directory(), 'schemas', '*.model')
|
|
34 | 35 |
for path in glob.glob(pattern): |
35 | 36 |
warehouses.append(Warehouse.from_json(json.load(open(path)))) |
36 | 37 |
return warehouses |
bijoe/views.py | ||
---|---|---|
59 | 59 |
def get_context_data(self, **kwargs): |
60 | 60 |
ctx = super(HomepageView, self).get_context_data(**kwargs) |
61 | 61 |
ctx['visualizations'] = Visualization.objects.all() |
62 |
ctx['warehouses'] = sorted((Engine(w) for w in get_warehouses(self.request)),
|
|
62 |
ctx['warehouses'] = sorted((Engine(w) for w in get_warehouses()), |
|
63 | 63 |
key=lambda w: w.label) |
64 | 64 |
return ctx |
65 | 65 |
bijoe/visualization/utils.py | ||
---|---|---|
75 | 75 |
filters=copy.deepcopy(self.filters), loop=self.loop) |
76 | 76 | |
77 | 77 |
@classmethod |
78 |
def from_json(cls, d, request=None):
|
|
79 |
for warehouse in get_warehouses(request=request):
|
|
78 |
def from_json(cls, d): |
|
79 |
for warehouse in get_warehouses(): |
|
80 | 80 |
if d['warehouse'] == warehouse.name: |
81 | 81 |
break |
82 | 82 |
else: |
bijoe/visualization/views.py | ||
---|---|---|
46 | 46 |
def get_context_data(self, **kwargs): |
47 | 47 |
ctx = super(WarehouseView, self).get_context_data(**kwargs) |
48 | 48 |
try: |
49 |
warehouse = [warehouse for warehouse in get_warehouses(self.request)
|
|
49 |
warehouse = [warehouse for warehouse in get_warehouses() |
|
50 | 50 |
if warehouse.name == self.kwargs['warehouse']][0] |
51 | 51 |
except IndexError: |
52 | 52 |
raise Http404 |
... | ... | |
72 | 72 | |
73 | 73 |
def dispatch(self, request, *args, **kwargs): |
74 | 74 |
try: |
75 |
self.warehouse = Engine([warehouse for warehouse in get_warehouses(self.request)
|
|
75 |
self.warehouse = Engine([warehouse for warehouse in get_warehouses() |
|
76 | 76 |
if warehouse.name == self.kwargs['warehouse']][0]) |
77 | 77 |
except IndexError: |
78 | 78 |
raise Http404 |
... | ... | |
123 | 123 |
def get_object(self): |
124 | 124 |
named_visualization = super(VisualizationView, self).get_object() |
125 | 125 |
if not hasattr(self, 'visualization'): |
126 |
self.visualization = Visualization.from_json(named_visualization.parameters, |
|
127 |
request=self.request) |
|
126 |
self.visualization = Visualization.from_json(named_visualization.parameters) |
|
128 | 127 |
self.cube = self.visualization.cube |
129 | 128 |
self.warehouse = self.cube.engine |
130 | 129 |
return named_visualization |
... | ... | |
235 | 234 | |
236 | 235 |
def get(self, request, *args, **kwargs): |
237 | 236 |
instance = self.get_object() |
238 |
visualization = Visualization.from_json(instance.parameters, request=request)
|
|
237 |
visualization = Visualization.from_json(instance.parameters) |
|
239 | 238 |
response = HttpResponse(content_type='application/vnd.oasis.opendocument.spreadsheet') |
240 | 239 |
response['Content-Disposition'] = 'attachment; filename=%s.ods' % slugify(instance.name) |
241 | 240 |
workbook = visualization.ods() |
... | ... | |
249 | 248 | |
250 | 249 |
def get(self, request, pk, format=None): |
251 | 250 |
instance = self.get_object() |
252 |
visualization = Visualization.from_json(instance.parameters, request=request)
|
|
251 |
visualization = Visualization.from_json(instance.parameters) |
|
253 | 252 |
visualization.measure = visualization.cube.measures['geolocation'] |
254 | 253 |
drilldown = visualization.drilldown |
255 | 254 |
geojson = [] |
... | ... | |
282 | 281 | |
283 | 282 |
instance = self.get_object() |
284 | 283 |
loop = [] |
285 |
all_visualizations = Visualization.from_json(instance.parameters, request=request)
|
|
284 |
all_visualizations = Visualization.from_json(instance.parameters) |
|
286 | 285 |
for visualization in all_visualizations: |
287 | 286 |
drilldowns = visualization.drilldown |
288 | 287 |
if len(drilldowns) == 2: |
289 |
- |