Count unique catalog entries in collection summary
The record_count now reflects the number of grouped catalog lines the model sees, not raw DB rows. Two copies of the same album on different formats count as 1 catalog entry.
This commit is contained in:
@@ -203,16 +203,15 @@ defmodule MusicLibrary.Collection do
|
|||||||
)
|
)
|
||||||
|> Repo.all()
|
|> Repo.all()
|
||||||
|
|
||||||
record_count = length(records)
|
groups =
|
||||||
|
|
||||||
summary =
|
|
||||||
records
|
records
|
||||||
|> Enum.group_by(& &1.musicbrainz_id)
|
|> Enum.group_by(& &1.musicbrainz_id)
|
||||||
|> Enum.map(fn {_id, group} -> format_group(group) end)
|
|> Enum.map(fn {_id, group} -> format_group(group) end)
|
||||||
|> Enum.sort()
|
|> Enum.sort()
|
||||||
|> Enum.join("\n")
|
|
||||||
|
|
||||||
{summary, record_count}
|
summary = Enum.join(groups, "\n")
|
||||||
|
|
||||||
|
{summary, length(groups)}
|
||||||
end
|
end
|
||||||
|
|
||||||
defp format_group(records) do
|
defp format_group(records) do
|
||||||
|
|||||||
@@ -366,7 +366,7 @@ defmodule MusicLibrary.CollectionTest do
|
|||||||
{summary, record_count} = Collection.collection_summary()
|
{summary, record_count} = Collection.collection_summary()
|
||||||
lines = String.split(summary, "\n")
|
lines = String.split(summary, "\n")
|
||||||
|
|
||||||
assert record_count == 2
|
assert record_count == 1
|
||||||
assert length(lines) == 1
|
assert length(lines) == 1
|
||||||
assert hd(lines) =~ "cd/vinyl"
|
assert hd(lines) =~ "cd/vinyl"
|
||||||
end
|
end
|
||||||
|
|||||||
Reference in New Issue
Block a user