fix linting
Some checks failed
continuous-integration/drone/push Build is failing

This commit is contained in:
carla 2026-02-20 09:16:38 +01:00
parent cb932ad6ef
commit 397f7a7975
3 changed files with 52 additions and 38 deletions

View file

@ -272,11 +272,22 @@ defmodule Mv.Membership.MemberExport.Build do
if field == "groups" do if field == "groups" do
sort_members_by_groups_export(members, order) sort_members_by_groups_export(members, order)
else else
sort_by_custom_field_value(members, field, order, custom_fields)
end
end
defp sort_by_custom_field_value(members, field, order, custom_fields) do
id_str = String.trim_leading(field, @custom_field_prefix) id_str = String.trim_leading(field, @custom_field_prefix)
custom_field = Enum.find(custom_fields, fn cf -> to_string(cf.id) == id_str end) custom_field = Enum.find(custom_fields, fn cf -> to_string(cf.id) == id_str end)
if is_nil(custom_field), do: members if is_nil(custom_field) do
members
else
sort_members_with_custom_field(members, custom_field, order)
end
end
defp sort_members_with_custom_field(members, custom_field, order) do
key_fn = fn member -> key_fn = fn member ->
cfv = find_cfv(member, custom_field) cfv = find_cfv(member, custom_field)
raw = if cfv, do: cfv.value, else: nil raw = if cfv, do: cfv.value, else: nil
@ -288,7 +299,6 @@ defmodule Mv.Membership.MemberExport.Build do
|> Enum.sort(fn {_, ka}, {_, kb} -> MemberExportSort.key_lt(ka, kb, order) end) |> Enum.sort(fn {_, ka}, {_, kb} -> MemberExportSort.key_lt(ka, kb, order) end)
|> Enum.map(fn {m, _} -> m end) |> Enum.map(fn {m, _} -> m end)
end end
end
defp sort_members_by_groups_export(members, order) do defp sort_members_by_groups_export(members, order) do
# Members with groups first, then by first group name alphabetically (min = first by sort order) # Members with groups first, then by first group name alphabetically (min = first by sort order)

View file

@ -380,6 +380,11 @@ defmodule MvWeb.MemberExportController do
if field == "groups" do if field == "groups" do
sort_members_by_groups_export(members, order) sort_members_by_groups_export(members, order)
else else
sort_by_custom_field_value(members, field, order, custom_fields)
end
end
defp sort_by_custom_field_value(members, field, order, custom_fields) do
id_str = String.trim_leading(field, @custom_field_prefix) id_str = String.trim_leading(field, @custom_field_prefix)
custom_field = custom_field =
@ -408,7 +413,6 @@ defmodule MvWeb.MemberExportController do
sorted_with_values ++ without_values sorted_with_values ++ without_values
end end
end end
end
defp sort_members_by_groups_export(members, order) do defp sort_members_by_groups_export(members, order) do
# Members with groups first, then by first group name alphabetically (min = first by sort order) # Members with groups first, then by first group name alphabetically (min = first by sort order)

View file

@ -686,6 +686,7 @@ defmodule MvWeb.MemberLive.Index do
socket = socket =
if socket.assigns[:sort_needs_update] do if socket.assigns[:sort_needs_update] do
old_field = socket.assigns[:previous_sort_field] || socket.assigns.sort_field old_field = socket.assigns[:previous_sort_field] || socket.assigns.sort_field
socket socket
|> update_sort_components(old_field, socket.assigns.sort_field, socket.assigns.sort_order) |> update_sort_components(old_field, socket.assigns.sort_field, socket.assigns.sort_order)
|> assign(:sort_needs_update, false) |> assign(:sort_needs_update, false)
@ -1066,7 +1067,6 @@ defmodule MvWeb.MemberLive.Index do
end end
end end
defp apply_sort_to_query(query, field, order) do defp apply_sort_to_query(query, field, order) do
cond do cond do
# Groups sort -> after load (in memory) # Groups sort -> after load (in memory)