forked from shibao/cannery
		
	fix ammo type table not displaying correct information
This commit is contained in:
		| @@ -1,6 +1,7 @@ | |||||||
| # v0.8.6 | # v0.8.6 | ||||||
| - Fix duplicate entries showing up | - Fix duplicate entries showing up | ||||||
| - Show ammo groups under a type in a table by default | - Show ammo groups under a type in a table by default | ||||||
|  | - Only show historical ammo type information when displaying "Show used" in table | ||||||
|  |  | ||||||
| # v0.8.5 | # v0.8.5 | ||||||
| - Add link in readme to github mirror | - Add link in readme to github mirror | ||||||
|   | |||||||
| @@ -103,13 +103,13 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do | |||||||
|           [ |           [ | ||||||
|             %{ |             %{ | ||||||
|               label: gettext("Used packs"), |               label: gettext("Used packs"), | ||||||
|               key: :used_packs_count, |               key: :used_pack_count, | ||||||
|               type: :used_packs_count |               type: :used_pack_count | ||||||
|             }, |             }, | ||||||
|             %{ |             %{ | ||||||
|               label: gettext("Total ever packs"), |               label: gettext("Total ever packs"), | ||||||
|               key: :historical_packs_count, |               key: :historical_pack_count, | ||||||
|               type: :historical_packs_count |               type: :historical_pack_count | ||||||
|             } |             } | ||||||
|           ] |           ] | ||||||
|         else |         else | ||||||
| @@ -122,23 +122,21 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do | |||||||
|       ]) |       ]) | ||||||
|  |  | ||||||
|     round_counts = ammo_types |> Ammo.get_round_count_for_ammo_types(current_user) |     round_counts = ammo_types |> Ammo.get_round_count_for_ammo_types(current_user) | ||||||
|  |  | ||||||
|     used_counts = |  | ||||||
|       show_used && ammo_types |> ActivityLog.get_used_count_for_ammo_types(current_user) |  | ||||||
|  |  | ||||||
|     historical_round_counts = |  | ||||||
|       show_used && ammo_types |> Ammo.get_historical_count_for_ammo_types(current_user) |  | ||||||
|  |  | ||||||
|     packs_count = ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user) |     packs_count = ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user) | ||||||
|  |  | ||||||
|     historical_packs_count = |  | ||||||
|       show_used && ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user, true) |  | ||||||
|  |  | ||||||
|     used_packs_count = |  | ||||||
|       show_used && ammo_types |> Ammo.get_used_ammo_groups_count_for_types(current_user) |  | ||||||
|  |  | ||||||
|     average_costs = ammo_types |> Ammo.get_average_cost_for_ammo_types(current_user) |     average_costs = ammo_types |> Ammo.get_average_cost_for_ammo_types(current_user) | ||||||
|  |  | ||||||
|  |     [used_counts, historical_round_counts, historical_pack_counts, used_pack_counts] = | ||||||
|  |       if show_used do | ||||||
|  |         [ | ||||||
|  |           ammo_types |> ActivityLog.get_used_count_for_ammo_types(current_user), | ||||||
|  |           ammo_types |> Ammo.get_historical_count_for_ammo_types(current_user), | ||||||
|  |           ammo_types |> Ammo.get_ammo_groups_count_for_types(current_user, true), | ||||||
|  |           ammo_types |> Ammo.get_used_ammo_groups_count_for_types(current_user) | ||||||
|  |         ] | ||||||
|  |       else | ||||||
|  |         [nil, nil, nil, nil] | ||||||
|  |       end | ||||||
|  |  | ||||||
|     extra_data = %{ |     extra_data = %{ | ||||||
|       actions: actions, |       actions: actions, | ||||||
|       current_user: current_user, |       current_user: current_user, | ||||||
| @@ -146,8 +144,8 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do | |||||||
|       round_counts: round_counts, |       round_counts: round_counts, | ||||||
|       historical_round_counts: historical_round_counts, |       historical_round_counts: historical_round_counts, | ||||||
|       packs_count: packs_count, |       packs_count: packs_count, | ||||||
|       used_packs_count: used_packs_count, |       used_pack_counts: used_pack_counts, | ||||||
|       historical_packs_count: historical_packs_count, |       historical_pack_counts: historical_pack_counts, | ||||||
|       average_costs: average_costs |       average_costs: average_costs | ||||||
|     } |     } | ||||||
|  |  | ||||||
| @@ -192,33 +190,46 @@ defmodule CanneryWeb.Components.AmmoTypeTableComponent do | |||||||
|          _key, |          _key, | ||||||
|          %{id: ammo_type_id}, |          %{id: ammo_type_id}, | ||||||
|          %{historical_round_counts: historical_round_counts} |          %{historical_round_counts: historical_round_counts} | ||||||
|        ), |        ) do | ||||||
|        do: Map.get(historical_round_counts, ammo_type_id) |     Map.get(historical_round_counts, ammo_type_id) | ||||||
|  |   end | ||||||
|   defp get_ammo_type_value(:used_round_count, _key, %{id: ammo_type_id}, %{ |  | ||||||
|          used_counts: used_counts |  | ||||||
|        }), |  | ||||||
|        do: Map.get(used_counts, ammo_type_id) |  | ||||||
|  |  | ||||||
|   defp get_ammo_type_value( |   defp get_ammo_type_value( | ||||||
|          :historical_packs_count, |          :used_round_count, | ||||||
|          _key, |          _key, | ||||||
|          %{id: ammo_type_id}, |          %{id: ammo_type_id}, | ||||||
|          %{historical_packs_count: historical_packs_count} |          %{used_counts: used_counts} | ||||||
|        ), |        ) do | ||||||
|        do: Map.get(historical_packs_count, ammo_type_id) |     Map.get(used_counts, ammo_type_id) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   defp get_ammo_type_value(:used_packs_count, _key, %{id: ammo_type_id}, %{ |   defp get_ammo_type_value( | ||||||
|          used_packs_count: used_packs_count |          :historical_pack_count, | ||||||
|        }), |          _key, | ||||||
|        do: Map.get(used_packs_count, ammo_type_id) |          %{id: ammo_type_id}, | ||||||
|  |          %{historical_pack_counts: historical_pack_counts} | ||||||
|  |        ) do | ||||||
|  |     Map.get(historical_pack_counts, ammo_type_id) | ||||||
|  |   end | ||||||
|  |  | ||||||
|  |   defp get_ammo_type_value( | ||||||
|  |          :used_pack_count, | ||||||
|  |          _key, | ||||||
|  |          %{id: ammo_type_id}, | ||||||
|  |          %{used_pack_counts: used_pack_counts} | ||||||
|  |        ) do | ||||||
|  |     Map.get(used_pack_counts, ammo_type_id, 0) | ||||||
|  |   end | ||||||
|  |  | ||||||
|   defp get_ammo_type_value(:ammo_count, _key, %{id: ammo_type_id}, %{packs_count: packs_count}), |   defp get_ammo_type_value(:ammo_count, _key, %{id: ammo_type_id}, %{packs_count: packs_count}), | ||||||
|     do: Map.get(packs_count, ammo_type_id) |     do: Map.get(packs_count, ammo_type_id) | ||||||
|  |  | ||||||
|   defp get_ammo_type_value(:avg_price_paid, _key, %{id: ammo_type_id}, %{ |   defp get_ammo_type_value( | ||||||
|          average_costs: average_costs |          :avg_price_paid, | ||||||
|        }) do |          _key, | ||||||
|  |          %{id: ammo_type_id}, | ||||||
|  |          %{average_costs: average_costs} | ||||||
|  |        ) do | ||||||
|     case Map.get(average_costs, ammo_type_id) do |     case Map.get(average_costs, ammo_type_id) do | ||||||
|       nil -> gettext("No cost information") |       nil -> gettext("No cost information") | ||||||
|       count -> gettext("$%{amount}", amount: display_currency(count)) |       count -> gettext("$%{amount}", amount: display_currency(count)) | ||||||
|   | |||||||
| @@ -528,7 +528,7 @@ msgstr "Schießkladde" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -622,7 +622,7 @@ msgid "Rounds:" | |||||||
| msgstr "Patronen:" | msgstr "Patronen:" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -522,7 +522,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -616,7 +616,7 @@ msgid "Rounds:" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -522,7 +522,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -616,7 +616,7 @@ msgid "Rounds:" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -529,7 +529,7 @@ msgstr "Registro de tiros" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -623,7 +623,7 @@ msgid "Rounds:" | |||||||
| msgstr "Balas:" | msgstr "Balas:" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -530,7 +530,7 @@ msgstr "Évènements de tir" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -624,7 +624,7 @@ msgid "Rounds:" | |||||||
| msgstr "Cartouches :" | msgstr "Cartouches :" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -524,7 +524,7 @@ msgstr "" | |||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:154 | #: lib/cannery_web/components/ammo_group_table_component.ex:154 | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:230 | #: lib/cannery_web/components/ammo_group_table_component.ex:230 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:224 | #: lib/cannery_web/components/ammo_type_table_component.ex:235 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:45 | ||||||
| #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | #: lib/cannery_web/components/core_components/ammo_group_card.html.heex:50 | ||||||
| #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | #: lib/cannery_web/live/ammo_group_live/show.html.heex:37 | ||||||
| @@ -618,7 +618,7 @@ msgid "Rounds:" | |||||||
| msgstr "" | msgstr "" | ||||||
|  |  | ||||||
| #: lib/cannery_web/components/ammo_group_table_component.ex:227 | #: lib/cannery_web/components/ammo_group_table_component.ex:227 | ||||||
| #: lib/cannery_web/components/ammo_type_table_component.ex:223 | #: lib/cannery_web/components/ammo_type_table_component.ex:234 | ||||||
| #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | #: lib/cannery_web/live/ammo_type_live/show.html.heex:139 | ||||||
| #, elixir-autogen, elixir-format | #, elixir-autogen, elixir-format | ||||||
| msgid "No cost information" | msgid "No cost information" | ||||||
|   | |||||||
| @@ -230,9 +230,9 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|       assert html =~ gettext("Used packs") |       assert html =~ gettext("Used packs") | ||||||
|       assert html =~ gettext("Total ever packs") |       assert html =~ gettext("Total ever packs") | ||||||
|  |  | ||||||
|       assert html =~ "20" |       assert html =~ "\n20\n" | ||||||
|       assert html =~ "0" |       assert html =~ "\n0\n" | ||||||
|       assert html =~ "1" |       assert html =~ "\n1\n" | ||||||
|  |  | ||||||
|       shot_group_fixture(%{"count" => 5}, current_user, ammo_group) |       shot_group_fixture(%{"count" => 5}, current_user, ammo_group) | ||||||
|  |  | ||||||
| @@ -243,8 +243,8 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) |         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) | ||||||
|         |> render_click() |         |> render_click() | ||||||
|  |  | ||||||
|       assert html =~ "15" |       assert html =~ "\n15\n" | ||||||
|       assert html =~ "5" |       assert html =~ "\n5\n" | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
|  |  | ||||||
| @@ -297,7 +297,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|       {:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) |       {:ok, _show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) | ||||||
|  |  | ||||||
|       assert html =~ ammo_type_name |       assert html =~ ammo_type_name | ||||||
|       assert html =~ "some ammo group" |       assert html =~ "\n20\n" | ||||||
|       assert html =~ container_name |       assert html =~ container_name | ||||||
|     end |     end | ||||||
|  |  | ||||||
| @@ -310,7 +310,7 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/) |         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_table-label"}]/) | ||||||
|         |> render_click() |         |> render_click() | ||||||
|  |  | ||||||
|       assert html =~ "some ammo group" |       assert html =~ "\n20\n" | ||||||
|       assert html =~ container_name |       assert html =~ container_name | ||||||
|     end |     end | ||||||
|   end |   end | ||||||
| @@ -323,14 +323,14 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|       {:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) |       {:ok, show_live, html} = live(conn, Routes.ammo_type_show_path(conn, :show, ammo_type)) | ||||||
|  |  | ||||||
|       assert html =~ dgettext("actions", "Show used") |       assert html =~ dgettext("actions", "Show used") | ||||||
|       refute html =~ "some ammo group" |       refute html =~ "\n20\n" | ||||||
|  |  | ||||||
|       html = |       html = | ||||||
|         show_live |         show_live | ||||||
|         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) |         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) | ||||||
|         |> render_click() |         |> render_click() | ||||||
|  |  | ||||||
|       assert html =~ "some ammo group" |       assert html =~ "\n20\n" | ||||||
|       assert html =~ "Empty" |       assert html =~ "Empty" | ||||||
|       assert html =~ container_name |       assert html =~ container_name | ||||||
|     end |     end | ||||||
| @@ -345,14 +345,14 @@ defmodule CanneryWeb.AmmoTypeLiveTest do | |||||||
|         |> render_click() |         |> render_click() | ||||||
|  |  | ||||||
|       assert html =~ dgettext("actions", "Show used") |       assert html =~ dgettext("actions", "Show used") | ||||||
|       refute html =~ "some ammo group" |       refute html =~ "\n20\n" | ||||||
|  |  | ||||||
|       html = |       html = | ||||||
|         show_live |         show_live | ||||||
|         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) |         |> element(~s/input[type="checkbox"][aria-labelledby="toggle_show_used-label"}]/) | ||||||
|         |> render_click() |         |> render_click() | ||||||
|  |  | ||||||
|       assert html =~ "some ammo group" |       assert html =~ "\n20\n" | ||||||
|       assert html =~ "Empty" |       assert html =~ "Empty" | ||||||
|       assert html =~ container_name |       assert html =~ container_name | ||||||
|     end |     end | ||||||
|   | |||||||
		Reference in New Issue
	
	Block a user