<%= live_patch to: Routes.ammo_group_show_path(Endpoint, :edit_shot_group, @ammo_group, shot_group),
@@ -136,7 +136,7 @@ defmodule CanneryWeb.AmmoGroupLive.Show do
"""
key ->
- shot_group |> Map.get(key |> String.to_existing_atom())
+ shot_group |> Map.get(key)
end
{key, value}
diff --git a/lib/cannery_web/live/ammo_type_live/index.ex b/lib/cannery_web/live/ammo_type_live/index.ex
index 1597a95..2c83639 100644
--- a/lib/cannery_web/live/ammo_type_live/index.ex
+++ b/lib/cannery_web/live/ammo_type_live/index.ex
@@ -48,29 +48,29 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
columns =
[
- %{label: gettext("Name"), key: "name", type: :name},
- %{label: gettext("Bullet type"), key: "bullet_type", type: :string},
- %{label: gettext("Bullet core"), key: "bullet_core", type: :string},
- %{label: gettext("Cartridge"), key: "cartridge", type: :string},
- %{label: gettext("Caliber"), key: "caliber", type: :string},
- %{label: gettext("Case material"), key: "case_material", type: :string},
- %{label: gettext("Jacket type"), key: "jacket_type", type: :string},
- %{label: gettext("Muzzle velocity"), key: "muzzle_velocity", type: :string},
- %{label: gettext("Powder type"), key: "powder_type", type: :string},
+ %{label: gettext("Name"), key: :name, type: :name},
+ %{label: gettext("Bullet type"), key: :bullet_type, type: :string},
+ %{label: gettext("Bullet core"), key: :bullet_core, type: :string},
+ %{label: gettext("Cartridge"), key: :cartridge, type: :string},
+ %{label: gettext("Caliber"), key: :caliber, type: :string},
+ %{label: gettext("Case material"), key: :case_material, type: :string},
+ %{label: gettext("Jacket type"), key: :jacket_type, type: :string},
+ %{label: gettext("Muzzle velocity"), key: :muzzle_velocity, type: :string},
+ %{label: gettext("Powder type"), key: :powder_type, type: :string},
%{
label: gettext("Powder grains per charge"),
- key: "powder_grains_per_charge",
+ key: :powder_grains_per_charge,
type: :string
},
- %{label: gettext("Grains"), key: "grains", type: :string},
- %{label: gettext("Pressure"), key: "pressure", type: :string},
- %{label: gettext("Primer type"), key: "primer_type", type: :string},
- %{label: gettext("Firing type"), key: "firing_type", type: :string},
- %{label: gettext("Tracer"), key: "tracer", type: :boolean},
- %{label: gettext("Incendiary"), key: "incendiary", type: :boolean},
- %{label: gettext("Blank"), key: "blank", type: :boolean},
- %{label: gettext("Corrosive"), key: "corrosive", type: :boolean},
- %{label: gettext("Manufacturer"), key: "manufacturer", type: :string},
+ %{label: gettext("Grains"), key: :grains, type: :string},
+ %{label: gettext("Pressure"), key: :pressure, type: :string},
+ %{label: gettext("Primer type"), key: :primer_type, type: :string},
+ %{label: gettext("Firing type"), key: :firing_type, type: :string},
+ %{label: gettext("Tracer"), key: :tracer, type: :boolean},
+ %{label: gettext("Incendiary"), key: :incendiary, type: :boolean},
+ %{label: gettext("Blank"), key: :blank, type: :boolean},
+ %{label: gettext("Corrosive"), key: :corrosive, type: :boolean},
+ %{label: gettext("Manufacturer"), key: :manufacturer, type: :string},
%{label: gettext("UPC"), key: "upc", type: :string}
]
|> Enum.filter(fn %{key: key, type: type} ->
@@ -83,9 +83,9 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end)
end)
|> Kernel.++([
- %{label: gettext("Total # of rounds"), key: "round_count", type: :round_count},
- %{label: gettext("Total # of ammo"), key: "ammo_count", type: :ammo_count},
- %{label: gettext("Average Price paid"), key: "avg_price_paid", type: :avg_price_paid},
+ %{label: gettext("Total # of rounds"), key: :round_count, type: :round_count},
+ %{label: gettext("Total # of ammo"), key: :ammo_count, type: :ammo_count},
+ %{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false}
])
@@ -104,7 +104,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end
defp get_ammo_type_value(:boolean, key, ammo_type, _current_user),
- do: ammo_type |> Map.get(key |> String.to_existing_atom()) |> humanize()
+ do: ammo_type |> Map.get(key) |> humanize()
defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
@@ -164,6 +164,5 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
defp get_ammo_type_value(nil, _key, _ammo_type, _current_user), do: nil
- defp get_ammo_type_value(_other, key, ammo_type, _current_user),
- do: ammo_type |> Map.get(key |> String.to_existing_atom())
+ defp get_ammo_type_value(_other, key, ammo_type, _current_user), do: ammo_type |> Map.get(key)
end
diff --git a/lib/cannery_web/live/ammo_type_live/show.ex b/lib/cannery_web/live/ammo_type_live/show.ex
index 54ff6ed..31d28c8 100644
--- a/lib/cannery_web/live/ammo_type_live/show.ex
+++ b/lib/cannery_web/live/ammo_type_live/show.ex
@@ -32,7 +32,7 @@ defmodule CanneryWeb.AmmoTypeLive.Show do
end
@impl true
- def handle_event("toggle_show_used", _, %{assigns: %{show_used: show_used}} = socket) do
+ def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> display_ammo_type()}
end
diff --git a/lib/cannery_web/live/container_live/show.ex b/lib/cannery_web/live/container_live/show.ex
index 5bde711..933ee5f 100644
--- a/lib/cannery_web/live/container_live/show.ex
+++ b/lib/cannery_web/live/container_live/show.ex
@@ -5,7 +5,7 @@ defmodule CanneryWeb.ContainerLive.Show do
use CanneryWeb, :live_view
import CanneryWeb.Components.{AmmoGroupCard, TagCard}
- alias Cannery.{Ammo, Accounts.User, Containers, Containers.Container, Repo, Tags}
+ alias Cannery.{Accounts.User, Ammo, Containers, Containers.Container, Repo, Tags}
alias CanneryWeb.Endpoint
alias Ecto.Changeset
alias Phoenix.LiveView.Socket
@@ -83,7 +83,7 @@ defmodule CanneryWeb.ContainerLive.Show do
end
@impl true
- def handle_event("toggle_show_used", _, %{assigns: %{show_used: show_used}} = socket) do
+ def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> render_container()}
end
diff --git a/lib/cannery_web/live/range_live/index.ex b/lib/cannery_web/live/range_live/index.ex
index f9cda6f..f763125 100644
--- a/lib/cannery_web/live/range_live/index.ex
+++ b/lib/cannery_web/live/range_live/index.ex
@@ -77,10 +77,10 @@ defmodule CanneryWeb.RangeLive.Index do
ammo_groups = Ammo.list_staged_ammo_groups(current_user)
columns = [
- %{label: gettext("Ammo"), key: "name"},
- %{label: gettext("Rounds shot"), key: "count"},
- %{label: gettext("Notes"), key: "notes"},
- %{label: gettext("Date"), key: "date"},
+ %{label: gettext("Ammo"), key: :name},
+ %{label: gettext("Rounds shot"), key: :count},
+ %{label: gettext("Notes"), key: :notes},
+ %{label: gettext("Date"), key: :date},
%{label: nil, key: "actions", sortable: false}
]
@@ -101,17 +101,17 @@ defmodule CanneryWeb.RangeLive.Index do
|> Enum.into(%{}, fn %{key: key} ->
value =
case key do
- "name" ->
+ :name ->
{shot_group.ammo_group.ammo_type.name,
live_patch(shot_group.ammo_group.ammo_type.name,
to: Routes.ammo_group_show_path(Endpoint, :show, shot_group.ammo_group),
class: "link"
)}
- "date" ->
+ :date ->
date |> display_date()
- "actions" ->
+ :actions ->
~H"""
<%= live_patch to: Routes.range_index_path(Endpoint, :edit, shot_group),
@@ -134,7 +134,7 @@ defmodule CanneryWeb.RangeLive.Index do
"""
key ->
- shot_group |> Map.get(key |> String.to_existing_atom())
+ shot_group |> Map.get(key)
end
{key, value}
diff --git a/priv/gettext/actions.pot b/priv/gettext/actions.pot
index 0fd0428..3ec8492 100644
--- a/priv/gettext/actions.pot
+++ b/priv/gettext/actions.pot
@@ -156,7 +156,7 @@ msgid "Why not get some ready to shoot?"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:160
+#: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
diff --git a/priv/gettext/de/LC_MESSAGES/actions.po b/priv/gettext/de/LC_MESSAGES/actions.po
index f7add7f..e992b71 100644
--- a/priv/gettext/de/LC_MESSAGES/actions.po
+++ b/priv/gettext/de/LC_MESSAGES/actions.po
@@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:160
+#: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
diff --git a/priv/gettext/de/LC_MESSAGES/default.po b/priv/gettext/de/LC_MESSAGES/default.po
index 7b97cf9..5b9e108 100644
--- a/priv/gettext/de/LC_MESSAGES/default.po
+++ b/priv/gettext/de/LC_MESSAGES/default.po
@@ -376,7 +376,7 @@ msgid "Price paid"
msgstr "Kaufpreis"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:52
+#: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:"
msgstr "Kaufpreis:"
@@ -601,7 +601,7 @@ msgstr "Munitionsgruppe verschieben"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80
-#: lib/cannery_web/live/ammo_group_live/index.ex:217
+#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo"
msgstr "Munition verschieben"
@@ -616,8 +616,8 @@ msgid "Shot log"
msgstr "Schießkladde"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:53
-#: lib/cannery_web/live/ammo_group_live/index.ex:134
+#: lib/cannery_web/components/ammo_group_card.ex:60
+#: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118
@@ -682,12 +682,12 @@ msgid "New password"
msgstr "Neues Passwort"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage"
msgstr "Markiert"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage"
msgstr "Demarkiert"
@@ -942,7 +942,7 @@ msgid "Total # of ammo"
msgstr "Summe aller Patronen"
#, elixir-autogen, elixir-format, fuzzy
-#: lib/cannery_web/components/ammo_group_card.ex:61
+#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr "Behälter"
@@ -952,3 +952,13 @@ msgstr "Behälter"
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/live/ammo_group_live/index.ex:101
+msgid "Used up on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/components/ammo_group_card.ex:52
+msgid "Used up on:"
+msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/errors.po b/priv/gettext/de/LC_MESSAGES/errors.po
index 86902ab..6074f90 100644
--- a/priv/gettext/de/LC_MESSAGES/errors.po
+++ b/priv/gettext/de/LC_MESSAGES/errors.po
@@ -188,7 +188,7 @@ msgstr ""
"%{multiplier}"
#, elixir-autogen, elixir-format
-#: lib/cannery/ammo.ex:524
+#: lib/cannery/ammo.ex:535
msgid "Invalid multiplier"
msgstr ""
diff --git a/priv/gettext/de/LC_MESSAGES/prompts.po b/priv/gettext/de/LC_MESSAGES/prompts.po
index 4a27b94..8242ef3 100644
--- a/priv/gettext/de/LC_MESSAGES/prompts.po
+++ b/priv/gettext/de/LC_MESSAGES/prompts.po
@@ -100,7 +100,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:193
+#: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?"
msgstr "Sind Sie sicher, dass sie diese Munition löschen möchten?"
diff --git a/priv/gettext/default.pot b/priv/gettext/default.pot
index 03192a5..725e549 100644
--- a/priv/gettext/default.pot
+++ b/priv/gettext/default.pot
@@ -361,7 +361,7 @@ msgid "Price paid"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:52
+#: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:"
msgstr ""
@@ -584,7 +584,7 @@ msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80
-#: lib/cannery_web/live/ammo_group_live/index.ex:217
+#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo"
msgstr ""
@@ -599,8 +599,8 @@ msgid "Shot log"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:53
-#: lib/cannery_web/live/ammo_group_live/index.ex:134
+#: lib/cannery_web/components/ammo_group_card.ex:60
+#: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118
@@ -665,12 +665,12 @@ msgid "New password"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage"
msgstr ""
@@ -925,7 +925,7 @@ msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:61
+#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
@@ -935,3 +935,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/live/ammo_group_live/index.ex:101
+msgid "Used up on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/components/ammo_group_card.ex:52
+msgid "Used up on:"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/actions.po b/priv/gettext/en/LC_MESSAGES/actions.po
index 182ca5d..c16327c 100644
--- a/priv/gettext/en/LC_MESSAGES/actions.po
+++ b/priv/gettext/en/LC_MESSAGES/actions.po
@@ -157,7 +157,7 @@ msgid "Why not get some ready to shoot?"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:160
+#: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
diff --git a/priv/gettext/en/LC_MESSAGES/default.po b/priv/gettext/en/LC_MESSAGES/default.po
index d201414..6c33cbb 100644
--- a/priv/gettext/en/LC_MESSAGES/default.po
+++ b/priv/gettext/en/LC_MESSAGES/default.po
@@ -362,7 +362,7 @@ msgid "Price paid"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:52
+#: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:"
msgstr ""
@@ -585,7 +585,7 @@ msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80
-#: lib/cannery_web/live/ammo_group_live/index.ex:217
+#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo"
msgstr ""
@@ -600,8 +600,8 @@ msgid "Shot log"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:53
-#: lib/cannery_web/live/ammo_group_live/index.ex:134
+#: lib/cannery_web/components/ammo_group_card.ex:60
+#: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118
@@ -666,12 +666,12 @@ msgid "New password"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage"
msgstr ""
@@ -926,7 +926,7 @@ msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
-#: lib/cannery_web/components/ammo_group_card.ex:61
+#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
@@ -936,3 +936,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/live/ammo_group_live/index.ex:101
+msgid "Used up on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/components/ammo_group_card.ex:52
+msgid "Used up on:"
+msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/errors.po b/priv/gettext/en/LC_MESSAGES/errors.po
index 1cbb6db..028ba86 100644
--- a/priv/gettext/en/LC_MESSAGES/errors.po
+++ b/priv/gettext/en/LC_MESSAGES/errors.po
@@ -171,7 +171,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery/ammo.ex:524
+#: lib/cannery/ammo.ex:535
msgid "Invalid multiplier"
msgstr ""
diff --git a/priv/gettext/en/LC_MESSAGES/prompts.po b/priv/gettext/en/LC_MESSAGES/prompts.po
index 349a00d..4ea35b0 100644
--- a/priv/gettext/en/LC_MESSAGES/prompts.po
+++ b/priv/gettext/en/LC_MESSAGES/prompts.po
@@ -86,7 +86,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:193
+#: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?"
msgstr ""
diff --git a/priv/gettext/errors.pot b/priv/gettext/errors.pot
index 33ff775..86ff065 100644
--- a/priv/gettext/errors.pot
+++ b/priv/gettext/errors.pot
@@ -170,7 +170,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery/ammo.ex:524
+#: lib/cannery/ammo.ex:535
msgid "Invalid multiplier"
msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/actions.po b/priv/gettext/es/LC_MESSAGES/actions.po
index 1479e29..05818ee 100644
--- a/priv/gettext/es/LC_MESSAGES/actions.po
+++ b/priv/gettext/es/LC_MESSAGES/actions.po
@@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:160
+#: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
diff --git a/priv/gettext/es/LC_MESSAGES/default.po b/priv/gettext/es/LC_MESSAGES/default.po
index b8926c0..4e7ed1f 100644
--- a/priv/gettext/es/LC_MESSAGES/default.po
+++ b/priv/gettext/es/LC_MESSAGES/default.po
@@ -376,7 +376,7 @@ msgid "Price paid"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:52
+#: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:"
msgstr ""
@@ -599,7 +599,7 @@ msgstr ""
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80
-#: lib/cannery_web/live/ammo_group_live/index.ex:217
+#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo"
msgstr ""
@@ -614,8 +614,8 @@ msgid "Shot log"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:53
-#: lib/cannery_web/live/ammo_group_live/index.ex:134
+#: lib/cannery_web/components/ammo_group_card.ex:60
+#: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118
@@ -680,12 +680,12 @@ msgid "New password"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage"
msgstr ""
@@ -940,7 +940,7 @@ msgid "Total # of ammo"
msgstr ""
#, elixir-autogen, elixir-format, fuzzy
-#: lib/cannery_web/components/ammo_group_card.ex:61
+#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr ""
@@ -950,3 +950,13 @@ msgstr ""
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/live/ammo_group_live/index.ex:101
+msgid "Used up on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/components/ammo_group_card.ex:52
+msgid "Used up on:"
+msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/errors.po b/priv/gettext/es/LC_MESSAGES/errors.po
index b6ba6f3..72ca8b8 100644
--- a/priv/gettext/es/LC_MESSAGES/errors.po
+++ b/priv/gettext/es/LC_MESSAGES/errors.po
@@ -186,7 +186,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery/ammo.ex:524
+#: lib/cannery/ammo.ex:535
msgid "Invalid multiplier"
msgstr ""
diff --git a/priv/gettext/es/LC_MESSAGES/prompts.po b/priv/gettext/es/LC_MESSAGES/prompts.po
index af0dd4a..80c2714 100644
--- a/priv/gettext/es/LC_MESSAGES/prompts.po
+++ b/priv/gettext/es/LC_MESSAGES/prompts.po
@@ -100,7 +100,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:193
+#: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?"
msgstr "Está seguro que desea eliminar esta munición?"
diff --git a/priv/gettext/fr/LC_MESSAGES/actions.po b/priv/gettext/fr/LC_MESSAGES/actions.po
index 14a77a0..e8bef04 100644
--- a/priv/gettext/fr/LC_MESSAGES/actions.po
+++ b/priv/gettext/fr/LC_MESSAGES/actions.po
@@ -169,7 +169,7 @@ msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer ?"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:160
+#: lib/cannery_web/live/ammo_group_live/index.ex:183
#: lib/cannery_web/live/ammo_group_live/show.html.heex:91
#: lib/cannery_web/live/range_live/index.html.heex:36
msgid "Record shots"
diff --git a/priv/gettext/fr/LC_MESSAGES/default.po b/priv/gettext/fr/LC_MESSAGES/default.po
index e9c2713..78b9dfd 100644
--- a/priv/gettext/fr/LC_MESSAGES/default.po
+++ b/priv/gettext/fr/LC_MESSAGES/default.po
@@ -376,7 +376,7 @@ msgid "Price paid"
msgstr "Prix payé"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:52
+#: lib/cannery_web/components/ammo_group_card.ex:59
msgid "Price paid:"
msgstr "Prix payé :"
@@ -603,7 +603,7 @@ msgstr "Déplacer le groupe de munition"
#, elixir-autogen, elixir-format
#: lib/cannery_web/components/move_ammo_group_component.ex:80
-#: lib/cannery_web/live/ammo_group_live/index.ex:217
+#: lib/cannery_web/live/ammo_group_live/index.ex:240
msgid "Move ammo"
msgstr "Déplacer munition"
@@ -618,8 +618,8 @@ msgid "Shot log"
msgstr "Évènements de tir"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/components/ammo_group_card.ex:53
-#: lib/cannery_web/live/ammo_group_live/index.ex:134
+#: lib/cannery_web/components/ammo_group_card.ex:60
+#: lib/cannery_web/live/ammo_group_live/index.ex:142
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37
#: lib/cannery_web/live/ammo_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118
@@ -684,12 +684,12 @@ msgid "New password"
msgstr "Nouveau mot de passe"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Stage"
msgstr "Sélectionné"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:157
+#: lib/cannery_web/live/ammo_group_live/index.ex:180
msgid "Unstage"
msgstr "Désélectionner"
@@ -944,7 +944,7 @@ msgid "Total # of ammo"
msgstr "Quantité de cartouches"
#, elixir-autogen, elixir-format, fuzzy
-#: lib/cannery_web/components/ammo_group_card.ex:61
+#: lib/cannery_web/components/ammo_group_card.ex:68
msgid "Container:"
msgstr "Conteneur"
@@ -954,3 +954,13 @@ msgstr "Conteneur"
#: lib/cannery_web/live/container_live/show.html.heex:90
msgid "Show used"
msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/live/ammo_group_live/index.ex:101
+msgid "Used up on"
+msgstr ""
+
+#, elixir-autogen, elixir-format
+#: lib/cannery_web/components/ammo_group_card.ex:52
+msgid "Used up on:"
+msgstr ""
diff --git a/priv/gettext/fr/LC_MESSAGES/errors.po b/priv/gettext/fr/LC_MESSAGES/errors.po
index 7106c37..6cf37cb 100644
--- a/priv/gettext/fr/LC_MESSAGES/errors.po
+++ b/priv/gettext/fr/LC_MESSAGES/errors.po
@@ -187,7 +187,7 @@ msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}
msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#, elixir-autogen, elixir-format
-#: lib/cannery/ammo.ex:524
+#: lib/cannery/ammo.ex:535
msgid "Invalid multiplier"
msgstr ""
diff --git a/priv/gettext/fr/LC_MESSAGES/prompts.po b/priv/gettext/fr/LC_MESSAGES/prompts.po
index c40a5cb..6fa4bca 100644
--- a/priv/gettext/fr/LC_MESSAGES/prompts.po
+++ b/priv/gettext/fr/LC_MESSAGES/prompts.po
@@ -101,7 +101,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer l’invitation pour %{name} ?"
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:193
+#: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?"
msgstr "Êtes-vous certain·e de supprimer cette munition ?"
diff --git a/priv/gettext/prompts.pot b/priv/gettext/prompts.pot
index e2e9c64..0cbea26 100644
--- a/priv/gettext/prompts.pot
+++ b/priv/gettext/prompts.pot
@@ -85,7 +85,7 @@ msgid "Are you sure you want to delete the invite for %{name}?"
msgstr ""
#, elixir-autogen, elixir-format
-#: lib/cannery_web/live/ammo_group_live/index.ex:193
+#: lib/cannery_web/live/ammo_group_live/index.ex:216
#: lib/cannery_web/live/ammo_group_live/show.html.heex:71
msgid "Are you sure you want to delete this ammo?"
msgstr ""