Skip to content

Commit 24ad915

Browse files
fix: reference data not getting exported (#858)
--------- Co-authored-by: Antoine Hurard <[email protected]>
1 parent 52679a2 commit 24ad915

File tree

2 files changed

+21
-14
lines changed

2 files changed

+21
-14
lines changed

src/utils/files/exportBatch.ts

Lines changed: 3 additions & 6 deletions
Original file line numberDiff line numberDiff line change
@@ -206,13 +206,10 @@ const getColumns = (req: any, params: ExportBatchParams): Promise<any[]> => {
206206
if (Object.prototype.hasOwnProperty.call(data.data, field)) {
207207
const meta = data.data[field];
208208
const rawColumns = getColumnsFromMeta(meta, params.fields);
209-
const columns = rawColumns.filter((x) =>
210-
params.fields.find((f) => f.name === x.name)
211-
);
212209
// Edits the column to match with the fields
213-
columns.forEach((column) => {
210+
rawColumns.forEach((column) => {
214211
const queryField = params.fields.find(
215-
(f) => f.name === column.name
212+
(f) => f.name.toLowerCase() === column.name.toLowerCase()
216213
);
217214
column.title = queryField.title;
218215
if (column.subColumns) {
@@ -226,7 +223,7 @@ const getColumns = (req: any, params: ExportBatchParams): Promise<any[]> => {
226223
}
227224
}
228225
});
229-
resolve(columns);
226+
resolve(rawColumns);
230227
}
231228
}
232229
});

src/utils/files/getRowsFromMeta.ts

Lines changed: 18 additions & 8 deletions
Original file line numberDiff line numberDiff line change
@@ -17,12 +17,19 @@ const setMultiselectRow = (column: any, data: any, row: any) => {
1717
} else {
1818
let value: any;
1919
// If it's a referenceData field, extract value differently.
20-
if (column.name.includes('.') && column.meta.field.generated) {
20+
if (column.meta.field.graphQLFieldName) {
2121
const path = column.name.split('.')[0];
2222
const attribute = column.name.split('.')[1];
2323
const values = get(data, path);
2424
if (Array.isArray(values)) {
25-
value = values.map((x) => x[attribute]);
25+
const lowercasedValues = values.map((obj) => {
26+
const lowercasedObject = Object.keys(obj).reduce((acc, key) => {
27+
acc[key.toLowerCase()] = obj[key];
28+
return acc;
29+
}, {});
30+
return lowercasedObject;
31+
});
32+
value = lowercasedValues.map((x) => x[attribute.toLowerCase()]);
2633
}
2734
} else {
2835
value = get(data, column.field);
@@ -89,12 +96,15 @@ export const getRowsFromMeta = (columns: any[], records: any[]): any[] => {
8996
}
9097
case 'dropdown': {
9198
let value: any = get(data, column.field);
92-
const choices = column.meta.field.choices || [];
93-
if (choices.length > 0) {
94-
if (Array.isArray(value)) {
95-
value = value.map((x) => getText(choices, x));
96-
} else {
97-
value = getText(choices, value);
99+
// Only enter if not reference data
100+
if (!column.meta.field.graphQLFieldName) {
101+
const choices = column.meta.field.choices || [];
102+
if (choices.length > 0) {
103+
if (Array.isArray(value)) {
104+
value = value.map((x) => getText(choices, x));
105+
} else {
106+
value = getText(choices, value);
107+
}
98108
}
99109
}
100110
set(row, column.name, Array.isArray(value) ? value.join(',') : value);

0 commit comments

Comments
 (0)