Compare commits

..

1 commit

Author SHA1 Message Date
930c039c5d
CSV export: robust apply_export_filters, single custom_field_ids_union, string boolean_filters, more tests
Some checks failed
continuous-integration/drone/push Build is failing
2026-03-04 20:51:00 +01:00

View file

@ -197,8 +197,7 @@ defmodule MvWeb.MemberExportController do
parsed parsed
|> ensure_sort_custom_field_loaded() |> ensure_sort_custom_field_loaded()
with {:ok, custom_fields_by_id} <- with {:ok, custom_fields_by_id} <- load_custom_fields_by_id(parsed.custom_field_ids_union, actor),
load_custom_fields_by_id(parsed.custom_field_ids_union, actor),
{:ok, members} <- load_members_for_export(actor, parsed, custom_fields_by_id) do {:ok, members} <- load_members_for_export(actor, parsed, custom_fields_by_id) do
columns = build_columns(conn, parsed, custom_fields_by_id) columns = build_columns(conn, parsed, custom_fields_by_id)
csv_iodata = MembersCSV.export(members, columns) csv_iodata = MembersCSV.export(members, columns)
@ -216,18 +215,15 @@ defmodule MvWeb.MemberExportController do
end end
end end
defp ensure_sort_custom_field_loaded( defp ensure_sort_custom_field_loaded(%{custom_field_ids: ids, custom_field_ids_union: union, sort_field: sort_field} = parsed) do
%{custom_field_ids: ids, custom_field_ids_union: union, sort_field: sort_field} = parsed
) do
case extract_sort_custom_field_id(sort_field) do case extract_sort_custom_field_id(sort_field) do
nil -> nil ->
parsed parsed
id -> id ->
%{ %{parsed |
parsed custom_field_ids: Enum.uniq([id | ids]),
| custom_field_ids: Enum.uniq([id | ids]), custom_field_ids_union: Enum.uniq([id | union])
custom_field_ids_union: Enum.uniq([id | union])
} }
end end
end end