Skip to content

Commit 0acb1a0

Browse files
committed
ip
1 parent 94f539b commit 0acb1a0

File tree

3 files changed

+54
-15
lines changed

3 files changed

+54
-15
lines changed

src/util/spreadsheet/data_wrappers.py

Lines changed: 2 additions & 2 deletions
Original file line numberDiff line numberDiff line change
@@ -309,11 +309,11 @@ def fields_matching(self):
309309

310310
@property
311311
def measures(self):
312-
return [m["field"] for m in self.definition.get("measures", [])]
312+
return self.definition.get("measures", []) #[m["field"] for m in self.definition.get("measures", [])]
313313

314314
@measures.setter
315315
def measures(self, measures):
316-
self.definition["measures"] = [{"field": m} for m in measures]
316+
self.definition["measures"] = measures #[{"field": m} for m in measures]
317317

318318
@property
319319
def row_group_by(self):

src/util/spreadsheet/fields.py

Lines changed: 22 additions & 9 deletions
Original file line numberDiff line numberDiff line change
@@ -29,17 +29,21 @@ def rename_field(cr, model, old, new, data, revisions = ()):
2929
return spreadsheet.data, transform_revisions_data(revisions, *adapters)
3030

3131
def remove_field_in_all_spreadsheets(cr, model, field):
32-
apply_in_all_spreadsheets(cr, model, (lambda data, revisions_data: remove_field(cr, model, field, data, revisions_data)))
32+
apply_in_all_spreadsheets(cr, field, (lambda data, revisions_data: remove_field(cr, model, field, data, revisions_data)))
3333

3434
def remove_field(cr, model, field, data, revisions=()):
35-
spreadsheet = Spreadsheet(data)
36-
_remove_field_from_filter_matching(cr, spreadsheet, model, field)
37-
adapters = _remove_field_from_list(spreadsheet, model, field)
38-
adapters += _remove_field_from_pivot(spreadsheet, model, field)
39-
adapters += _remove_field_from_graph(spreadsheet, model, field)
40-
adapters += _remove_field_from_view_link(spreadsheet, model, field)
41-
spreadsheet.clean_empty_cells()
42-
return spreadsheet.data, transform_revisions_data(revisions, *adapters)
35+
try:
36+
37+
spreadsheet = Spreadsheet(data)
38+
_remove_field_from_filter_matching(cr, spreadsheet, model, field)
39+
adapters = _remove_field_from_list(spreadsheet, model, field)
40+
adapters += _remove_field_from_pivot(spreadsheet, model, field)
41+
adapters += _remove_field_from_graph(spreadsheet, model, field)
42+
adapters += _remove_field_from_view_link(spreadsheet, model, field)
43+
spreadsheet.clean_empty_cells()
44+
return spreadsheet.data, transform_revisions_data(revisions, *adapters)
45+
except:
46+
import ipdb;ipdb.set_trace()
4347

4448
def _rename_function_fields(content, data_source_ids, functions, old, new):
4549
def adapter(fun_call):
@@ -330,9 +334,13 @@ def adapt_re_insert(cmd):
330334

331335

332336
def _remove_field_from_pivot(spreadsheet: Spreadsheet, model, field):
337+
# try:
333338
pivot_to_delete = [
334339
pivot.id for pivot in spreadsheet.pivots if pivot.model == model and field in pivot_fields(pivot)
335340
]
341+
# except:
342+
# import ipdb;ipdb.set_trace()
343+
# pivot_to_delete = []
336344
adapters = remove_pivots(
337345
spreadsheet,
338346
pivot_to_delete,
@@ -395,11 +403,16 @@ def pivot_measure_fields(pivot):
395403

396404
def pivot_fields(pivot):
397405
"""return all field names used in a pivot definition"""
406+
# try:
398407
fields = set(pivot.col_group_by + pivot.row_group_by + pivot_measure_fields(pivot) + domain_fields(pivot.domain))
399408
measure = pivot.order_by and pivot.order_by["field"]
400409
if measure and measure != "__count":
401410
fields.add(measure)
402411
return fields
412+
# except:
413+
# import ipdb;ipdb.set_trace()
414+
# return set()
415+
403416

404417

405418
def chart_fields(chart):

src/util/spreadsheet/misc.py

Lines changed: 30 additions & 4 deletions
Original file line numberDiff line numberDiff line change
@@ -54,9 +54,8 @@ def read_spreadsheet_initial_data(cr, like_pattern=""):
5454
# TODO there are excel files in there!
5555
for document_id, attachment_id, db_datas in cr.fetchall():
5656
if db_datas:
57-
# print(db_datas)
5857
yield attachment_id, "documents.document", document_id, json.loads(db_datas.tobytes())
59-
data_field = "spreadsheet_binary_data" if version_gte("saas~16.3") else "data"
58+
data_field = _magic_spreadsheet_field(cr) #"spreadsheet_binary_data" if version_gte("saas~16.3") else "data"
6059
cr.execute(
6160
"""
6261
SELECT id, res_model, res_id, db_datas
@@ -71,10 +70,26 @@ def read_spreadsheet_initial_data(cr, like_pattern=""):
7170
if db_datas:
7271
yield attachment_id, res_model, res_id, json.loads(db_datas.tobytes())
7372

73+
def _magic_spreadsheet_field(cr):
74+
cr.execute(
75+
"""
76+
SELECT count(1)
77+
FROM ir_model_fields
78+
WHERE model='spreadsheet.mixin'
79+
AND name='spreadsheet_binary_data';
80+
"""
81+
)
82+
return cr.fetchone()[0] and 'spreadsheet_binary_data' or 'data'
83+
7484
def apply_in_all_spreadsheets(cr, like_pattern, callback):
75-
_logger.info("upgrading initial data and revisions")
85+
# _logger.info("upgrading initial data and revisions")
86+
print("like pattern : ", like_pattern)
87+
b = False
7688
# upgrade the initial data and all revisions based on it
7789
for attachment_id, res_model, res_id, db_datas in read_spreadsheet_initial_data(cr, like_pattern):
90+
print("attachment : ", attachment_id)
91+
92+
b = True
7893
revisions_data = []
7994
revisions_ids = []
8095
## FIXME batch the calls
@@ -92,12 +107,22 @@ def apply_in_all_spreadsheets(cr, like_pattern, callback):
92107
""",
93108
[json.dumps(revision), revision_id],
94109
)
95-
_logger.info("upgrading snapshots")
110+
if b:
111+
_logger.info("upgrading initial data and revisions")
112+
113+
b = False
96114
# upgrade snapshots
97115
for attachment_id, _res_model, _res_id, db_datas in read_spreadsheet_snapshots(cr, like_pattern):
116+
print("attachment : ", attachment_id)
117+
118+
b=True
98119
data, revisions = callback(db_datas, [])
99120
write_attachment(cr, attachment_id, data)
100121

122+
if b:
123+
_logger.info("upgrading snapshots")
124+
125+
101126

102127
def write_attachment(cr, attachment_id, data):
103128
_logger.info("replacing attachment %s", attachment_id)
@@ -138,6 +163,7 @@ def get_revisions(cr, res_model, res_id, like_pattern):
138163
def upgrade_data(cr, upgrade_callback):
139164
for attachment_id, _res_model, _res_id, data in read_spreadsheet_attachments(cr):
140165
upgraded_data = upgrade_callback(load(data))
166+
# import ipdb;ipdb.set_trace()
141167
cr.execute(
142168
"""
143169
UPDATE ir_attachment

0 commit comments

Comments
 (0)