Skip to content

Commit 238ede7

Browse files
committed
Implementation
1 parent bd82db5 commit 238ede7

File tree

2 files changed

+4
-21
lines changed

2 files changed

+4
-21
lines changed

CHANGES.rst

Lines changed: 2 additions & 1 deletion
Original file line numberDiff line numberDiff line change
@@ -4,7 +4,8 @@ Changelog
44
3.2.2 (unreleased)
55
------------------
66

7-
- Nothing changed yet.
7+
- Use confugured forms fields as CSV export columns.
8+
[folix-01]
89

910

1011
3.2.1 (2025-01-09)

src/collective/volto/formsupport/restapi/services/form_data/csv.py

Lines changed: 2 additions & 20 deletions
Original file line numberDiff line numberDiff line change
@@ -29,25 +29,6 @@ def __init__(self, context, request):
2929
field_id = field["field_id"]
3030
self.form_fields_order.append(field_id)
3131

32-
def get_ordered_keys(self, record):
33-
"""
34-
We need this method because we want to maintain the fields order set in the form.
35-
The form can also change during time, and each record can have different fields stored in it.
36-
"""
37-
record_order = record.attrs.get("fields_order", [])
38-
if record_order:
39-
return record_order
40-
order = []
41-
# first add the keys that are currently in the form
42-
for k in self.form_fields_order:
43-
if k in record.attrs:
44-
order.append(k)
45-
# finally append the keys stored in the record but that are not in the form (maybe the form changed during time)
46-
for k in record.attrs.keys():
47-
if k not in order and k not in SKIP_ATTRS:
48-
order.append(k)
49-
return order
50-
5132
def render(self):
5233
self.check_permission()
5334

@@ -74,7 +55,7 @@ def get_data(self):
7455
for item in store.search():
7556
data = {}
7657
fields_labels = self.get_fields_labels(item)
77-
for k in self.get_ordered_keys(item):
58+
for k in self.form_fields_order:
7859
if k in SKIP_ATTRS:
7960
continue
8061
value = item.attrs.get(k, None)
@@ -87,6 +68,7 @@ def get_data(self):
8768
value = item.attrs.get(k, None)
8869
data[k] = json_compatible(value)
8970
rows.append(data)
71+
9072
columns.extend(fixed_columns)
9173
writer = csv.DictWriter(sbuf, fieldnames=columns, quoting=csv.QUOTE_ALL)
9274
writer.writeheader()

0 commit comments

Comments
 (0)