diff --git a/lib/music_library/wishlist.ex b/lib/music_library/wishlist.ex index 72512853..3fd2d772 100644 --- a/lib/music_library/wishlist.ex +++ b/lib/music_library/wishlist.ex @@ -21,14 +21,14 @@ defmodule MusicLibrary.Wishlist do Repo.aggregate(base_search(), :count) end - def wishlisted_release_ids(release_ids) do + def wishlisted_releases(release_ids) do q = from r in fragment("records, json_each(records.release_ids)"), where: r.value in ^release_ids, where: fragment("records.purchased_at IS NULL"), - select: r.value + select: %{record_id: fragment("records.id"), release_id: r.value} - q |> Repo.all() |> MapSet.new() + q |> Repo.all() end defp base_search do diff --git a/lib/music_library_web/live/stats_live/index.ex b/lib/music_library_web/live/stats_live/index.ex index 7d96b9ac..97b1c199 100644 --- a/lib/music_library_web/live/stats_live/index.ex +++ b/lib/music_library_web/live/stats_live/index.ex @@ -89,7 +89,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do recent_release_ids = recent_release_ids(recent_tracks) collected_releases = Collection.collected_releases(recent_release_ids) - wishlisted_release_ids = Wishlist.wishlisted_release_ids(recent_release_ids) + wishlisted_releases = Wishlist.wishlisted_releases(recent_release_ids) all_artist_ids = Artists.get_all_artist_ids() recent_artist_ids = recent_artist_ids(recent_tracks) @@ -97,7 +97,7 @@ defmodule MusicLibraryWeb.StatsLive.Index do assign(socket, collected_releases: collected_releases, - wishlisted_release_ids: wishlisted_release_ids, + wishlisted_releases: wishlisted_releases, artist_ids: artist_ids ) end @@ -117,8 +117,8 @@ defmodule MusicLibraryWeb.StatsLive.Index do |> MapSet.new() end - defp collected_record?(collected_releases, r_id) do - Enum.find_value(collected_releases, fn %{record_id: record_id, release_id: release_id} -> + defp tracked_record?(releases, r_id) do + Enum.find_value(releases, fn %{record_id: record_id, release_id: release_id} -> if release_id == r_id, do: record_id end) end diff --git a/lib/music_library_web/live/stats_live/index.html.heex b/lib/music_library_web/live/stats_live/index.html.heex index 09dd8d37..53967ce1 100644 --- a/lib/music_library_web/live/stats_live/index.html.heex +++ b/lib/music_library_web/live/stats_live/index.html.heex @@ -143,7 +143,7 @@ {gettext("No MB ID")} <.link - :if={record_id = collected_record?(@collected_releases, track.album.musicbrainz_id)} + :if={record_id = tracked_record?(@collected_releases, track.album.musicbrainz_id)} navigate={~p"/collection/#{record_id}"} > - + - {gettext("Wishlisted")} - + ]}> + {gettext("Wishlisted")} + +
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot index d3ddefbb..b717d383 100644 --- a/priv/gettext/default.pot +++ b/priv/gettext/default.pot @@ -340,7 +340,7 @@ msgid "Scrobble activity" msgstr "" #: lib/music_library_web/live/record_live/import_component.ex:80 -#: lib/music_library_web/live/stats_live/index.html.heex:191 +#: lib/music_library_web/live/stats_live/index.html.heex:193 #, elixir-autogen, elixir-format msgid "Choose which format to import" msgstr "" @@ -350,7 +350,7 @@ msgstr "" msgid "Collected" msgstr "" -#: lib/music_library_web/live/stats_live/index.html.heex:171 +#: lib/music_library_web/live/stats_live/index.html.heex:172 #, elixir-autogen, elixir-format msgid "Wishlisted" msgstr ""