Compare commits

..

10 Commits

Author SHA1 Message Date
35b20d1a02 add button to set shot group to zero
All checks were successful
continuous-integration/drone/push Build is passing
2022-11-10 22:01:32 -05:00
5e4d4d88e7 fix moving ammo between containers 2022-11-10 21:45:50 -05:00
0dbd1af553 use better wording 2022-11-10 21:25:03 -05:00
c828def2b2 add historical round and ammo pack data to ammo type index 2022-11-10 20:42:56 -05:00
7ef582510e improve ammo context 2022-11-10 20:26:11 -05:00
726ede7e46 don't run regular mix format in mix test 2022-11-10 19:27:31 -05:00
8fa75e2559 add cloning to ammo type index 2022-11-10 19:26:14 -05:00
0d6f6de7df add cloning to containers index 2022-11-10 19:26:13 -05:00
76d3554b4b add container index table 2022-11-10 19:25:14 -05:00
09394ea408 add cloning to ammo group index 2022-11-10 19:10:47 -05:00
49 changed files with 1942 additions and 624 deletions

View File

@ -7,11 +7,16 @@
- Make ammo type show page a bit more compact - Make ammo type show page a bit more compact
- Make ammo type show page include container names for each ammo - Make ammo type show page include container names for each ammo
- Make ammo type show page filter used-up ammo - Make ammo type show page filter used-up ammo
- Make container index page optionally display a table
- Make container show page a bit more compact - Make container show page a bit more compact
- Make container show page filter used-up ammo - Make container show page filter used-up ammo
- Forgot to add the logo as the favicon whoops - Forgot to add the logo as the favicon whoops
- Add graph to range page - Add graph to range page
- Add JSON export of data - Add JSON export of data
- Add ammo cloning
- Add ammo type cloning
- Add container cloning
- Add button to set rounds left to 0 when creating a shot group
- Update project dependencies - Update project dependencies
# v0.5.4 # v0.5.4

View File

@ -67,3 +67,8 @@ window.addEventListener('cannery:clipcopy', (event) => {
window.alert('Sorry, your browser does not support clipboard copy.') window.alert('Sorry, your browser does not support clipboard copy.')
} }
}) })
// Set input value to 0
window.addEventListener('cannery:set-zero', (event) => {
event.target.value = 0
})

View File

@ -101,7 +101,7 @@ defmodule Cannery.Ammo do
## Examples ## Examples
iex> get_round_count_for_ammo_type(123, %User{id: 123}) iex> get_round_count_for_ammo_type(123, %User{id: 123})
%AmmoType{} 35
iex> get_round_count_for_ammo_type(456, %User{id: 123}) iex> get_round_count_for_ammo_type(456, %User{id: 123})
** (Ecto.NoResultsError) ** (Ecto.NoResultsError)
@ -127,7 +127,7 @@ defmodule Cannery.Ammo do
## Examples ## Examples
iex> get_used_count_for_ammo_type(123, %User{id: 123}) iex> get_used_count_for_ammo_type(123, %User{id: 123})
%AmmoType{} 35
iex> get_used_count_for_ammo_type(456, %User{id: 123}) iex> get_used_count_for_ammo_type(456, %User{id: 123})
** (Ecto.NoResultsError) ** (Ecto.NoResultsError)
@ -146,6 +146,29 @@ defmodule Cannery.Ammo do
) || 0 ) || 0
end end
@doc """
Gets the total number of ammo ever bought for an ammo type
Raises `Ecto.NoResultsError` if the Ammo type does not exist.
## Examples
iex> get_historical_count_for_ammo_type(123, %User{id: 123})
%AmmoType{}
iex> get_historical_count_for_ammo_type(456, %User{id: 123})
** (Ecto.NoResultsError)
"""
@spec get_historical_count_for_ammo_type(AmmoType.t(), User.t()) :: non_neg_integer()
def get_historical_count_for_ammo_type(
%AmmoType{user_id: user_id} = ammo_type,
%User{id: user_id} = user
) do
get_round_count_for_ammo_type(ammo_type, user) +
get_used_count_for_ammo_type(ammo_type, user)
end
@doc """ @doc """
Creates a ammo_type. Creates a ammo_type.
@ -305,9 +328,12 @@ defmodule Cannery.Ammo do
## Examples ## Examples
iex> get_ammo_groups_count_for_type(%User{id: 123}) iex> get_ammo_groups_count_for_type(%AmmoType{id: 123}, %User{id: 123})
3 3
iex> get_ammo_groups_count_for_type(%AmmoType{id: 123}, %User{id: 123}, true)
5
""" """
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()] @spec get_ammo_groups_count_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
@spec get_ammo_groups_count_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) :: @spec get_ammo_groups_count_for_type(AmmoType.t(), User.t(), include_empty :: boolean()) ::
@ -343,6 +369,30 @@ defmodule Cannery.Ammo do
) || 0 ) || 0
end end
@doc """
Returns the count of used ammo_groups for an ammo type.
## Examples
iex> get_used_ammo_groups_count_for_type(%AmmoType{id: 123}, %User{id: 123})
3
"""
@spec get_used_ammo_groups_count_for_type(AmmoType.t(), User.t()) :: [AmmoGroup.t()]
def get_used_ammo_groups_count_for_type(
%AmmoType{id: ammo_type_id, user_id: user_id},
%User{id: user_id}
) do
Repo.one!(
from ag in AmmoGroup,
where: ag.user_id == ^user_id,
where: ag.ammo_type_id == ^ammo_type_id,
where: ag.count == 0,
distinct: true,
select: count(ag.id)
) || 0
end
@doc """ @doc """
Returns the list of ammo_groups for a user. Returns the list of ammo_groups for a user.
@ -456,7 +506,9 @@ defmodule Cannery.Ammo do
ammo_group = ammo_group |> Repo.preload(:shot_groups) ammo_group = ammo_group |> Repo.preload(:shot_groups)
shot_group_sum = shot_group_sum =
ammo_group.shot_groups |> Enum.map(fn %{count: count} -> count end) |> Enum.sum() ammo_group.shot_groups
|> Enum.map(fn %{count: count} -> count end)
|> Enum.sum()
round(count / (count + shot_group_sum) * 100) round(count / (count + shot_group_sum) * 100)
end end
@ -555,8 +607,12 @@ defmodule Cannery.Ammo do
""" """
@spec update_ammo_group(AmmoGroup.t(), attrs :: map(), User.t()) :: @spec update_ammo_group(AmmoGroup.t(), attrs :: map(), User.t()) ::
{:ok, AmmoGroup.t()} | {:error, Changeset.t(AmmoGroup.t())} {:ok, AmmoGroup.t()} | {:error, Changeset.t(AmmoGroup.t())}
def update_ammo_group(%AmmoGroup{user_id: user_id} = ammo_group, attrs, %User{id: user_id}), def update_ammo_group(
do: ammo_group |> AmmoGroup.update_changeset(attrs) |> Repo.update() %AmmoGroup{user_id: user_id} = ammo_group,
attrs,
%User{id: user_id} = user
),
do: ammo_group |> AmmoGroup.update_changeset(attrs, user) |> Repo.update()
@doc """ @doc """
Deletes a ammo_group. Deletes a ammo_group.

View File

@ -10,7 +10,7 @@ defmodule Cannery.Ammo.AmmoGroup do
import CanneryWeb.Gettext import CanneryWeb.Gettext
import Ecto.Changeset import Ecto.Changeset
alias Cannery.Ammo.{AmmoGroup, AmmoType} alias Cannery.Ammo.{AmmoGroup, AmmoType}
alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Containers.Container} alias Cannery.{Accounts.User, ActivityLog.ShotGroup, Containers, Containers.Container}
alias Ecto.{Changeset, UUID} alias Ecto.{Changeset, UUID}
@derive {Jason.Encoder, @derive {Jason.Encoder,
@ -95,13 +95,24 @@ defmodule Cannery.Ammo.AmmoGroup do
end end
@doc false @doc false
@spec update_changeset(t() | new_ammo_group(), attrs :: map()) :: @spec update_changeset(t() | new_ammo_group(), attrs :: map(), User.t()) ::
Changeset.t(t() | new_ammo_group()) Changeset.t(t() | new_ammo_group())
def update_changeset(ammo_group, attrs) do def update_changeset(ammo_group, attrs, user) do
ammo_group ammo_group
|> cast(attrs, [:count, :price_paid, :notes, :staged]) |> cast(attrs, [:count, :price_paid, :notes, :staged, :container_id])
|> validate_number(:count, greater_than_or_equal_to: 0) |> validate_number(:count, greater_than_or_equal_to: 0)
|> validate_required([:count, :staged]) |> validate_container_id(user)
|> validate_required([:count, :staged, :container_id])
end
defp validate_container_id(changeset, user) do
container_id = changeset |> Changeset.get_field(:container_id)
if container_id do
Containers.get_container!(container_id, user)
end
changeset
end end
@doc """ @doc """

View File

@ -5,7 +5,7 @@ defmodule CanneryWeb.Components.AddShotGroupComponent do
use CanneryWeb, :live_component use CanneryWeb, :live_component
alias Cannery.{Accounts.User, ActivityLog, ActivityLog.ShotGroup, Ammo.AmmoGroup} alias Cannery.{Accounts.User, ActivityLog, ActivityLog.ShotGroup, Ammo.AmmoGroup}
alias Phoenix.LiveView.Socket alias Phoenix.LiveView.{JS, Socket}
@impl true @impl true
@spec update( @spec update(

View File

@ -22,9 +22,16 @@
<%= number_input(f, :ammo_left, <%= number_input(f, :ammo_left,
min: 0, min: 0,
max: @ammo_group.count - 1, max: @ammo_group.count - 1,
placeholder: 0, placeholder: gettext("Rounds left"),
class: "input input-primary col-span-2" class: "input input-primary"
) %> ) %>
<button
type="button"
class="mx-2 my-1 text-sm btn btn-primary"
phx-click={JS.dispatch("cannery:set-zero", to: "#shot-group-form_ammo_left")}
>
<%= gettext("Used up!") %>
</button>
<%= error_tag(f, :ammo_left, "col-span-3") %> <%= error_tag(f, :ammo_left, "col-span-3") %>
<%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %> <%= label(f, :notes, gettext("Notes"), class: "title text-lg text-primary-600") %>

View File

@ -22,7 +22,7 @@ defmodule CanneryWeb.Components.MoveAmmoGroupComponent do
assigns, assigns,
socket socket
) do ) do
changeset = ammo_group |> AmmoGroup.update_changeset(%{}) changeset = ammo_group |> AmmoGroup.update_changeset(%{}, current_user)
containers = containers =
Containers.list_containers(current_user) Containers.list_containers(current_user)

View File

@ -47,7 +47,7 @@ defmodule CanneryWeb.Components.TableComponent do
if assigns |> Map.has_key?(:initial_key) do if assigns |> Map.has_key?(:initial_key) do
assigns.initial_key assigns.initial_key
else else
columns |> List.first() |> Map.get(:key) columns |> List.first(%{}) |> Map.get(:key)
end end
initial_sort_mode = initial_sort_mode =

View File

@ -73,14 +73,14 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
ammo_group_params ammo_group_params
) do ) do
changeset_action = changeset_action =
case action do cond do
:new -> :insert action in [:new, :clone] -> :insert
:edit -> :update action == :edit -> :update
end end
changeset = changeset =
case action do cond do
:new -> action in [:new, :clone] ->
ammo_type = ammo_type =
if ammo_group_params |> Map.has_key?("ammo_type_id"), if ammo_group_params |> Map.has_key?("ammo_type_id"),
do: ammo_group_params |> Map.get("ammo_type_id") |> Ammo.get_ammo_type!(user), do: ammo_group_params |> Map.get("ammo_type_id") |> Ammo.get_ammo_type!(user),
@ -93,8 +93,8 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
ammo_group |> AmmoGroup.create_changeset(ammo_type, container, user, ammo_group_params) ammo_group |> AmmoGroup.create_changeset(ammo_type, container, user, ammo_group_params)
:edit -> action == :edit ->
ammo_group |> AmmoGroup.update_changeset(ammo_group_params) ammo_group |> AmmoGroup.update_changeset(ammo_group_params, user)
end end
changeset = changeset =
@ -127,9 +127,10 @@ defmodule CanneryWeb.AmmoGroupLive.FormComponent do
defp save_ammo_group( defp save_ammo_group(
%{assigns: %{changeset: changeset}} = socket, %{assigns: %{changeset: changeset}} = socket,
:new, action,
%{"multiplier" => multiplier_str} = ammo_group_params %{"multiplier" => multiplier_str} = ammo_group_params
) do )
when action in [:new, :clone] do
socket = socket =
case multiplier_str |> Integer.parse() do case multiplier_str |> Integer.parse() do
{multiplier, _remainder} {multiplier, _remainder}

View File

@ -51,8 +51,8 @@
) %> ) %>
<%= error_tag(f, :container_id, "col-span-3 text-center") %> <%= error_tag(f, :container_id, "col-span-3 text-center") %>
<%= case @action do %> <%= cond do %>
<% :new -> %> <% @action in [:new, :clone] -> %>
<hr class="hr col-span-3" /> <hr class="hr col-span-3" />
<%= label(f, :multiplier, gettext("Copies"), class: "title text-lg text-primary-600") %> <%= label(f, :multiplier, gettext("Copies"), class: "title text-lg text-primary-600") %>
@ -69,7 +69,7 @@
) %> ) %>
<%= error_tag(f, :multiplier, "col-span-3 text-center") %> <%= error_tag(f, :multiplier, "col-span-3 text-center") %>
<% :edit -> %> <% @action == :edit -> %>
<%= submit(dgettext("actions", "Save"), <%= submit(dgettext("actions", "Save"),
phx_disable_with: dgettext("prompts", "Saving..."), phx_disable_with: dgettext("prompts", "Saving..."),
class: "mx-auto col-span-3 btn btn-primary" class: "mx-auto col-span-3 btn btn-primary"

View File

@ -9,12 +9,12 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
@impl true @impl true
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, socket |> assign(show_used: false) |> display_ammo_groups()} {:ok, socket |> assign(show_used: false)}
end end
@impl true @impl true
def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do
{:noreply, apply_action(socket, live_action, params)} {:noreply, apply_action(socket, live_action, params) |> display_ammo_groups()}
end end
defp apply_action( defp apply_action(
@ -39,6 +39,12 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
|> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user)) |> assign(:ammo_group, Ammo.get_ammo_group!(id, current_user))
end end
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :clone, %{"id" => id}) do
socket
|> assign(:page_title, dgettext("actions", "Add Ammo"))
|> assign(:ammo_group, %{Ammo.get_ammo_group!(id, current_user) | id: nil})
end
defp apply_action(socket, :new, _params) do defp apply_action(socket, :new, _params) do
socket socket
|> assign(:page_title, dgettext("actions", "Add Ammo")) |> assign(:page_title, dgettext("actions", "Add Ammo"))
@ -46,7 +52,9 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
end end
defp apply_action(socket, :index, _params) do defp apply_action(socket, :index, _params) do
socket |> assign(:page_title, gettext("Ammo groups")) |> assign(:ammo_group, nil) socket
|> assign(:page_title, gettext("Ammo groups"))
|> assign(:ammo_group, nil)
end end
@impl true @impl true
@ -81,7 +89,8 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
%{assigns: %{current_user: current_user, show_used: show_used}} = socket %{assigns: %{current_user: current_user, show_used: show_used}} = socket
) do ) do
ammo_groups = ammo_groups =
Ammo.list_ammo_groups(current_user, show_used) |> Repo.preload([:ammo_type, :container]) Ammo.list_ammo_groups(current_user, show_used)
|> Repo.preload([:ammo_type, :container], force: true)
ammo_types_count = Ammo.get_ammo_types_count!(current_user) ammo_types_count = Ammo.get_ammo_types_count!(current_user)
containers_count = Containers.get_containers_count!(current_user) containers_count = Containers.get_containers_count!(current_user)
@ -217,6 +226,14 @@ defmodule CanneryWeb.AmmoGroupLive.Index do
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
<.link
patch={Routes.ammo_group_index_path(Endpoint, :clone, @ammo_group)}
class="text-primary-600 link"
data-qa={"clone-#{@ammo_group.id}"}
>
<i class="fa-fw fa-lg fas fa-copy"></i>
</.link>
<.link <.link
href="#" href="#"
class="text-primary-600 link" class="text-primary-600 link"

View File

@ -61,7 +61,7 @@
</div> </div>
<%= cond do %> <%= cond do %>
<% @live_action in [:new, :edit] -> %> <% @live_action in [:new, :edit, :clone] -> %>
<.modal return_to={Routes.ammo_group_index_path(Endpoint, :index)}> <.modal return_to={Routes.ammo_group_index_path(Endpoint, :index)}>
<.live_component <.live_component
module={CanneryWeb.AmmoGroupLive.FormComponent} module={CanneryWeb.AmmoGroupLive.FormComponent}

View File

@ -35,15 +35,15 @@ defmodule CanneryWeb.AmmoTypeLive.FormComponent do
ammo_type_params ammo_type_params
) do ) do
changeset_action = changeset_action =
case action do cond do
:new -> :insert action in [:new, :clone] -> :insert
:edit -> :update action == :edit -> :update
end end
changeset = changeset =
case action do cond do
:new -> ammo_type |> AmmoType.create_changeset(user, ammo_type_params) action in [:new, :clone] -> ammo_type |> AmmoType.create_changeset(user, ammo_type_params)
:edit -> ammo_type |> AmmoType.update_changeset(ammo_type_params) action == :edit -> ammo_type |> AmmoType.update_changeset(ammo_type_params)
end end
changeset = changeset =
@ -76,9 +76,10 @@ defmodule CanneryWeb.AmmoTypeLive.FormComponent do
defp save_ammo_type( defp save_ammo_type(
%{assigns: %{current_user: current_user, return_to: return_to}} = socket, %{assigns: %{current_user: current_user, return_to: return_to}} = socket,
:new, action,
ammo_type_params ammo_type_params
) do )
when action in [:new, :clone] do
socket = socket =
case Ammo.create_ammo_type(ammo_type_params, current_user) do case Ammo.create_ammo_type(ammo_type_params, current_user) do
{:ok, %{name: ammo_type_name}} -> {:ok, %{name: ammo_type_name}} ->

View File

@ -10,7 +10,7 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
@impl true @impl true
def mount(_params, _session, socket) do def mount(_params, _session, socket) do
{:ok, socket |> list_ammo_types()} {:ok, socket |> assign(:show_used, false) |> list_ammo_types()}
end end
@impl true @impl true
@ -24,6 +24,12 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
|> assign(:ammo_type, Ammo.get_ammo_type!(id, current_user)) |> assign(:ammo_type, Ammo.get_ammo_type!(id, current_user))
end end
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :clone, %{"id" => id}) do
socket
|> assign(:page_title, gettext("New Ammo type"))
|> assign(:ammo_type, %{Ammo.get_ammo_type!(id, current_user) | id: nil})
end
defp apply_action(socket, :new, _params) do defp apply_action(socket, :new, _params) do
socket socket
|> assign(:page_title, gettext("New Ammo type")) |> assign(:page_title, gettext("New Ammo type"))
@ -43,7 +49,12 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
{:noreply, socket |> put_flash(:info, prompt) |> list_ammo_types()} {:noreply, socket |> put_flash(:info, prompt) |> list_ammo_types()}
end end
defp list_ammo_types(%{assigns: %{current_user: current_user}} = socket) do @impl true
def handle_event("toggle_show_used", _params, %{assigns: %{show_used: show_used}} = socket) do
{:noreply, socket |> assign(:show_used, !show_used) |> list_ammo_types()}
end
defp list_ammo_types(%{assigns: %{current_user: current_user, show_used: show_used}} = socket) do
ammo_types = Ammo.list_ammo_types(current_user) ammo_types = Ammo.list_ammo_types(current_user)
columns = columns =
@ -83,8 +94,46 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
end) end)
end) end)
|> Kernel.++([ |> Kernel.++([
%{label: gettext("Total # of rounds"), key: :round_count, type: :round_count}, %{label: gettext("Rounds"), key: :round_count, type: :round_count}
%{label: gettext("Total # of ammo"), key: :ammo_count, type: :ammo_count}, ])
|> Kernel.++(
if show_used do
[
%{
label: gettext("Used rounds"),
key: :used_round_count,
type: :used_round_count
},
%{
label: gettext("Total ever rounds"),
key: :historical_round_count,
type: :historical_round_count
}
]
else
[]
end
)
|> Kernel.++([%{label: gettext("Packs"), key: :ammo_count, type: :ammo_count}])
|> Kernel.++(
if show_used do
[
%{
label: gettext("Used packs"),
key: :used_ammo_count,
type: :used_ammo_count
},
%{
label: gettext("Total ever packs"),
key: :historical_ammo_count,
type: :historical_ammo_count
}
]
else
[]
end
)
|> Kernel.++([
%{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid}, %{label: gettext("Average Price paid"), key: :avg_price_paid, type: :avg_price_paid},
%{label: nil, key: "actions", type: :actions, sortable: false} %{label: nil, key: "actions", type: :actions, sortable: false}
]) ])
@ -109,6 +158,18 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
defp get_ammo_type_value(:round_count, _key, ammo_type, current_user), defp get_ammo_type_value(:round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user) do: ammo_type |> Ammo.get_round_count_for_ammo_type(current_user)
defp get_ammo_type_value(:historical_round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_historical_count_for_ammo_type(current_user)
defp get_ammo_type_value(:used_round_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_used_count_for_ammo_type(current_user)
defp get_ammo_type_value(:historical_ammo_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user, true)
defp get_ammo_type_value(:used_ammo_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_used_ammo_groups_count_for_type(current_user)
defp get_ammo_type_value(:ammo_count, _key, ammo_type, current_user), defp get_ammo_type_value(:ammo_count, _key, ammo_type, current_user),
do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user) do: ammo_type |> Ammo.get_ammo_groups_count_for_type(current_user)
@ -154,6 +215,14 @@ defmodule CanneryWeb.AmmoTypeLive.Index do
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-edit"></i>
</.link> </.link>
<.link
patch={Routes.ammo_type_index_path(Endpoint, :clone, @ammo_type)}
class="text-primary-600 link"
data-qa={"clone-#{@ammo_type.id}"}
>
<i class="fa-fw fa-lg fas fa-copy"></i>
</.link>
<.link <.link
href="#" href="#"
class="text-primary-600 link" class="text-primary-600 link"

View File

@ -17,6 +17,14 @@
<%= dgettext("actions", "New Ammo type") %> <%= dgettext("actions", "New Ammo type") %>
</.link> </.link>
<div class="flex flex-col justify-center items-center">
<.toggle_button action="toggle_show_used" value={@show_used}>
<span class="title text-lg text-primary-600">
<%= gettext("Show used") %>
</span>
</.toggle_button>
</div>
<.live_component <.live_component
module={CanneryWeb.Components.TableComponent} module={CanneryWeb.Components.TableComponent}
id="ammo_types_index_table" id="ammo_types_index_table"
@ -27,7 +35,7 @@
<% end %> <% end %>
</div> </div>
<%= if @live_action in [:new, :edit] do %> <%= if @live_action in [:new, :edit, :clone] do %>
<.modal return_to={Routes.ammo_type_index_path(Endpoint, :index)}> <.modal return_to={Routes.ammo_type_index_path(Endpoint, :index)}>
<.live_component <.live_component
module={CanneryWeb.AmmoTypeLive.FormComponent} module={CanneryWeb.AmmoTypeLive.FormComponent}

View File

@ -78,7 +78,7 @@
<% end %> <% end %>
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Current # of rounds:") %> <%= gettext("Rounds:") %>
</h3> </h3>
<span class="text-primary-600"> <span class="text-primary-600">
@ -86,13 +86,45 @@
</span> </span>
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Total rounds shot:") %> <%= gettext("Used rounds:") %>
</h3> </h3>
<span class="text-primary-600"> <span class="text-primary-600">
<%= @ammo_type |> Ammo.get_used_count_for_ammo_type(@current_user) %> <%= @ammo_type |> Ammo.get_used_count_for_ammo_type(@current_user) %>
</span> </span>
<h3 class="title text-lg">
<%= gettext("Total ever rounds:") %>
</h3>
<span class="text-primary-600">
<%= @ammo_type |> Ammo.get_historical_count_for_ammo_type(@current_user) %>
</span>
<h3 class="title text-lg">
<%= gettext("Packs:") %>
</h3>
<span class="text-primary-600">
<%= @ammo_type |> Ammo.get_ammo_groups_count_for_type(@current_user) %>
</span>
<h3 class="title text-lg">
<%= gettext("Used packs:") %>
</h3>
<span class="text-primary-600">
<%= @ammo_type |> Ammo.get_used_ammo_groups_count_for_type(@current_user) %>
</span>
<h3 class="title text-lg">
<%= gettext("Total ever packs:") %>
</h3>
<span class="text-primary-600">
<%= @ammo_type |> Ammo.get_ammo_groups_count_for_type(@current_user, true) %>
</span>
<h3 class="title text-lg"> <h3 class="title text-lg">
<%= gettext("Added on:") %> <%= gettext("Added on:") %>
</h3> </h3>

View File

@ -35,15 +35,18 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
container_params container_params
) do ) do
changeset_action = changeset_action =
case action do cond do
:new -> :insert action in [:new, :clone] -> :insert
:edit -> :update action == :edit -> :update
end end
changeset = changeset =
case action do cond do
:new -> container |> Container.create_changeset(user, container_params) action in [:new, :clone] ->
:edit -> container |> Container.update_changeset(container_params) container |> Container.create_changeset(user, container_params)
action == :edit ->
container |> Container.update_changeset(container_params)
end end
changeset = changeset =
@ -76,9 +79,10 @@ defmodule CanneryWeb.ContainerLive.FormComponent do
defp save_container( defp save_container(
%{assigns: %{current_user: current_user, return_to: return_to}} = socket, %{assigns: %{current_user: current_user, return_to: return_to}} = socket,
:new, action,
container_params container_params
) do )
when action in [:new, :clone] do
socket = socket =
case Containers.create_container(container_params, current_user) do case Containers.create_container(container_params, current_user) do
{:ok, %{name: container_name}} -> {:ok, %{name: container_name}} ->

View File

@ -6,11 +6,11 @@ defmodule CanneryWeb.ContainerLive.Index do
use CanneryWeb, :live_view use CanneryWeb, :live_view
import CanneryWeb.Components.ContainerCard import CanneryWeb.Components.ContainerCard
alias Cannery.{Containers, Containers.Container, Repo} alias Cannery.{Containers, Containers.Container, Repo}
alias CanneryWeb.Endpoint alias CanneryWeb.{Components.TagCard, Endpoint}
alias Ecto.Changeset alias Ecto.Changeset
@impl true @impl true
def mount(_params, _session, socket), do: {:ok, socket} def mount(_params, _session, socket), do: {:ok, socket |> assign(view_table: false)}
@impl true @impl true
def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do def handle_params(params, _url, %{assigns: %{live_action: live_action}} = socket) do
@ -31,10 +31,29 @@ defmodule CanneryWeb.ContainerLive.Index do
socket |> assign(:page_title, gettext("New Container")) |> assign(:container, %Container{}) socket |> assign(:page_title, gettext("New Container")) |> assign(:container, %Container{})
end end
defp apply_action(%{assigns: %{current_user: current_user}} = socket, :clone, %{"id" => id}) do
container = Containers.get_container!(id, current_user)
socket
|> assign(page_title: gettext("New Container"), container: %{container | id: nil})
end
defp apply_action(socket, :index, _params) do defp apply_action(socket, :index, _params) do
socket socket
|> assign(:page_title, gettext("Containers")) |> assign(
|> assign(:container, nil) page_title: gettext("Containers"),
container: nil
)
|> display_containers()
end
defp apply_action(socket, :table, _params) do
socket
|> assign(
page_title: gettext("Containers"),
container: nil,
view_table: true
)
|> display_containers() |> display_containers()
end end
@ -83,10 +102,135 @@ defmodule CanneryWeb.ContainerLive.Index do
{:noreply, socket} {:noreply, socket}
end end
@impl true
def handle_event("toggle_table", _params, %{assigns: %{view_table: view_table}} = socket) do
new_path =
if view_table,
do: Routes.container_index_path(Endpoint, :index),
else: Routes.container_index_path(Endpoint, :table)
{:noreply, socket |> assign(view_table: !view_table) |> push_patch(to: new_path)}
end
defp display_containers(%{assigns: %{current_user: current_user}} = socket) do defp display_containers(%{assigns: %{current_user: current_user}} = socket) do
containers = containers =
Containers.list_containers(current_user) |> Repo.preload([:tags, :ammo_groups], force: true) Containers.list_containers(current_user) |> Repo.preload([:tags, :ammo_groups], force: true)
socket |> assign(containers: containers) columns =
[
%{label: gettext("Name"), key: :name, type: :string},
%{label: gettext("Description"), key: :desc, type: :string},
%{label: gettext("Location"), key: :location, type: :string},
%{label: gettext("Type"), key: :type, type: :string},
%{label: gettext("Packs"), key: :packs, type: :integer},
%{label: gettext("Rounds"), key: :rounds, type: :string},
%{label: gettext("Tags"), key: :tags, type: :tags},
%{label: nil, key: :actions, sortable: false, type: :actions}
]
|> Enum.filter(fn %{key: key, type: type} ->
# remove columns if all values match defaults
default_value =
case type do
:boolean -> false
_other_type -> nil
end
containers
|> Enum.any?(fn container ->
type in [:tags, :actions] or not (container |> Map.get(key) == default_value)
end)
end)
rows =
containers
|> Enum.map(fn container -> container |> get_row_data_for_container(columns) end)
socket
|> assign(
containers: containers,
columns: columns,
rows: rows
)
end end
@spec get_row_data_for_container(Container.t(), [map()]) :: [map()]
defp get_row_data_for_container(container, columns) do
container = container |> Repo.preload([:ammo_groups, :tags])
columns
|> Enum.into(%{}, fn %{key: key} -> {key, get_value_for_key(key, container)} end)
end
@spec get_value_for_key(atom(), Container.t()) :: any()
defp get_value_for_key(:packs, container) do
container |> Containers.get_container_ammo_group_count!()
end
defp get_value_for_key(:rounds, container) do
container |> Containers.get_container_rounds!()
end
defp get_value_for_key(:tags, container) do
assigns = %{container: container}
{container.tags |> Enum.map(fn %{name: name} -> name end),
~H"""
<div class="flex flex-wrap justify-center items-center">
<%= unless @container.tags |> Enum.empty?() do %>
<%= for tag <- @container.tags do %>
<TagCard.simple_tag_card tag={tag} />
<% end %>
<% end %>
<div class="mx-4 my-2">
<.link
patch={Routes.container_index_path(Endpoint, :edit_tags, @container)}
class="text-primary-600 link"
>
<i class="fa-fw fa-lg fas fa-tags"></i>
</.link>
</div>
</div>
"""}
end
defp get_value_for_key(:actions, container) do
assigns = %{container: container}
~H"""
<.link
patch={Routes.container_index_path(Endpoint, :edit, @container)}
class="text-primary-600 link"
data-qa={"edit-#{@container.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link
patch={Routes.container_index_path(Endpoint, :clone, @container)}
class="text-primary-600 link"
data-qa={"clone-#{@container.id}"}
>
<i class="fa-fw fa-lg fas fa-copy"></i>
</.link>
<.link
href="#"
class="text-primary-600 link"
phx-click="delete"
phx-value-id={@container.id}
data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: @container.name)
}
data-qa={"delete-#{@container.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
"""
end
defp get_value_for_key(key, container), do: container |> Map.get(key)
def return_to(true = _view_table), do: Routes.container_index_path(Endpoint, :table)
def return_to(false = _view_table), do: Routes.container_index_path(Endpoint, :index)
end end

View File

@ -16,62 +16,88 @@
<.link patch={Routes.container_index_path(Endpoint, :new)} class="btn btn-primary"> <.link patch={Routes.container_index_path(Endpoint, :new)} class="btn btn-primary">
<%= dgettext("actions", "New Container") %> <%= dgettext("actions", "New Container") %>
</.link> </.link>
<div class="flex flex-col justify-center items-center">
<.toggle_button action="toggle_table" value={@view_table}>
<span class="title text-lg text-primary-600">
<%= gettext("View as table") %>
</span>
</.toggle_button>
</div>
<% end %> <% end %>
<div class="max-w-full flex flex-row flex-wrap justify-center items-center"> <div class="max-w-full flex flex-row flex-wrap justify-center items-center">
<%= for container <- @containers do %> <%= if @view_table do %>
<.container_card container={container}> <.live_component
<:tag_actions> module={CanneryWeb.Components.TableComponent}
<div class="mx-4 my-2"> id="containers_index_table"
<.link action={@live_action}
patch={Routes.container_index_path(Endpoint, :edit_tags, container)} columns={@columns}
class="text-primary-600 link" rows={@rows}
> />
<i class="fa-fw fa-lg fas fa-tags"></i> <% else %>
</.link> <%= for container <- @containers do %>
</div> <.container_card container={container}>
</:tag_actions> <:tag_actions>
<.link <div class="mx-4 my-2">
patch={Routes.container_index_path(Endpoint, :edit, container)} <.link
class="text-primary-600 link" patch={Routes.container_index_path(Endpoint, :edit_tags, container)}
data-qa={"edit-#{container.id}"} class="text-primary-600 link"
> >
<i class="fa-fw fa-lg fas fa-edit"></i> <i class="fa-fw fa-lg fas fa-tags"></i>
</.link> </.link>
</div>
</:tag_actions>
<.link
patch={Routes.container_index_path(Endpoint, :edit, container)}
class="text-primary-600 link"
data-qa={"edit-#{container.id}"}
>
<i class="fa-fw fa-lg fas fa-edit"></i>
</.link>
<.link <.link
href="#" patch={Routes.container_index_path(Endpoint, :clone, container)}
class="text-primary-600 link" class="text-primary-600 link"
phx-click="delete" data-qa={"clone-#{container.id}"}
phx-value-id={container.id} >
data-confirm={ <i class="fa-fw fa-lg fas fa-copy"></i>
dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name) </.link>
}
data-qa={"delete-#{container.id}"} <.link
> href="#"
<i class="fa-fw fa-lg fas fa-trash"></i> class="text-primary-600 link"
</.link> phx-click="delete"
</.container_card> phx-value-id={container.id}
data-confirm={
dgettext("prompts", "Are you sure you want to delete %{name}?", name: container.name)
}
data-qa={"delete-#{container.id}"}
>
<i class="fa-fw fa-lg fas fa-trash"></i>
</.link>
</.container_card>
<% end %>
<% end %> <% end %>
</div> </div>
</div> </div>
<%= if @live_action in [:new, :edit] do %> <%= if @live_action in [:new, :edit, :clone] do %>
<.modal return_to={Routes.container_index_path(Endpoint, :index)}> <.modal return_to={return_to(@view_table)}>
<.live_component <.live_component
module={CanneryWeb.ContainerLive.FormComponent} module={CanneryWeb.ContainerLive.FormComponent}
id={@container.id || :new} id={@container.id || :new}
title={@page_title} title={@page_title}
action={@live_action} action={@live_action}
container={@container} container={@container}
return_to={Routes.container_index_path(Endpoint, :index)} return_to={return_to(@view_table)}
current_user={@current_user} current_user={@current_user}
/> />
</.modal> </.modal>
<% end %> <% end %>
<%= if @live_action == :edit_tags do %> <%= if @live_action == :edit_tags do %>
<.modal return_to={Routes.container_index_path(Endpoint, :index)}> <.modal return_to={return_to(@view_table)}>
<.live_component <.live_component
module={CanneryWeb.ContainerLive.EditTagsComponent} module={CanneryWeb.ContainerLive.EditTagsComponent}
id={@container.id} id={@container.id}

View File

@ -68,14 +68,17 @@ defmodule CanneryWeb.Router do
live "/catalog", AmmoTypeLive.Index, :index live "/catalog", AmmoTypeLive.Index, :index
live "/catalog/new", AmmoTypeLive.Index, :new live "/catalog/new", AmmoTypeLive.Index, :new
live "/catalog/:id/clone", AmmoTypeLive.Index, :clone
live "/catalog/:id/edit", AmmoTypeLive.Index, :edit live "/catalog/:id/edit", AmmoTypeLive.Index, :edit
live "/catalog/:id", AmmoTypeLive.Show, :show live "/catalog/:id", AmmoTypeLive.Show, :show
live "/catalog/:id/show/edit", AmmoTypeLive.Show, :edit live "/catalog/:id/show/edit", AmmoTypeLive.Show, :edit
live "/containers", ContainerLive.Index, :index live "/containers", ContainerLive.Index, :index
live "/containers/table", ContainerLive.Index, :table
live "/containers/new", ContainerLive.Index, :new live "/containers/new", ContainerLive.Index, :new
live "/containers/:id/edit", ContainerLive.Index, :edit live "/containers/:id/edit", ContainerLive.Index, :edit
live "/containers/:id/clone", ContainerLive.Index, :clone
live "/containers/:id/edit_tags", ContainerLive.Index, :edit_tags live "/containers/:id/edit_tags", ContainerLive.Index, :edit_tags
live "/containers/:id", ContainerLive.Show, :show live "/containers/:id", ContainerLive.Show, :show
@ -85,6 +88,7 @@ defmodule CanneryWeb.Router do
live "/ammo", AmmoGroupLive.Index, :index live "/ammo", AmmoGroupLive.Index, :index
live "/ammo/new", AmmoGroupLive.Index, :new live "/ammo/new", AmmoGroupLive.Index, :new
live "/ammo/:id/edit", AmmoGroupLive.Index, :edit live "/ammo/:id/edit", AmmoGroupLive.Index, :edit
live "/ammo/:id/clone", AmmoGroupLive.Index, :clone
live "/ammo/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group live "/ammo/:id/add_shot_group", AmmoGroupLive.Index, :add_shot_group
live "/ammo/:id/move", AmmoGroupLive.Index, :move live "/ammo/:id/move", AmmoGroupLive.Index, :move

View File

@ -86,7 +86,7 @@ defmodule Cannery.MixProject do
setup: ["deps.get", "compile", "ecto.setup", "cmd npm install --prefix assets"], setup: ["deps.get", "compile", "ecto.setup", "cmd npm install --prefix assets"],
"ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"], "ecto.setup": ["ecto.create", "ecto.migrate", "run priv/repo/seeds.exs"],
"ecto.reset": ["ecto.drop", "ecto.setup"], "ecto.reset": ["ecto.drop", "ecto.setup"],
format: [ "format.all": [
"cmd npm run format --prefix assets", "cmd npm run format --prefix assets",
"format", "format",
"gettext.extract --merge", "gettext.extract --merge",

View File

@ -11,6 +11,7 @@ msgid ""
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -119,7 +120,7 @@ msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -155,7 +156,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -24,6 +24,7 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -132,7 +133,7 @@ msgstr "Bestätigungsmail erneut senden"
msgid "Reset password" msgid "Reset password"
msgstr "Passwort zurücksetzen" msgstr "Passwort zurücksetzen"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -168,7 +169,7 @@ msgstr "Munition markieren"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Warum nicht einige für den Schießstand auswählen?" msgstr "Warum nicht einige für den Schießstand auswählen?"
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -53,13 +53,13 @@ msgid "Ammo"
msgstr "Munition" msgstr "Munition"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "Munitionsarten" msgstr "Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "Durchschnittlicher Kaufpreis" msgstr "Durchschnittlicher Kaufpreis"
@ -70,7 +70,7 @@ msgid "Background color"
msgstr "Hintergrundfarbe" msgstr "Hintergrundfarbe"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -82,35 +82,35 @@ msgid "Brass"
msgstr "Messing" msgstr "Messing"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "Projektilkern" msgstr "Projektilkern"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "Patronenart" msgstr "Patronenart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "Kaliber" msgstr "Kaliber"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "Patrone" msgstr "Patrone"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -118,27 +118,28 @@ msgstr "Gehäusematerial"
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "Behälter" msgstr "Behälter"
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "Behälter" msgstr "Behälter"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "Korrosiv" msgstr "Korrosiv"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "Anzahl" msgstr "Anzahl"
@ -151,6 +152,7 @@ msgstr "Anzahl:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "Beschreibung" msgstr "Beschreibung"
@ -198,14 +200,14 @@ msgid "FMJ"
msgstr "VM" msgstr "VM"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "Körner" msgstr "Körner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -240,6 +242,7 @@ msgstr "Für 60 Tage eingeloggt bleiben"
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "Standort" msgstr "Standort"
@ -256,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Magazin, Ladestreifen, Munitionskiste usw." msgstr "Magazin, Ladestreifen, Munitionskiste usw."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -273,8 +276,9 @@ msgid "My cool ammo can"
msgstr "Meine coole Munitionskiste" msgstr "Meine coole Munitionskiste"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -282,11 +286,13 @@ msgid "Name"
msgstr "Name" msgstr "Name"
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "Neuer Munitionstyp" msgstr "Neuer Munitionstyp"
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "Neuer Behälter" msgstr "Neuer Behälter"
@ -311,7 +317,7 @@ msgstr "Keine Munition"
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "Keine Munitionsarten" msgstr "Keine Munitionsarten"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Keine Munition dieser Art" msgstr "Keine Munition dieser Art"
@ -332,7 +338,7 @@ msgstr "Keine Einladung"
msgid "No tags" msgid "No tags"
msgstr "Keine Tags" msgstr "Keine Tags"
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -353,14 +359,14 @@ msgid "On the bookshelf"
msgstr "Auf dem Bücherregal" msgstr "Auf dem Bücherregal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "Druck" msgstr "Druck"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "Kaufpreis" msgstr "Kaufpreis"
@ -371,7 +377,7 @@ msgid "Price paid:"
msgstr "Kaufpreis:" msgstr "Kaufpreis:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -421,6 +427,7 @@ msgid "Stored in"
msgstr "Gelagert in" msgstr "Gelagert in"
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -443,7 +450,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen" msgstr "Die selbst-gehostete Website zur Verwaltung von Schusswaffen"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -451,6 +458,7 @@ msgstr "Leuchtspur"
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "Art" msgstr "Art"
@ -492,7 +500,7 @@ msgid "No tags for this container"
msgstr "Keine Tags für diesen Behälter" msgstr "Keine Tags für diesen Behälter"
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "Schießplatz" msgstr "Schießplatz"
@ -524,12 +532,12 @@ msgstr "Keine Munition selektiert"
msgid "Record shots" msgid "Record shots"
msgstr "Schüsse dokumentieren" msgstr "Schüsse dokumentieren"
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "Munitionsgruppen" msgstr "Munitionsgruppen"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -552,6 +560,7 @@ msgid "No shots recorded"
msgstr "Keine Schüsse dokumentiert" msgstr "Keine Schüsse dokumentiert"
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "Patronen verbleibend" msgstr "Patronen verbleibend"
@ -572,7 +581,7 @@ msgstr "Schießkladde"
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "Munitionsgruppe verschieben" msgstr "Munitionsgruppe verschieben"
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Munition verschieben" msgstr "Munition verschieben"
@ -588,11 +597,11 @@ msgid "Shot log"
msgstr "Schießkladde" msgstr "Schießkladde"
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "$%{amount}" msgstr "$%{amount}"
@ -603,35 +612,35 @@ msgid "Bimetal"
msgstr "Bimetall" msgstr "Bimetall"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "Patronenhülse" msgstr "Patronenhülse"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Mündungsgeschwindigkeit" msgstr "Mündungsgeschwindigkeit"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Pulverkörner pro Ladung" msgstr "Pulverkörner pro Ladung"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "Pulverart" msgstr "Pulverart"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -653,18 +662,18 @@ msgstr "Derzeitiges Passwort"
msgid "New password" msgid "New password"
msgstr "Neues Passwort" msgstr "Neues Passwort"
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "Markiert" msgstr "Markiert"
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "Demarkiert" msgstr "Demarkiert"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -686,13 +695,14 @@ msgstr "Lädt..."
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "%{name} bearbeiten" msgstr "%{name} bearbeiten"
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Editiere %{name} Tags" msgstr "Editiere %{name} Tags"
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -703,13 +713,13 @@ msgstr "Patronen:"
msgid "Show %{name}" msgid "Show %{name}"
msgstr "Zeige %{name}" msgstr "Zeige %{name}"
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Keine Preisinformationen" msgstr "Keine Preisinformationen"
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "% verbleibend" msgstr "% verbleibend"
@ -739,21 +749,6 @@ msgstr "Prozent verbleibend:"
msgid "Rounds used" msgid "Rounds used"
msgstr "Patronen verbraucht" msgstr "Patronen verbraucht"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr "Derzeitige # an Patronen:"
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr "Summe aller Patronen"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr "Summe abgegebener Schüsse:"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -790,19 +785,19 @@ msgstr "Schüsse dokumentieren"
msgid "Copies" msgid "Copies"
msgstr "Kopien" msgstr "Kopien"
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo types" msgid "Ammo types"
msgstr "Munitionsart" msgstr "Munitionsart"
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "Hinzugefügt am" msgstr "Hinzugefügt am"
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "Hinzugefügt am:" msgstr "Hinzugefügt am:"
@ -887,6 +882,7 @@ msgid "This ammo is not in a container"
msgstr "Diese Munitionsgruppe ist nicht in einem Behälter" msgstr "Diese Munitionsgruppe ist nicht in einem Behälter"
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -908,23 +904,19 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr "Summe aller Patronen"
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "Behälter" msgstr "Behälter"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -934,7 +926,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -964,3 +956,65 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Patronen abgefeuert" msgstr "Patronen abgefeuert"
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr "Patronen:"
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr "Summe aller Patronen"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr "Summe abgegebener Schüsse:"
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format, fuzzy
msgid "Used up!"
msgstr ""

View File

@ -28,13 +28,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "Behälter muss vor dem Löschen leer sein" msgstr "Behälter muss vor dem Löschen leer sein"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Konnte %{name} nicht löschen: %{error}" msgstr "Konnte %{name} nicht löschen: %{error}"
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "Konnte Behälter nicht finden" msgstr "Konnte Behälter nicht finden"
@ -175,19 +175,19 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "Tag konnte nicht gelöscht werden" msgstr "Tag konnte nicht gelöscht werden"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "Konnte die Anzahl der Kopien nicht verstehen" msgstr "Konnte die Anzahl der Kopien nicht verstehen"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
"Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War " "Ungültige Nummer an Kopien. Muss zwischen 1 and %{max} liegen. War "
"%{multiplier}" "%{multiplier}"
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -23,15 +23,15 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "%{name} erfolgreich erstellt" msgstr "%{name} erfolgreich erstellt"
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -50,7 +50,7 @@ msgstr "%{name} erfolgreich deaktiviert"
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "%{name} erfolgreich aktiviert" msgstr "%{name} erfolgreich aktiviert"
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -62,7 +62,7 @@ msgid "%{name} updated succesfully"
msgstr "%{name} erfolgreich aktualisiert" msgstr "%{name} erfolgreich aktualisiert"
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -74,7 +74,7 @@ msgstr "%{name} erfolgreich aktualisiert"
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt." msgstr "Eine Mail zum Bestätigen ihre Mailadresse wurde Ihnen zugesandt."
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "Munitionsgruppe erfolgreich gelöscht" msgstr "Munitionsgruppe erfolgreich gelöscht"
@ -87,7 +87,8 @@ msgstr ""
"Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht " "Sind Sie sicher, dass sie %{email} löschen möchten? Dies kann nicht "
"zurückgenommen werden!" "zurückgenommen werden!"
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -99,7 +100,7 @@ msgstr "Sind Sie sicher, dass sie %{name} löschen möchten?"
msgid "Are you sure you want to delete the invite for %{name}?" 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?" msgstr "Sind Sie sicher, dass sie die Einladung für %{name} löschen möchten?"
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -164,7 +165,7 @@ msgstr "Bitte überprüfen Sie ihre Mailbox und bestätigen Sie das Nutzerkonto"
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Registrieren Sie sich, um %{name} zu bearbeiten" msgstr "Registrieren Sie sich, um %{name} zu bearbeiten"
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -285,14 +286,14 @@ msgstr "Munition erfolgreich demarkiert"
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "Munitionsgruppe erfolgreich aktualisiert" msgstr "Munitionsgruppe erfolgreich aktualisiert"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "Munitionsgruppe erfolgreich aktualisiert" msgstr[0] "Munitionsgruppe erfolgreich aktualisiert"
msgstr[1] "Munitionsgruppe erfolgreich aktualisiert" msgstr[1] "Munitionsgruppe erfolgreich aktualisiert"
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -38,13 +38,13 @@ msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -55,7 +55,7 @@ msgid "Background color"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -67,35 +67,35 @@ msgid "Brass"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -103,27 +103,28 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
@ -136,6 +137,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -183,14 +185,14 @@ msgid "FMJ"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -225,6 +227,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "" msgstr ""
@ -241,7 +244,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -258,8 +261,9 @@ msgid "My cool ammo can"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -267,11 +271,13 @@ msgid "Name"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "" msgstr ""
@ -296,7 +302,7 @@ msgstr ""
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -317,7 +323,7 @@ msgstr ""
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -338,14 +344,14 @@ msgid "On the bookshelf"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
@ -356,7 +362,7 @@ msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -404,6 +410,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -426,7 +433,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -434,6 +441,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -475,7 +483,7 @@ msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -507,12 +515,12 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -535,6 +543,7 @@ msgid "No shots recorded"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
@ -555,7 +564,7 @@ msgstr ""
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -571,11 +580,11 @@ msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -586,35 +595,35 @@ msgid "Bimetal"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -636,18 +645,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -669,13 +678,14 @@ msgstr ""
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -686,13 +696,13 @@ msgstr ""
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -722,21 +732,6 @@ msgstr ""
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -773,19 +768,19 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -870,6 +865,7 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -891,23 +887,19 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -917,7 +909,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -947,3 +939,65 @@ msgstr ""
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format
msgid "Packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format
msgid "Total ever rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format
msgid "Used up!"
msgstr ""

View File

@ -12,6 +12,7 @@ msgstr ""
"Plural-Forms: nplurals=2\n" "Plural-Forms: nplurals=2\n"
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -120,7 +121,7 @@ msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -156,7 +157,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -39,13 +39,13 @@ msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -56,7 +56,7 @@ msgid "Background color"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -68,35 +68,35 @@ msgid "Brass"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -104,27 +104,28 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
@ -137,6 +138,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -184,14 +186,14 @@ msgid "FMJ"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -226,6 +228,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "" msgstr ""
@ -242,7 +245,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -259,8 +262,9 @@ msgid "My cool ammo can"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -268,11 +272,13 @@ msgid "Name"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "" msgstr ""
@ -297,7 +303,7 @@ msgstr ""
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -318,7 +324,7 @@ msgstr ""
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -339,14 +345,14 @@ msgid "On the bookshelf"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
@ -357,7 +363,7 @@ msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -405,6 +411,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -427,7 +434,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -435,6 +442,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -476,7 +484,7 @@ msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -508,12 +516,12 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -536,6 +544,7 @@ msgid "No shots recorded"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
@ -556,7 +565,7 @@ msgstr ""
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -572,11 +581,11 @@ msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -587,35 +596,35 @@ msgid "Bimetal"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -637,18 +646,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -670,13 +679,14 @@ msgstr ""
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds:" msgid "Rounds:"
@ -687,13 +697,13 @@ msgstr ""
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -723,21 +733,6 @@ msgstr ""
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -774,19 +769,19 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -871,6 +866,7 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -892,23 +888,19 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -918,7 +910,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -948,3 +940,65 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format, fuzzy
msgid "Used up!"
msgstr ""

View File

@ -15,13 +15,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "" msgstr ""
@ -160,17 +160,17 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -11,15 +11,15 @@ msgstr ""
"Language: en\n" "Language: en\n"
"Plural-Forms: nplurals=2\n" "Plural-Forms: nplurals=2\n"
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -38,7 +38,7 @@ msgstr ""
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -50,7 +50,7 @@ msgid "%{name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -62,7 +62,7 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
@ -73,7 +73,8 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -85,7 +86,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -146,7 +147,7 @@ msgstr ""
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -265,14 +266,14 @@ msgstr ""
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -15,13 +15,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "" msgstr ""
@ -159,17 +159,17 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -24,6 +24,7 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -132,7 +133,7 @@ msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -168,7 +169,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -53,13 +53,13 @@ msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -70,7 +70,7 @@ msgid "Background color"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -82,35 +82,35 @@ msgid "Brass"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -118,27 +118,28 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
@ -151,6 +152,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -198,14 +200,14 @@ msgid "FMJ"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -240,6 +242,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "" msgstr ""
@ -256,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -273,8 +276,9 @@ msgid "My cool ammo can"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -282,11 +286,13 @@ msgid "Name"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "" msgstr ""
@ -311,7 +317,7 @@ msgstr ""
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -332,7 +338,7 @@ msgstr ""
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -353,14 +359,14 @@ msgid "On the bookshelf"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
@ -371,7 +377,7 @@ msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -419,6 +425,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -441,7 +448,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -449,6 +456,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -490,7 +498,7 @@ msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -522,12 +530,12 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -550,6 +558,7 @@ msgid "No shots recorded"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
@ -570,7 +579,7 @@ msgstr ""
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -586,11 +595,11 @@ msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -601,35 +610,35 @@ msgid "Bimetal"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -651,18 +660,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -684,13 +693,14 @@ msgstr ""
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -701,13 +711,13 @@ msgstr ""
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -737,21 +747,6 @@ msgstr ""
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -788,19 +783,19 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -885,6 +880,7 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -906,23 +902,19 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -932,7 +924,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -962,3 +954,65 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format, fuzzy
msgid "Used up!"
msgstr ""

View File

@ -28,13 +28,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "el Contenedor debe estar vació antes de borrarlo" msgstr "el Contenedor debe estar vació antes de borrarlo"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "No se pudo eliminar %{name}: %{error}" msgstr "No se pudo eliminar %{name}: %{error}"
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "" msgstr ""
@ -175,17 +175,17 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -23,15 +23,15 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "%{name} creado exitosamente" msgstr "%{name} creado exitosamente"
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -50,7 +50,7 @@ msgstr "%{name} desactivado exitosamente"
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "%{name} activado exitosamente" msgstr "%{name} activado exitosamente"
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -62,7 +62,7 @@ msgid "%{name} updated succesfully"
msgstr "%{name} actualizado exitosamente" msgstr "%{name} actualizado exitosamente"
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -76,7 +76,7 @@ msgstr ""
"Un enlace para confirmar el correo electrónico ha sido enviado a la nueva " "Un enlace para confirmar el correo electrónico ha sido enviado a la nueva "
"dirección." "dirección."
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "Grupo de Munición borrado exitosamente" msgstr "Grupo de Munición borrado exitosamente"
@ -87,7 +87,8 @@ msgstr "Grupo de Munición borrado exitosamente"
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!" msgstr "Está seguro que desea eliminar %{email}? Esta acción es permanente!"
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -99,7 +100,7 @@ msgstr "Está seguro que desea eliminar %{name}?"
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Está seguro que quiere eliminar la invitación para %{name}?" msgstr "Está seguro que quiere eliminar la invitación para %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -164,7 +165,7 @@ msgstr "Por favor chequea el correo para verificar tu cuenta"
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Regístrese para configurar %{name}" msgstr "Regístrese para configurar %{name}"
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -284,14 +285,14 @@ msgstr ""
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -24,6 +24,7 @@ msgstr ""
# # date. Leave "msgstr"s empty as changing them here has no # # date. Leave "msgstr"s empty as changing them here has no
# # effect: edit them in PO (.po) files instead. # # effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -132,7 +133,7 @@ msgstr "Renvoyer les instructions de confirmation"
msgid "Reset password" msgid "Reset password"
msgstr "Réinitialisé le mot de passe" msgstr "Réinitialisé le mot de passe"
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -168,7 +169,7 @@ msgstr "Munition préparée"
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "Pourquoi pas en préparer pour tirer?" msgstr "Pourquoi pas en préparer pour tirer?"
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -53,13 +53,13 @@ msgid "Ammo"
msgstr "Munition" msgstr "Munition"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "Type de munition" msgstr "Type de munition"
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "Prix acheté moyen" msgstr "Prix acheté moyen"
@ -70,7 +70,7 @@ msgid "Background color"
msgstr "Couleur de fond" msgstr "Couleur de fond"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -82,35 +82,35 @@ msgid "Brass"
msgstr "Cuivre" msgstr "Cuivre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "Noyau de balle" msgstr "Noyau de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "Type de balle" msgstr "Type de balle"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "Calibre" msgstr "Calibre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "Cartouche" msgstr "Cartouche"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -118,27 +118,28 @@ msgstr "Matériau de la caisse"
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "Conteneur" msgstr "Conteneur"
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "Conteneurs" msgstr "Conteneurs"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "Corrosive" msgstr "Corrosive"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "Quantité" msgstr "Quantité"
@ -151,6 +152,7 @@ msgstr "Quantité:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "Description" msgstr "Description"
@ -198,14 +200,14 @@ msgid "FMJ"
msgstr "FMJ" msgstr "FMJ"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "Graines" msgstr "Graines"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -240,6 +242,7 @@ msgstr "Me garder authentifié durant 60 jours"
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "Localisation" msgstr "Localisation"
@ -256,7 +259,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "Chargeur, lame-chargeur, boite de munition, etc." msgstr "Chargeur, lame-chargeur, boite de munition, etc."
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -273,8 +276,9 @@ msgid "My cool ammo can"
msgstr "Ma superbe boite de munition" msgstr "Ma superbe boite de munition"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -282,11 +286,13 @@ msgid "Name"
msgstr "Nom" msgstr "Nom"
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "Nouveau type de munition" msgstr "Nouveau type de munition"
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "Nouveau conteneur" msgstr "Nouveau conteneur"
@ -311,7 +317,7 @@ msgstr "Aucune munition"
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "Aucun type de munition" msgstr "Aucun type de munition"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "Aucune munition pour ce type" msgstr "Aucune munition pour ce type"
@ -332,7 +338,7 @@ msgstr "Aucune invitation"
msgid "No tags" msgid "No tags"
msgstr "Aucun tag" msgstr "Aucun tag"
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -353,14 +359,14 @@ msgid "On the bookshelf"
msgstr "Sur létagère" msgstr "Sur létagère"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "Pression" msgstr "Pression"
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "Prix payé" msgstr "Prix payé"
@ -371,7 +377,7 @@ msgid "Price paid:"
msgstr "Prix payé:" msgstr "Prix payé:"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -421,6 +427,7 @@ msgid "Stored in"
msgstr "Est stocké dans" msgstr "Est stocké dans"
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -445,7 +452,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "Le site web de suivi darme à feux auto-hébergé" msgstr "Le site web de suivi darme à feux auto-hébergé"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -453,6 +460,7 @@ msgstr "Traceuse"
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "Type" msgstr "Type"
@ -494,7 +502,7 @@ msgid "No tags for this container"
msgstr "Aucun tag pour ce conteneur" msgstr "Aucun tag pour ce conteneur"
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "Portée" msgstr "Portée"
@ -526,12 +534,12 @@ msgstr "Aucune munition sélectionnée"
msgid "Record shots" msgid "Record shots"
msgstr "Tirs enregistrés" msgstr "Tirs enregistrés"
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "Groupes de munition" msgstr "Groupes de munition"
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -554,6 +562,7 @@ msgid "No shots recorded"
msgstr "Aucun tir enregistré" msgstr "Aucun tir enregistré"
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "Cartouches restantes" msgstr "Cartouches restantes"
@ -574,7 +583,7 @@ msgstr "Enregistrements de tir"
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "Déplacer le groupe de munition" msgstr "Déplacer le groupe de munition"
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "Déplacer munition" msgstr "Déplacer munition"
@ -590,11 +599,11 @@ msgid "Shot log"
msgstr "Évènements de tir" msgstr "Évènements de tir"
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "%{amount}$" msgstr "%{amount}$"
@ -605,35 +614,35 @@ msgid "Bimetal"
msgstr "Bi-métal" msgstr "Bi-métal"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "Type de douille" msgstr "Type de douille"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "Vélocité du canon" msgstr "Vélocité du canon"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "Graines de poudre par charge" msgstr "Graines de poudre par charge"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "Type de poudre" msgstr "Type de poudre"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -655,18 +664,18 @@ msgstr "Mot de passe actuel"
msgid "New password" msgid "New password"
msgstr "Nouveau mot de passe" msgstr "Nouveau mot de passe"
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "Sélectionné" msgstr "Sélectionné"
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "Désélectionner" msgstr "Désélectionner"
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -688,13 +697,14 @@ msgstr "Chargement en cours…"
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "Éditer %{name}" msgstr "Éditer %{name}"
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "Éditer les tags de %{name}" msgstr "Éditer les tags de %{name}"
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -705,13 +715,13 @@ msgstr "Cartouches:"
msgid "Show %{name}" msgid "Show %{name}"
msgstr "Montrer %{name}" msgstr "Montrer %{name}"
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "Aucune information de prix" msgstr "Aucune information de prix"
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "%restante" msgstr "%restante"
@ -741,21 +751,6 @@ msgstr "Pourcentage restant:"
msgid "Rounds used" msgid "Rounds used"
msgstr "Cartouches utilisées" msgstr "Cartouches utilisées"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr "Quantité actuelle de cartouches:"
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr "Nombre totale de cartouches tirées:"
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -792,19 +787,19 @@ msgstr "Enregistrer des tirs"
msgid "Copies" msgid "Copies"
msgstr "Exemplaires" msgstr "Exemplaires"
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo types" msgid "Ammo types"
msgstr "Types de munition" msgstr "Types de munition"
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "Ajouté le" msgstr "Ajouté le"
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "Ajouté le:" msgstr "Ajouté le:"
@ -889,6 +884,7 @@ msgid "This ammo is not in a container"
msgstr "Ce groupe de munition nest pas dans un conteneur" msgstr "Ce groupe de munition nest pas dans un conteneur"
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -911,23 +907,19 @@ msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
"Laissez \"Utilisations restantes\" vide pour rendre l'invitation illimitée" "Laissez \"Utilisations restantes\" vide pour rendre l'invitation illimitée"
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format, fuzzy
msgid "Total # of ammo"
msgstr "Quantité de cartouches"
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Container:" msgid "Container:"
msgstr "Conteneur" msgstr "Conteneur"
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -937,7 +929,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -967,3 +959,65 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "Cartouches tirées" msgstr "Cartouches tirées"
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr "Packages:"
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr "Cartouches:"
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr "Quantité de cartouches"
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr "Nombre totale de cartouches tirées:"
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format, fuzzy
msgid "Used up!"
msgstr ""

View File

@ -28,13 +28,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "Le conteneur doit être vide pour être supprimé" msgstr "Le conteneur doit être vide pour être supprimé"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Impossible de supprimer %{name} : %{error}" msgstr "Impossible de supprimer %{name} : %{error}"
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "Impossible de trouver ce conteneur" msgstr "Impossible de trouver ce conteneur"
@ -176,17 +176,17 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "Le tag na pas pu être retiré" msgstr "Le tag na pas pu être retiré"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "Impossible d'analyser le nombre de copies" msgstr "Impossible d'analyser le nombre de copies"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" 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}" msgstr "Nombre de copies invalide, doit être 1 et %{max}. Été %{multiplier}"
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "Multiplicateur invalide" msgstr "Multiplicateur invalide"

View File

@ -23,15 +23,15 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "%{name} créé· avec succès" msgstr "%{name} créé· avec succès"
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -50,7 +50,7 @@ msgstr "%{name} supprimé·e avec succès"
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "%{name} activé·e avec succès" msgstr "%{name} activé·e avec succès"
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -62,7 +62,7 @@ msgid "%{name} updated succesfully"
msgstr "%{name} mis à jour avec succès" msgstr "%{name} mis à jour avec succès"
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -76,7 +76,7 @@ msgstr ""
"Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle " "Un lien pour confirmer votre changement de mél a été envoyé à la nouvelle "
"adresse." "adresse."
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "Groupe de munition supprimé avec succès" msgstr "Groupe de munition supprimé avec succès"
@ -88,7 +88,8 @@ msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
"Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!" "Êtes-vous certain·e de supprimer %{email}? Cette action est définitive!"
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -100,7 +101,7 @@ msgstr "Êtes-vous certain·e de supprimer %{name}?"
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?" msgstr "Êtes-vous certain·e de supprimer linvitation pour %{name}?"
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -165,7 +166,7 @@ msgstr "Veuillez vérifier votre mél pour confirmer votre compte"
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "Senregistrer pour mettre en place %{name}" msgstr "Senregistrer pour mettre en place %{name}"
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -286,14 +287,14 @@ msgstr "Groupe de munition désélectionner avec succès"
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "Groupe de munition mis à jour avec succès" msgstr "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "Groupe de munition mis à jour avec succès" msgstr[0] "Groupe de munition mis à jour avec succès"
msgstr[1] "Groupe de munition mis à jour avec succès" msgstr[1] "Groupe de munition mis à jour avec succès"
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -22,6 +22,7 @@ msgstr ""
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_group_live/index.ex:44 #: lib/cannery_web/live/ammo_group_live/index.ex:44
#: lib/cannery_web/live/ammo_group_live/index.ex:50
#: lib/cannery_web/live/ammo_group_live/index.html.heex:40 #: lib/cannery_web/live/ammo_group_live/index.html.heex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Add Ammo" msgid "Add Ammo"
@ -130,7 +131,7 @@ msgstr ""
msgid "Reset password" msgid "Reset password"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:46 #: lib/cannery_web/components/add_shot_group_component.html.heex:53
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:73
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:156
#: lib/cannery_web/live/container_live/form_component.html.heex:50 #: lib/cannery_web/live/container_live/form_component.html.heex:50
@ -166,7 +167,7 @@ msgstr ""
msgid "Why not get some ready to shoot?" msgid "Why not get some ready to shoot?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:190 #: lib/cannery_web/live/ammo_group_live/index.ex:199
#: lib/cannery_web/live/ammo_group_live/show.html.heex:101 #: lib/cannery_web/live/ammo_group_live/show.html.heex:101
#: lib/cannery_web/live/range_live/index.html.heex:38 #: lib/cannery_web/live/range_live/index.html.heex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format

View File

@ -49,13 +49,13 @@ msgid "Ammo"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:21
#: lib/cannery_web/live/ammo_group_live/index.ex:90 #: lib/cannery_web/live/ammo_group_live/index.ex:99
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo type" msgid "Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:88 #: lib/cannery_web/live/ammo_type_live/index.ex:137
#: lib/cannery_web/live/ammo_type_live/show.html.heex:106 #: lib/cannery_web/live/ammo_type_live/show.html.heex:138
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Average Price paid" msgid "Average Price paid"
msgstr "" msgstr ""
@ -66,7 +66,7 @@ msgid "Background color"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:140
#: lib/cannery_web/live/ammo_type_live/index.ex:71 #: lib/cannery_web/live/ammo_type_live/index.ex:82
#: lib/cannery_web/live/ammo_type_live/show.html.heex:59 #: lib/cannery_web/live/ammo_type_live/show.html.heex:59
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Blank" msgid "Blank"
@ -78,35 +78,35 @@ msgid "Brass"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:53 #: lib/cannery_web/live/ammo_type_live/index.ex:64
#: lib/cannery_web/live/ammo_type_live/show.html.heex:45 #: lib/cannery_web/live/ammo_type_live/show.html.heex:45
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet core" msgid "Bullet core"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:37
#: lib/cannery_web/live/ammo_type_live/index.ex:52 #: lib/cannery_web/live/ammo_type_live/index.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:44 #: lib/cannery_web/live/ammo_type_live/show.html.heex:44
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Bullet type" msgid "Bullet type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:58
#: lib/cannery_web/live/ammo_type_live/index.ex:55 #: lib/cannery_web/live/ammo_type_live/index.ex:66
#: lib/cannery_web/live/ammo_type_live/show.html.heex:47 #: lib/cannery_web/live/ammo_type_live/show.html.heex:47
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Caliber" msgid "Caliber"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:51
#: lib/cannery_web/live/ammo_type_live/index.ex:54 #: lib/cannery_web/live/ammo_type_live/index.ex:65
#: lib/cannery_web/live/ammo_type_live/show.html.heex:46 #: lib/cannery_web/live/ammo_type_live/show.html.heex:46
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Cartridge" msgid "Cartridge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:65
#: lib/cannery_web/live/ammo_type_live/index.ex:56 #: lib/cannery_web/live/ammo_type_live/index.ex:67
#: lib/cannery_web/live/ammo_type_live/show.html.heex:48 #: lib/cannery_web/live/ammo_type_live/show.html.heex:48
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Case material" msgid "Case material"
@ -114,27 +114,28 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:67 #: lib/cannery_web/components/move_ammo_group_component.ex:67
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:48
#: lib/cannery_web/live/ammo_group_live/index.ex:95 #: lib/cannery_web/live/ammo_group_live/index.ex:104
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container" msgid "Container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:57 #: lib/cannery_web/components/topbar.ex:57
#: lib/cannery_web/live/container_live/index.ex:36 #: lib/cannery_web/live/container_live/index.ex:44
#: lib/cannery_web/live/container_live/index.ex:53
#: lib/cannery_web/live/container_live/index.html.heex:3 #: lib/cannery_web/live/container_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Containers" msgid "Containers"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:144
#: lib/cannery_web/live/ammo_type_live/index.ex:72 #: lib/cannery_web/live/ammo_type_live/index.ex:83
#: lib/cannery_web/live/ammo_type_live/show.html.heex:60 #: lib/cannery_web/live/ammo_type_live/show.html.heex:60
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Corrosive" msgid "Corrosive"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:27
#: lib/cannery_web/live/ammo_group_live/index.ex:91 #: lib/cannery_web/live/ammo_group_live/index.ex:100
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Count" msgid "Count"
msgstr "" msgstr ""
@ -147,6 +148,7 @@ msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:24
#: lib/cannery_web/live/container_live/form_component.html.heex:27 #: lib/cannery_web/live/container_live/form_component.html.heex:27
#: lib/cannery_web/live/container_live/index.ex:122
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Description" msgid "Description"
msgstr "" msgstr ""
@ -194,14 +196,14 @@ msgid "FMJ"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:103
#: lib/cannery_web/live/ammo_type_live/index.ex:65 #: lib/cannery_web/live/ammo_type_live/index.ex:76
#: lib/cannery_web/live/ammo_type_live/show.html.heex:53 #: lib/cannery_web/live/ammo_type_live/show.html.heex:53
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Grains" msgid "Grains"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:136
#: lib/cannery_web/live/ammo_type_live/index.ex:70 #: lib/cannery_web/live/ammo_type_live/index.ex:81
#: lib/cannery_web/live/ammo_type_live/show.html.heex:58 #: lib/cannery_web/live/ammo_type_live/show.html.heex:58
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Incendiary" msgid "Incendiary"
@ -236,6 +238,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:69 #: lib/cannery_web/components/move_ammo_group_component.ex:69
#: lib/cannery_web/live/container_live/form_component.html.heex:42 #: lib/cannery_web/live/container_live/form_component.html.heex:42
#: lib/cannery_web/live/container_live/index.ex:123
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Location" msgid "Location"
msgstr "" msgstr ""
@ -252,7 +255,7 @@ msgid "Magazine, Clip, Ammo Box, etc"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:148
#: lib/cannery_web/live/ammo_type_live/index.ex:73 #: lib/cannery_web/live/ammo_type_live/index.ex:84
#: lib/cannery_web/live/ammo_type_live/show.html.heex:61 #: lib/cannery_web/live/ammo_type_live/show.html.heex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Manufacturer" msgid "Manufacturer"
@ -269,8 +272,9 @@ msgid "My cool ammo can"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:20
#: lib/cannery_web/live/ammo_type_live/index.ex:51 #: lib/cannery_web/live/ammo_type_live/index.ex:62
#: lib/cannery_web/live/container_live/form_component.html.heex:20 #: lib/cannery_web/live/container_live/form_component.html.heex:20
#: lib/cannery_web/live/container_live/index.ex:121
#: lib/cannery_web/live/invite_live/form_component.html.heex:20 #: lib/cannery_web/live/invite_live/form_component.html.heex:20
#: lib/cannery_web/live/tag_live/form_component.ex:75 #: lib/cannery_web/live/tag_live/form_component.ex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -278,11 +282,13 @@ msgid "Name"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:29 #: lib/cannery_web/live/ammo_type_live/index.ex:29
#: lib/cannery_web/live/ammo_type_live/index.ex:35
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Ammo type" msgid "New Ammo type"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:31 #: lib/cannery_web/live/container_live/index.ex:31
#: lib/cannery_web/live/container_live/index.ex:38
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "New Container" msgid "New Container"
msgstr "" msgstr ""
@ -307,7 +313,7 @@ msgstr ""
msgid "No Ammo Types" msgid "No Ammo Types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:134 #: lib/cannery_web/live/ammo_type_live/show.html.heex:166
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No ammo for this type" msgid "No ammo for this type"
msgstr "" msgstr ""
@ -328,7 +334,7 @@ msgstr ""
msgid "No tags" msgid "No tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:30 #: lib/cannery_web/components/add_shot_group_component.html.heex:37
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:41
#: lib/cannery_web/live/ammo_group_live/show.ex:88 #: lib/cannery_web/live/ammo_group_live/show.ex:88
#: lib/cannery_web/live/range_live/form_component.html.heex:29 #: lib/cannery_web/live/range_live/form_component.html.heex:29
@ -349,14 +355,14 @@ msgid "On the bookshelf"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:111
#: lib/cannery_web/live/ammo_type_live/index.ex:66 #: lib/cannery_web/live/ammo_type_live/index.ex:77
#: lib/cannery_web/live/ammo_type_live/show.html.heex:54 #: lib/cannery_web/live/ammo_type_live/show.html.heex:54
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Pressure" msgid "Pressure"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:34
#: lib/cannery_web/live/ammo_group_live/index.ex:92 #: lib/cannery_web/live/ammo_group_live/index.ex:101
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Price paid" msgid "Price paid"
msgstr "" msgstr ""
@ -367,7 +373,7 @@ msgid "Price paid:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:118
#: lib/cannery_web/live/ammo_type_live/index.ex:67 #: lib/cannery_web/live/ammo_type_live/index.ex:78
#: lib/cannery_web/live/ammo_type_live/show.html.heex:55 #: lib/cannery_web/live/ammo_type_live/show.html.heex:55
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Primer type" msgid "Primer type"
@ -415,6 +421,7 @@ msgid "Stored in"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:49 #: lib/cannery_web/components/topbar.ex:49
#: lib/cannery_web/live/container_live/index.ex:127
#: lib/cannery_web/live/tag_live/index.ex:32 #: lib/cannery_web/live/tag_live/index.ex:32
#: lib/cannery_web/live/tag_live/index.html.heex:3 #: lib/cannery_web/live/tag_live/index.html.heex:3
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -437,7 +444,7 @@ msgid "The self-hosted firearm tracker website"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:132
#: lib/cannery_web/live/ammo_type_live/index.ex:69 #: lib/cannery_web/live/ammo_type_live/index.ex:80
#: lib/cannery_web/live/ammo_type_live/show.html.heex:57 #: lib/cannery_web/live/ammo_type_live/show.html.heex:57
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Tracer" msgid "Tracer"
@ -445,6 +452,7 @@ msgstr ""
#: lib/cannery_web/components/move_ammo_group_component.ex:68 #: lib/cannery_web/components/move_ammo_group_component.ex:68
#: lib/cannery_web/live/container_live/form_component.html.heex:35 #: lib/cannery_web/live/container_live/form_component.html.heex:35
#: lib/cannery_web/live/container_live/index.ex:124
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Type" msgid "Type"
msgstr "" msgstr ""
@ -486,7 +494,7 @@ msgid "No tags for this container"
msgstr "" msgstr ""
#: lib/cannery_web/components/topbar.ex:81 #: lib/cannery_web/components/topbar.ex:81
#: lib/cannery_web/live/ammo_group_live/index.ex:94 #: lib/cannery_web/live/ammo_group_live/index.ex:103
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Range" msgid "Range"
msgstr "" msgstr ""
@ -518,12 +526,12 @@ msgstr ""
msgid "Record shots" msgid "Record shots"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:49 #: lib/cannery_web/live/ammo_group_live/index.ex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo groups" msgid "Ammo groups"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:38 #: lib/cannery_web/components/add_shot_group_component.html.heex:45
#: lib/cannery_web/live/range_live/form_component.html.heex:36 #: lib/cannery_web/live/range_live/form_component.html.heex:36
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Date (UTC)" msgid "Date (UTC)"
@ -546,6 +554,7 @@ msgid "No shots recorded"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:21 #: lib/cannery_web/components/add_shot_group_component.html.heex:21
#: lib/cannery_web/components/add_shot_group_component.html.heex:25
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds left" msgid "Rounds left"
msgstr "" msgstr ""
@ -566,7 +575,7 @@ msgstr ""
msgid "Move Ammo group" msgid "Move Ammo group"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:253 #: lib/cannery_web/live/ammo_group_live/index.ex:270
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Move ammo" msgid "Move ammo"
msgstr "" msgstr ""
@ -582,11 +591,11 @@ msgid "Shot log"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:63 #: lib/cannery_web/components/ammo_group_card.ex:63
#: lib/cannery_web/live/ammo_group_live/index.ex:145 #: lib/cannery_web/live/ammo_group_live/index.ex:154
#: lib/cannery_web/live/ammo_group_live/show.html.heex:37 #: 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_group_live/show.html.heex:44
#: lib/cannery_web/live/ammo_type_live/index.ex:118 #: lib/cannery_web/live/ammo_type_live/index.ex:179
#: lib/cannery_web/live/ammo_type_live/show.html.heex:110 #: lib/cannery_web/live/ammo_type_live/show.html.heex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "$%{amount}" msgid "$%{amount}"
msgstr "" msgstr ""
@ -597,35 +606,35 @@ msgid "Bimetal"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:72
#: lib/cannery_web/live/ammo_type_live/index.ex:57 #: lib/cannery_web/live/ammo_type_live/index.ex:68
#: lib/cannery_web/live/ammo_type_live/show.html.heex:49 #: lib/cannery_web/live/ammo_type_live/show.html.heex:49
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Jacket type" msgid "Jacket type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:79
#: lib/cannery_web/live/ammo_type_live/index.ex:58 #: lib/cannery_web/live/ammo_type_live/index.ex:69
#: lib/cannery_web/live/ammo_type_live/show.html.heex:50 #: lib/cannery_web/live/ammo_type_live/show.html.heex:50
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Muzzle velocity" msgid "Muzzle velocity"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:93
#: lib/cannery_web/live/ammo_type_live/index.ex:61 #: lib/cannery_web/live/ammo_type_live/index.ex:72
#: lib/cannery_web/live/ammo_type_live/show.html.heex:52 #: lib/cannery_web/live/ammo_type_live/show.html.heex:52
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder grains per charge" msgid "Powder grains per charge"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:89
#: lib/cannery_web/live/ammo_type_live/index.ex:59 #: lib/cannery_web/live/ammo_type_live/index.ex:70
#: lib/cannery_web/live/ammo_type_live/show.html.heex:51 #: lib/cannery_web/live/ammo_type_live/show.html.heex:51
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Powder type" msgid "Powder type"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:152
#: lib/cannery_web/live/ammo_type_live/index.ex:74 #: lib/cannery_web/live/ammo_type_live/index.ex:85
#: lib/cannery_web/live/ammo_type_live/show.html.heex:62 #: lib/cannery_web/live/ammo_type_live/show.html.heex:62
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "UPC" msgid "UPC"
@ -647,18 +656,18 @@ msgstr ""
msgid "New password" msgid "New password"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Stage" msgid "Stage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:183 #: lib/cannery_web/live/ammo_group_live/index.ex:192
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Unstage" msgid "Unstage"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:125
#: lib/cannery_web/live/ammo_type_live/index.ex:68 #: lib/cannery_web/live/ammo_type_live/index.ex:79
#: lib/cannery_web/live/ammo_type_live/show.html.heex:56 #: lib/cannery_web/live/ammo_type_live/show.html.heex:56
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Firing type" msgid "Firing type"
@ -680,13 +689,14 @@ msgstr ""
msgid "Edit %{name}" msgid "Edit %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:46 #: lib/cannery_web/live/container_live/index.ex:65
#: lib/cannery_web/live/container_live/show.ex:107 #: lib/cannery_web/live/container_live/show.ex:107
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Edit %{name} tags" msgid "Edit %{name} tags"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:63 #: lib/cannery_web/components/container_card.ex:63
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#: lib/cannery_web/live/container_live/show.html.heex:32 #: lib/cannery_web/live/container_live/show.html.heex:32
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Rounds:" msgid "Rounds:"
@ -697,13 +707,13 @@ msgstr ""
msgid "Show %{name}" msgid "Show %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117 #: lib/cannery_web/live/ammo_type_live/index.ex:178
#: lib/cannery_web/live/ammo_type_live/show.html.heex:116 #: lib/cannery_web/live/ammo_type_live/show.html.heex:148
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "No cost information" msgid "No cost information"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:93 #: lib/cannery_web/live/ammo_group_live/index.ex:102
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "% left" msgid "% left"
msgstr "" msgstr ""
@ -733,21 +743,6 @@ msgstr ""
msgid "Rounds used" msgid "Rounds used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:81
#, elixir-autogen, elixir-format
msgid "Current # of rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:86
#, elixir-autogen, elixir-format
msgid "Total # of rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format
msgid "Total rounds shot:"
msgstr ""
#: lib/cannery_web/controllers/user_confirmation_controller.ex:8 #: lib/cannery_web/controllers/user_confirmation_controller.ex:8
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Confirm your account" msgid "Confirm your account"
@ -784,19 +779,19 @@ msgstr ""
msgid "Copies" msgid "Copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:34 #: lib/cannery_web/live/ammo_type_live/index.ex:40
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo types" msgid "Ammo types"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:96 #: lib/cannery_web/live/ammo_group_live/index.ex:105
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on" msgid "Added on"
msgstr "" msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:49 #: lib/cannery_web/components/ammo_group_card.ex:49
#: lib/cannery_web/live/ammo_group_live/show.html.heex:30 #: lib/cannery_web/live/ammo_group_live/show.html.heex:30
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97 #: lib/cannery_web/live/ammo_type_live/show.html.heex:129
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Added on:" msgid "Added on:"
msgstr "" msgstr ""
@ -881,6 +876,7 @@ msgid "This ammo is not in a container"
msgstr "" msgstr ""
#: lib/cannery_web/components/container_card.ex:58 #: lib/cannery_web/components/container_card.ex:58
#: lib/cannery_web/live/ammo_type_live/show.html.heex:105
#: lib/cannery_web/live/container_live/show.html.heex:27 #: lib/cannery_web/live/container_live/show.html.heex:27
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Packs:" msgid "Packs:"
@ -902,23 +898,19 @@ msgstr ""
msgid "Leave \"Uses left\" blank to make invite unlimited" msgid "Leave \"Uses left\" blank to make invite unlimited"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:87
#, elixir-autogen, elixir-format
msgid "Total # of ammo"
msgstr ""
#: lib/cannery_web/components/ammo_group_card.ex:71 #: lib/cannery_web/components/ammo_group_card.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Container:" msgid "Container:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.html.heex:48 #: lib/cannery_web/live/ammo_group_live/index.html.heex:48
#: lib/cannery_web/live/ammo_type_live/show.html.heex:126 #: lib/cannery_web/live/ammo_type_live/index.html.heex:23
#: lib/cannery_web/live/ammo_type_live/show.html.heex:158
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Show used" msgid "Show used"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:101 #: lib/cannery_web/live/ammo_group_live/index.ex:110
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Used up on" msgid "Used up on"
msgstr "" msgstr ""
@ -928,7 +920,7 @@ msgstr ""
msgid "Used up on:" msgid "Used up on:"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:197 #: lib/cannery_web/live/ammo_group_live/index.ex:206
#: lib/cannery_web/live/ammo_group_live/show.html.heex:19 #: lib/cannery_web/live/ammo_group_live/show.html.heex:19
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{percentage}%" msgid "%{percentage}%"
@ -958,3 +950,65 @@ msgstr ""
#, elixir-autogen, elixir-format, fuzzy #, elixir-autogen, elixir-format, fuzzy
msgid "Rounds shot: %{count}" msgid "Rounds shot: %{count}"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:117
#: lib/cannery_web/live/container_live/index.ex:125
#, elixir-autogen, elixir-format, fuzzy
msgid "Packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:97
#: lib/cannery_web/live/container_live/index.ex:126
#, elixir-autogen, elixir-format, fuzzy
msgid "Rounds"
msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:23
#, elixir-autogen, elixir-format
msgid "View as table"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:127
#, elixir-autogen, elixir-format
msgid "Total ever packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:121
#, elixir-autogen, elixir-format
msgid "Total ever packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:108
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:97
#, elixir-autogen, elixir-format, fuzzy
msgid "Total ever rounds:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:122
#, elixir-autogen, elixir-format
msgid "Used packs"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:113
#, elixir-autogen, elixir-format
msgid "Used packs:"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:103
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds"
msgstr ""
#: lib/cannery_web/live/ammo_type_live/show.html.heex:89
#, elixir-autogen, elixir-format, fuzzy
msgid "Used rounds:"
msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:33
#, elixir-autogen, elixir-format, fuzzy
msgid "Used up!"
msgstr ""

View File

@ -29,13 +29,13 @@ msgstr ""
msgid "Container must be empty before deleting" msgid "Container must be empty before deleting"
msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh" msgstr "Caithfidh an coimeádán a bheidh follamh roimh scriosadh"
#: lib/cannery_web/live/container_live/index.ex:69 #: lib/cannery_web/live/container_live/index.ex:88
#: lib/cannery_web/live/container_live/show.ex:71 #: lib/cannery_web/live/container_live/show.ex:71
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not delete %{name}: %{error}" msgid "Could not delete %{name}: %{error}"
msgstr "Ní feidir %{name} a scriosadh: %{error}" msgstr "Ní feidir %{name} a scriosadh: %{error}"
#: lib/cannery_web/live/container_live/index.ex:57 #: lib/cannery_web/live/container_live/index.ex:76
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not find that container" msgid "Could not find that container"
msgstr "Ní feidir an coimeádán sin a fáil" msgstr "Ní feidir an coimeádán sin a fáil"
@ -175,17 +175,17 @@ msgstr ""
msgid "Tag could not be removed" msgid "Tag could not be removed"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:156 #: lib/cannery_web/live/ammo_group_live/form_component.ex:157
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Could not parse number of copies" msgid "Could not parse number of copies"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:141 #: lib/cannery_web/live/ammo_group_live/form_component.ex:142
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}" msgid "Invalid number of copies, must be between 1 and %{max}. Was %{multiplier}"
msgstr "" msgstr ""
#: lib/cannery/ammo.ex:535 #: lib/cannery/ammo.ex:587
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Invalid multiplier" msgid "Invalid multiplier"
msgstr "" msgstr ""

View File

@ -21,15 +21,15 @@ msgstr ""
## Run "mix gettext.extract" to bring this file up to ## Run "mix gettext.extract" to bring this file up to
## date. Leave "msgstr"s empty as changing them here has no ## date. Leave "msgstr"s empty as changing them here has no
## effect: edit them in PO (.po) files instead. ## effect: edit them in PO (.po) files instead.
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -48,7 +48,7 @@ msgstr ""
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -60,7 +60,7 @@ msgid "%{name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -72,7 +72,7 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
@ -83,7 +83,8 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -95,7 +96,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -156,7 +157,7 @@ msgstr ""
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -275,14 +276,14 @@ msgstr ""
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -10,15 +10,15 @@
msgid "" msgid ""
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.ex:85 #: lib/cannery_web/live/ammo_type_live/form_component.ex:86
#: lib/cannery_web/live/container_live/form_component.ex:85 #: lib/cannery_web/live/container_live/form_component.ex:89
#: lib/cannery_web/live/invite_live/form_component.ex:80 #: lib/cannery_web/live/invite_live/form_component.ex:80
#: lib/cannery_web/live/tag_live/form_component.ex:126 #: lib/cannery_web/live/tag_live/form_component.ex:126
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} created successfully" msgid "%{name} created successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/index.ex:41 #: lib/cannery_web/live/ammo_type_live/index.ex:47
#: lib/cannery_web/live/ammo_type_live/show.ex:28 #: lib/cannery_web/live/ammo_type_live/show.ex:28
#: lib/cannery_web/live/invite_live/index.ex:53 #: lib/cannery_web/live/invite_live/index.ex:53
#: lib/cannery_web/live/invite_live/index.ex:133 #: lib/cannery_web/live/invite_live/index.ex:133
@ -37,7 +37,7 @@ msgstr ""
msgid "%{name} enabled succesfully" msgid "%{name} enabled succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.ex:62 #: lib/cannery_web/live/container_live/index.ex:81
#: lib/cannery_web/live/container_live/show.ex:61 #: lib/cannery_web/live/container_live/show.ex:61
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "%{name} has been deleted" msgid "%{name} has been deleted"
@ -49,7 +49,7 @@ msgid "%{name} updated succesfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_type_live/form_component.ex:67 #: lib/cannery_web/live/ammo_type_live/form_component.ex:67
#: lib/cannery_web/live/container_live/form_component.ex:67 #: lib/cannery_web/live/container_live/form_component.ex:70
#: lib/cannery_web/live/invite_live/form_component.ex:62 #: lib/cannery_web/live/invite_live/form_component.ex:62
#: lib/cannery_web/live/tag_live/form_component.ex:108 #: lib/cannery_web/live/tag_live/form_component.ex:108
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -61,7 +61,7 @@ msgstr ""
msgid "A link to confirm your email change has been sent to the new address." msgid "A link to confirm your email change has been sent to the new address."
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:56 #: lib/cannery_web/live/ammo_group_live/index.ex:64
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo group deleted succesfully" msgid "Ammo group deleted succesfully"
msgstr "" msgstr ""
@ -72,7 +72,8 @@ msgstr ""
msgid "Are you sure you want to delete %{email}? This action is permanent!" msgid "Are you sure you want to delete %{email}? This action is permanent!"
msgstr "" msgstr ""
#: lib/cannery_web/live/container_live/index.html.heex:48 #: lib/cannery_web/live/container_live/index.ex:223
#: lib/cannery_web/live/container_live/index.html.heex:73
#: lib/cannery_web/live/container_live/show.html.heex:51 #: lib/cannery_web/live/container_live/show.html.heex:51
#: lib/cannery_web/live/tag_live/index.html.heex:39 #: lib/cannery_web/live/tag_live/index.html.heex:39
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
@ -84,7 +85,7 @@ msgstr ""
msgid "Are you sure you want to delete the invite for %{name}?" msgid "Are you sure you want to delete the invite for %{name}?"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/index.ex:225 #: lib/cannery_web/live/ammo_group_live/index.ex:242
#: lib/cannery_web/live/ammo_group_live/show.html.heex:75 #: lib/cannery_web/live/ammo_group_live/show.html.heex:75
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete this ammo?" msgid "Are you sure you want to delete this ammo?"
@ -145,7 +146,7 @@ msgstr ""
msgid "Register to setup %{name}" msgid "Register to setup %{name}"
msgstr "" msgstr ""
#: lib/cannery_web/components/add_shot_group_component.html.heex:48 #: lib/cannery_web/components/add_shot_group_component.html.heex:55
#: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74 #: lib/cannery_web/live/ammo_group_live/form_component.html.heex:74
#: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157 #: lib/cannery_web/live/ammo_type_live/form_component.html.heex:157
#: lib/cannery_web/live/container_live/form_component.html.heex:52 #: lib/cannery_web/live/container_live/form_component.html.heex:52
@ -264,14 +265,14 @@ msgstr ""
msgid "Ammo updated successfully" msgid "Ammo updated successfully"
msgstr "" msgstr ""
#: lib/cannery_web/live/ammo_group_live/form_component.ex:177 #: lib/cannery_web/live/ammo_group_live/form_component.ex:178
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Ammo added successfully" msgid "Ammo added successfully"
msgid_plural "Ammo added successfully" msgid_plural "Ammo added successfully"
msgstr[0] "" msgstr[0] ""
msgstr[1] "" msgstr[1] ""
#: lib/cannery_web/live/ammo_type_live/index.ex:163 #: lib/cannery_web/live/ammo_type_live/index.ex:232
#: lib/cannery_web/live/ammo_type_live/show.html.heex:28 #: lib/cannery_web/live/ammo_type_live/show.html.heex:28
#, elixir-autogen, elixir-format #, elixir-autogen, elixir-format
msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!" msgid "Are you sure you want to delete %{name}? This will delete all %{name} type ammo as well!"

View File

@ -94,6 +94,135 @@ defmodule Cannery.AmmoTest do
end end
end end
describe "ammo types with ammo groups" do
setup do
current_user = user_fixture()
ammo_type = ammo_type_fixture(current_user)
container = container_fixture(current_user)
[
ammo_type: ammo_type,
container: container,
current_user: current_user
]
end
test "get_average_cost_for_ammo_type!/2 gets average cost for ammo type",
%{ammo_type: ammo_type, current_user: current_user, container: container} do
{1, [_ammo_group]} =
ammo_group_fixture(
%{"price_paid" => 25.00, "count" => 1},
ammo_type,
container,
current_user
)
assert 25.0 = Ammo.get_average_cost_for_ammo_type!(ammo_type, current_user)
{1, [_ammo_group]} =
ammo_group_fixture(
%{"price_paid" => 25.00, "count" => 1},
ammo_type,
container,
current_user
)
assert 25.0 = Ammo.get_average_cost_for_ammo_type!(ammo_type, current_user)
{1, [_ammo_group]} =
ammo_group_fixture(
%{"price_paid" => 70.00, "count" => 1},
ammo_type,
container,
current_user
)
assert 40.0 = Ammo.get_average_cost_for_ammo_type!(ammo_type, current_user)
{1, [_ammo_group]} =
ammo_group_fixture(
%{"price_paid" => 30.00, "count" => 1},
ammo_type,
container,
current_user
)
assert 37.5 = Ammo.get_average_cost_for_ammo_type!(ammo_type, current_user)
end
test "get_round_count_for_ammo_type/2 gets accurate round count for ammo type",
%{ammo_type: ammo_type, current_user: current_user, container: container} do
{1, [first_ammo_group]} =
ammo_group_fixture(%{"count" => 1}, ammo_type, container, current_user)
assert 1 = Ammo.get_round_count_for_ammo_type(ammo_type, current_user)
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 50}, ammo_type, container, current_user)
assert 51 = Ammo.get_round_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 26}, current_user, ammo_group)
assert 25 = Ammo.get_round_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 1}, current_user, first_ammo_group)
assert 24 = Ammo.get_round_count_for_ammo_type(ammo_type, current_user)
end
test "get_used_count_for_ammo_type/2 gets accurate used round count for ammo type",
%{ammo_type: ammo_type, current_user: current_user, container: container} do
{1, [first_ammo_group]} =
ammo_group_fixture(%{"count" => 1}, ammo_type, container, current_user)
assert 0 = Ammo.get_used_count_for_ammo_type(ammo_type, current_user)
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 50}, ammo_type, container, current_user)
assert 0 = Ammo.get_used_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 26}, current_user, ammo_group)
assert 26 = Ammo.get_used_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 1}, current_user, first_ammo_group)
assert 27 = Ammo.get_used_count_for_ammo_type(ammo_type, current_user)
end
test "get_historical_count_for_ammo_type/2 gets accurate total round count for ammo type",
%{ammo_type: ammo_type, current_user: current_user, container: container} do
{1, [first_ammo_group]} =
ammo_group_fixture(%{"count" => 1}, ammo_type, container, current_user)
assert 1 = Ammo.get_historical_count_for_ammo_type(ammo_type, current_user)
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 50}, ammo_type, container, current_user)
assert 51 = Ammo.get_historical_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 26}, current_user, ammo_group)
assert 51 = Ammo.get_historical_count_for_ammo_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 1}, current_user, first_ammo_group)
assert 51 = Ammo.get_historical_count_for_ammo_type(ammo_type, current_user)
end
test "get_used_ammo_groups_count_for_type/2 gets accurate total ammo count for ammo type",
%{ammo_type: ammo_type, current_user: current_user, container: container} do
{1, [first_ammo_group]} =
ammo_group_fixture(%{"count" => 1}, ammo_type, container, current_user)
assert 0 = Ammo.get_used_ammo_groups_count_for_type(ammo_type, current_user)
{1, [ammo_group]} = ammo_group_fixture(%{"count" => 50}, ammo_type, container, current_user)
assert 0 = Ammo.get_used_ammo_groups_count_for_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 50}, current_user, ammo_group)
assert 1 = Ammo.get_used_ammo_groups_count_for_type(ammo_type, current_user)
shot_group_fixture(%{"count" => 1}, current_user, first_ammo_group)
assert 2 = Ammo.get_used_ammo_groups_count_for_type(ammo_type, current_user)
end
end
describe "ammo_groups" do describe "ammo_groups" do
@valid_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5} @valid_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5}
@update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7} @update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7}
@ -103,7 +232,7 @@ defmodule Cannery.AmmoTest do
current_user = user_fixture() current_user = user_fixture()
ammo_type = ammo_type_fixture(current_user) ammo_type = ammo_type_fixture(current_user)
container = container_fixture(current_user) container = container_fixture(current_user)
{1, [ammo_group]} = ammo_group_fixture(ammo_type, container, current_user) {1, [ammo_group]} = ammo_group_fixture(%{"count" => 25}, ammo_type, container, current_user)
[ [
ammo_type: ammo_type, ammo_type: ammo_type,
@ -113,9 +242,76 @@ defmodule Cannery.AmmoTest do
] ]
end end
test "list_ammo_groups/0 returns all ammo_groups", test "list_ammo_groups/2 returns all ammo_groups",
%{ammo_group: ammo_group, current_user: current_user} do %{
ammo_type: ammo_type,
ammo_group: ammo_group,
container: container,
current_user: current_user
} do
{1, [another_ammo_group]} =
ammo_group_fixture(%{"count" => 30}, ammo_type, container, current_user)
shot_group_fixture(%{"count" => 30}, current_user, another_ammo_group)
another_ammo_group = another_ammo_group |> Repo.reload!()
assert Ammo.list_ammo_groups(current_user) == [ammo_group] |> Repo.preload(:shot_groups) assert Ammo.list_ammo_groups(current_user) == [ammo_group] |> Repo.preload(:shot_groups)
assert Ammo.list_ammo_groups(current_user, true)
|> Enum.sort_by(fn %{count: count} -> count end) ==
[another_ammo_group, ammo_group] |> Repo.preload(:shot_groups)
end
test "list_ammo_groups_for_type/2 returns all ammo_groups for a type",
%{
ammo_type: ammo_type,
container: container,
ammo_group: ammo_group,
current_user: current_user
} do
another_ammo_type = ammo_type_fixture(current_user)
{1, [_another]} = ammo_group_fixture(another_ammo_type, container, current_user)
assert Ammo.list_ammo_groups_for_type(ammo_type, current_user) ==
[ammo_group] |> Repo.preload(:shot_groups)
end
test "list_ammo_groups_for_container/2 returns all ammo_groups for a container",
%{
ammo_type: ammo_type,
container: container,
ammo_group: ammo_group,
current_user: current_user
} do
another_container = container_fixture(current_user)
{1, [_another]} = ammo_group_fixture(ammo_type, another_container, current_user)
assert Ammo.list_ammo_groups_for_container(container, current_user) ==
[ammo_group] |> Repo.preload(:shot_groups)
end
test "get_ammo_groups_count_for_type/2 returns count of ammo_groups for a type",
%{
ammo_type: ammo_type,
container: container,
current_user: current_user
} do
another_ammo_type = ammo_type_fixture(current_user)
{1, [_another]} = ammo_group_fixture(another_ammo_type, container, current_user)
assert 1 = Ammo.get_ammo_groups_count_for_type(ammo_type, current_user)
end
test "list_staged_ammo_groups/2 returns all ammo_groups that are staged",
%{
ammo_type: ammo_type,
container: container,
current_user: current_user
} do
{1, [another_ammo_group]} =
ammo_group_fixture(%{"staged" => true}, ammo_type, container, current_user)
assert Ammo.list_staged_ammo_groups(current_user) ==
[another_ammo_group] |> Repo.preload(:shot_groups)
end end
test "get_ammo_group!/1 returns the ammo_group with given id", test "get_ammo_group!/1 returns the ammo_group with given id",
@ -140,6 +336,27 @@ defmodule Cannery.AmmoTest do
assert ammo_group.price_paid == 120.5 assert ammo_group.price_paid == 120.5
end end
test "create_ammo_groups/3 with valid data creates multiple ammo_groups",
%{
ammo_type: ammo_type,
container: container,
current_user: current_user
} do
assert {:ok, {3, ammo_groups}} =
@valid_attrs
|> Map.merge(%{"ammo_type_id" => ammo_type.id, "container_id" => container.id})
|> Ammo.create_ammo_groups(3, current_user)
assert [%AmmoGroup{}, %AmmoGroup{}, %AmmoGroup{}] = ammo_groups
ammo_groups
|> Enum.map(fn %{count: count, notes: notes, price_paid: price_paid} ->
assert count == 42
assert notes == "some notes"
assert price_paid == 120.5
end)
end
test "create_ammo_groups/3 with invalid data returns error changeset", test "create_ammo_groups/3 with invalid data returns error changeset",
%{ammo_type: ammo_type, container: container, current_user: current_user} do %{ammo_type: ammo_type, container: container, current_user: current_user} do
assert {:error, %Changeset{}} = assert {:error, %Changeset{}} =
@ -175,5 +392,57 @@ defmodule Cannery.AmmoTest do
Ammo.get_ammo_group!(ammo_group.id, current_user) Ammo.get_ammo_group!(ammo_group.id, current_user)
end end
end end
test "get_used_count/1 returns accurate used count",
%{ammo_group: ammo_group, current_user: current_user} do
assert 0 = Ammo.get_used_count(ammo_group)
shot_group_fixture(%{"count" => 15}, current_user, ammo_group)
assert 15 = ammo_group |> Repo.preload(:shot_groups, force: true) |> Ammo.get_used_count()
shot_group_fixture(%{"count" => 10}, current_user, ammo_group)
assert 25 = ammo_group |> Repo.preload(:shot_groups, force: true) |> Ammo.get_used_count()
end
test "get_last_used_shot_group/1 returns accurate used count",
%{ammo_group: ammo_group, current_user: current_user} do
assert ammo_group
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_last_used_shot_group()
|> is_nil()
shot_group = shot_group_fixture(%{"date" => ~D[2022-11-10]}, current_user, ammo_group)
assert ^shot_group =
ammo_group
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_last_used_shot_group()
shot_group = shot_group_fixture(%{"date" => ~D[2022-11-11]}, current_user, ammo_group)
assert ^shot_group =
ammo_group
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_last_used_shot_group()
end
test "get_percentage_remaining/1 gets accurate total round count for ammo type",
%{ammo_group: ammo_group, current_user: current_user} do
assert 100 = Ammo.get_percentage_remaining(ammo_group)
shot_group_fixture(%{"count" => 14}, current_user, ammo_group)
assert 44 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_percentage_remaining()
shot_group_fixture(%{"count" => 11}, current_user, ammo_group)
assert 0 =
ammo_group
|> Repo.reload!()
|> Repo.preload(:shot_groups, force: true)
|> Ammo.get_percentage_remaining()
end
end end
end end

View File

@ -18,7 +18,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
@create_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5} @create_attrs %{"count" => 42, "notes" => "some notes", "price_paid" => 120.5}
@update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7} @update_attrs %{"count" => 43, "notes" => "some updated notes", "price_paid" => 456.7}
@ammo_group_create_limit 10_000 @ammo_group_create_limit 10_000
@ammo_group_attrs %{ @empty_attrs %{
"price_paid" => 50, "price_paid" => 50,
"count" => 20 "count" => 20
} }
@ -32,7 +32,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
defp create_ammo_group(%{current_user: current_user}) do defp create_ammo_group(%{current_user: current_user}) do
ammo_type = ammo_type_fixture(current_user) ammo_type = ammo_type_fixture(current_user)
container = container_fixture(current_user) container = container_fixture(current_user)
{1, [ammo_group]} = ammo_group_fixture(ammo_type, container, current_user) {1, [ammo_group]} = ammo_group_fixture(@create_attrs, ammo_type, container, current_user)
%{ammo_type: ammo_type, ammo_group: ammo_group, container: container} %{ammo_type: ammo_type, ammo_group: ammo_group, container: container}
end end
@ -49,7 +49,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
ammo_type: ammo_type, ammo_type: ammo_type,
container: container container: container
}) do }) do
{1, [ammo_group]} = ammo_group_fixture(@ammo_group_attrs, ammo_type, container, current_user) {1, [ammo_group]} = ammo_group_fixture(@empty_attrs, ammo_type, container, current_user)
shot_group = shot_group_fixture(@shot_group_attrs, current_user, ammo_group) shot_group = shot_group_fixture(@shot_group_attrs, current_user, ammo_group)
ammo_group = ammo_group |> Repo.reload!() ammo_group = ammo_group |> Repo.reload!()
%{empty_ammo_group: ammo_group, shot_group: shot_group} %{empty_ammo_group: ammo_group, shot_group: shot_group}
@ -70,7 +70,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("Add Ammo") dgettext("actions", "Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -94,7 +94,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("Add Ammo") dgettext("actions", "Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -118,7 +118,7 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~ assert index_live |> element("a", dgettext("actions", "Add Ammo")) |> render_click() =~
gettext("Add Ammo") dgettext("actions", "Add Ammo")
assert_patch(index_live, Routes.ammo_group_index_path(conn, :new)) assert_patch(index_live, Routes.ammo_group_index_path(conn, :new))
@ -174,6 +174,62 @@ defmodule CanneryWeb.AmmoGroupLiveTest do
assert html =~ "43" assert html =~ "43"
end end
test "clones ammo_group in listing", %{conn: conn, ammo_group: ammo_group} do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
html =
index_live
|> element("[data-qa=\"clone-#{ammo_group.id}\"]")
|> render_click()
assert html =~ dgettext("actions", "Add Ammo")
assert html =~ gettext("$%{amount}", amount: 120.5 |> :erlang.float_to_binary(decimals: 2))
assert_patch(index_live, Routes.ammo_group_index_path(conn, :clone, ammo_group))
# assert index_live
# |> form("#ammo_group-form", ammo_group: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#ammo_group-form")
|> render_submit()
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "42"
assert html =~ gettext("$%{amount}", amount: 120.5 |> :erlang.float_to_binary(decimals: 2))
end
test "clones ammo_group in listing with updates", %{conn: conn, ammo_group: ammo_group} do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))
html =
index_live
|> element("[data-qa=\"clone-#{ammo_group.id}\"]")
|> render_click()
assert html =~ dgettext("actions", "Add Ammo")
assert html =~ gettext("$%{amount}", amount: 120.5 |> :erlang.float_to_binary(decimals: 2))
assert_patch(index_live, Routes.ammo_group_index_path(conn, :clone, ammo_group))
# assert index_live
# |> form("#ammo_group-form", ammo_group: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#ammo_group-form", ammo_group: Map.merge(@create_attrs, %{"count" => 43}))
|> render_submit()
|> follow_redirect(conn, Routes.ammo_group_index_path(conn, :index))
assert html =~ dgettext("prompts", "Ammo added successfully")
assert html =~ "43"
assert html =~ gettext("$%{amount}", amount: 120.5 |> :erlang.float_to_binary(decimals: 2))
end
test "deletes ammo_group in listing", %{conn: conn, ammo_group: ammo_group} do test "deletes ammo_group in listing", %{conn: conn, ammo_group: ammo_group} do
{:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_group_index_path(conn, :index))

View File

@ -121,6 +121,58 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
assert html =~ "some updated bullet_type" assert html =~ "some updated bullet_type"
end end
test "clones ammo_type in listing",
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click()
assert html =~ gettext("New Ammo type")
assert html =~ "some bullet_type"
assert_patch(index_live, Routes.ammo_type_index_path(conn, :clone, ammo_type))
# assert index_live
# |> form("#ammo_type-form", ammo_type: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#ammo_type-form", ammo_type: @create_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.ammo_type_index_path(conn, :index))
ammo_type = ammo_type.id |> Ammo.get_ammo_type!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: ammo_type.name)
assert html =~ "some bullet_type"
end
test "clones ammo_type in listing with updates",
%{conn: conn, current_user: current_user, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{ammo_type.id}\"]") |> render_click()
assert html =~ gettext("New Ammo type")
assert html =~ "some bullet_type"
assert_patch(index_live, Routes.ammo_type_index_path(conn, :clone, ammo_type))
# assert index_live
# |> form("#ammo_type-form", ammo_type: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#ammo_type-form",
ammo_type: Map.merge(@create_attrs, %{"bullet_type" => "some updated bullet_type"})
)
|> render_submit()
|> follow_redirect(conn, Routes.ammo_type_index_path(conn, :index))
ammo_type = ammo_type.id |> Ammo.get_ammo_type!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: ammo_type.name)
assert html =~ "some updated bullet_type"
end
test "deletes ammo_type in listing", %{conn: conn, ammo_type: ammo_type} do test "deletes ammo_type in listing", %{conn: conn, ammo_type: ammo_type} do
{:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
@ -129,6 +181,40 @@ defmodule CanneryWeb.AmmoTypeLiveTest do
end end
end end
describe "Index with ammo group" do
setup [:register_and_log_in_user, :create_ammo_type, :create_ammo_group]
test "shows additional ammo type info on toggle",
%{conn: conn, ammo_group: ammo_group, current_user: current_user} do
{:ok, show_live, html} = live(conn, Routes.ammo_type_index_path(conn, :index))
assert html =~ dgettext("actions", "Show used")
refute html =~ gettext("Used rounds")
refute html =~ gettext("Total ever rounds")
refute html =~ gettext("Used packs")
refute html =~ gettext("Total ever packs")
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ gettext("Used rounds")
assert html =~ gettext("Total ever rounds")
assert html =~ gettext("Used packs")
assert html =~ gettext("Total ever packs")
assert html =~ "20"
assert html =~ "0"
assert html =~ "1"
shot_group_fixture(%{"count" => 5}, current_user, ammo_group)
{:ok, show_live, _html} = live(conn, Routes.ammo_type_index_path(conn, :index))
html = show_live |> element("[data-qa=\"toggle_show_used\"]") |> render_click()
assert html =~ "15"
assert html =~ "5"
end
end
describe "Show ammo type" do describe "Show ammo type" do
setup [:register_and_log_in_user, :create_ammo_type] setup [:register_and_log_in_user, :create_ammo_type]

View File

@ -55,7 +55,7 @@ defmodule CanneryWeb.ContainerLiveTest do
%{ammo_group: ammo_group, shot_group: shot_group} %{ammo_group: ammo_group, shot_group: shot_group}
end end
describe "Index" do describe "Index regular" do
setup [:register_and_log_in_user, :create_container] setup [:register_and_log_in_user, :create_container]
test "lists all containers", %{conn: conn, container: container} do test "lists all containers", %{conn: conn, container: container} do
@ -114,6 +114,63 @@ defmodule CanneryWeb.ContainerLiveTest do
assert html =~ "some updated location" assert html =~ "some updated location"
end end
test "clones container in listing", %{
conn: conn,
current_user: current_user,
container: container
} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click()
assert html =~ gettext("New Container")
assert html =~ "some location"
assert_patch(index_live, Routes.container_index_path(conn, :clone, container))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form", container: @create_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :index))
container = container.id |> Containers.get_container!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name)
assert html =~ "some location"
end
test "clones container in listing with updates", %{
conn: conn,
current_user: current_user,
container: container
} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
assert index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() =~
gettext("New Container")
assert_patch(index_live, Routes.container_index_path(conn, :clone, container))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form",
container: Map.merge(@create_attrs, %{location: "some updated location"})
)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :index))
container = container.id |> Containers.get_container!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name)
assert html =~ "some updated location"
end
test "deletes container in listing", %{conn: conn, container: container} do test "deletes container in listing", %{conn: conn, container: container} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index)) {:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
@ -122,6 +179,130 @@ defmodule CanneryWeb.ContainerLiveTest do
end end
end end
describe "Index table" do
setup [:register_and_log_in_user, :create_container]
test "lists all containers", %{conn: conn, container: container} do
{:ok, _index_live, html} = live(conn, Routes.container_index_path(conn, :table))
assert html =~ gettext("Containers")
assert html =~ container.location
end
test "saves new container", %{conn: conn, container: container} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table))
assert index_live |> element("a", dgettext("actions", "New Container")) |> render_click() =~
gettext("New Container")
assert_patch(index_live, Routes.container_index_path(conn, :new))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form", container: @create_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :table))
assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name)
assert html =~ "some location"
end
test "updates container in listing", %{
conn: conn,
current_user: current_user,
container: container
} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table))
assert index_live |> element("[data-qa=\"edit-#{container.id}\"]") |> render_click() =~
gettext("Edit %{name}", name: container.name)
assert_patch(index_live, Routes.container_index_path(conn, :edit, container))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form", container: @update_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :table))
container = container.id |> Containers.get_container!(current_user)
assert html =~ dgettext("prompts", "%{name} updated successfully", name: container.name)
assert html =~ "some updated location"
end
test "clones container in listing", %{
conn: conn,
current_user: current_user,
container: container
} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
html = index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click()
assert html =~ gettext("New Container")
assert html =~ "some location"
assert_patch(index_live, Routes.container_index_path(conn, :clone, container))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form", container: @create_attrs)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :index))
container = container.id |> Containers.get_container!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name)
assert html =~ "some location"
end
test "clones container in listing with updates", %{
conn: conn,
current_user: current_user,
container: container
} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :index))
assert index_live |> element("[data-qa=\"clone-#{container.id}\"]") |> render_click() =~
gettext("New Container")
assert_patch(index_live, Routes.container_index_path(conn, :clone, container))
# assert index_live
# |> form("#container-form", container: @invalid_attrs)
# |> render_change() =~ dgettext("errors", "can't be blank")
{:ok, _view, html} =
index_live
|> form("#container-form",
container: Map.merge(@create_attrs, %{location: "some updated location"})
)
|> render_submit()
|> follow_redirect(conn, Routes.container_index_path(conn, :index))
container = container.id |> Containers.get_container!(current_user)
assert html =~ dgettext("prompts", "%{name} created successfully", name: container.name)
assert html =~ "some updated location"
end
test "deletes container in listing", %{conn: conn, container: container} do
{:ok, index_live, _html} = live(conn, Routes.container_index_path(conn, :table))
assert index_live |> element("[data-qa=\"delete-#{container.id}\"]") |> render_click()
refute has_element?(index_live, "#container-#{container.id}")
end
end
describe "Show" do describe "Show" do
setup [:register_and_log_in_user, :create_container] setup [:register_and_log_in_user, :create_container]