Implements custom field CSV import closes #338 #395
1 changed files with 5 additions and 2 deletions
|
|
@ -233,17 +233,20 @@ defmodule Mv.Membership.Import.MemberCSV do
|
||||||
|
|
||||||
# Builds a row map from raw row values using column maps
|
# Builds a row map from raw row values using column maps
|
||||||
defp build_row_map(row_values, maps) do
|
defp build_row_map(row_values, maps) do
|
||||||
|
row_tuple = List.to_tuple(row_values)
|
||||||
|
tuple_size = tuple_size(row_tuple)
|
||||||
|
|
||||||
member_map =
|
member_map =
|
||||||
maps.member
|
maps.member
|
||||||
|> Enum.reduce(%{}, fn {field, index}, acc ->
|
|> Enum.reduce(%{}, fn {field, index}, acc ->
|
||||||
value = Enum.at(row_values, index, "")
|
value = if index < tuple_size, do: elem(row_tuple, index), else: ""
|
||||||
Map.put(acc, field, value)
|
Map.put(acc, field, value)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
custom_map =
|
custom_map =
|
||||||
maps.custom
|
maps.custom
|
||||||
|> Enum.reduce(%{}, fn {custom_field_id, index}, acc ->
|
|> Enum.reduce(%{}, fn {custom_field_id, index}, acc ->
|
||||||
value = Enum.at(row_values, index, "")
|
value = if index < tuple_size, do: elem(row_tuple, index), else: ""
|
||||||
Map.put(acc, custom_field_id, value)
|
Map.put(acc, custom_field_id, value)
|
||||||
end)
|
end)
|
||||||
|
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue