This commit is contained in:
carla 2026-02-13 17:21:14 +01:00
parent 4fb5b12ea7
commit baa288bff3
11 changed files with 401 additions and 780 deletions

View file

@ -194,13 +194,7 @@ defmodule Mv.Membership.MemberExport.Build do
field_atom = String.to_existing_atom(field)
if field_atom in Mv.Constants.member_fields() do
Enum.sort_by(members, fn member -> Map.get(member, field_atom) end, fn a, b ->
case order do
"asc" -> a <= b
"desc" -> b <= a
_ -> true
end
end)
sort_by_field(members, field_atom, order)
else
members
end
@ -210,6 +204,17 @@ defmodule Mv.Membership.MemberExport.Build do
defp sort_members_in_memory(members, _field, _order), do: members
defp sort_by_field(members, field_atom, order) do
key_fn = fn member -> Map.get(member, field_atom) end
compare_fn = build_compare_fn(order)
Enum.sort_by(members, key_fn, compare_fn)
end
defp build_compare_fn("asc"), do: fn a, b -> a <= b end
defp build_compare_fn("desc"), do: fn a, b -> b <= a end
defp build_compare_fn(_), do: fn _a, _b -> true end
defp load_custom_field_values_query(query, []), do: query
defp load_custom_field_values_query(query, custom_field_ids) do
@ -251,11 +256,6 @@ defmodule Mv.Membership.MemberExport.Build do
ArgumentError -> {query, false}
end
defp sort_after_load?(field) when is_binary(field),
do: String.starts_with?(field, @custom_field_prefix)
defp sort_after_load?(_), do: false
defp sort_members_by_custom_field(members, _field, _order, _custom_fields) when members == [],
do: []