refactor(web): use canonical DateFormatter for all date display

This commit is contained in:
Moritz 2026-06-16 15:23:52 +02:00 committed by moritz
parent ea105186a5
commit 18bf4dab2b
2 changed files with 7 additions and 18 deletions

View file

@ -11,6 +11,7 @@ defmodule MvWeb.Helpers.MembershipFeeHelpers do
alias Mv.Membership.Member alias Mv.Membership.Member
alias Mv.MembershipFees.CalendarCycles alias Mv.MembershipFees.CalendarCycles
alias Mv.MembershipFees.MembershipFeeCycle alias Mv.MembershipFees.MembershipFeeCycle
alias MvWeb.Helpers.DateFormatter
@doc """ @doc """
Formats a decimal amount as currency string. Formats a decimal amount as currency string.
@ -98,8 +99,8 @@ defmodule MvWeb.Helpers.MembershipFeeHelpers do
@spec format_cycle_range(Date.t(), :monthly | :quarterly | :half_yearly | :yearly) :: String.t() @spec format_cycle_range(Date.t(), :monthly | :quarterly | :half_yearly | :yearly) :: String.t()
def format_cycle_range(cycle_start, interval) do def format_cycle_range(cycle_start, interval) do
cycle_end = CalendarCycles.calculate_cycle_end(cycle_start, interval) cycle_end = CalendarCycles.calculate_cycle_end(cycle_start, interval)
start_str = format_date(cycle_start) start_str = DateFormatter.format_date(cycle_start)
end_str = format_date(cycle_end) end_str = DateFormatter.format_date(cycle_end)
"#{start_str} - #{end_str}" "#{start_str} - #{end_str}"
end end
@ -248,9 +249,4 @@ defmodule MvWeb.Helpers.MembershipFeeHelpers do
def status_icon(:paid), do: "hero-check-circle" def status_icon(:paid), do: "hero-check-circle"
def status_icon(:unpaid), do: "hero-x-circle" def status_icon(:unpaid), do: "hero-x-circle"
def status_icon(:suspended), do: "hero-pause-circle" def status_icon(:suspended), do: "hero-pause-circle"
# Private helper function for date formatting
defp format_date(%Date{} = date) do
Calendar.strftime(date, "%d.%m.%Y")
end
end end

View file

@ -28,6 +28,7 @@ defmodule MvWeb.MemberLive.Show do
alias Mv.Membership.CustomFieldValue alias Mv.Membership.CustomFieldValue
alias Mv.Membership.Member, as: MemberResource alias Mv.Membership.Member, as: MemberResource
alias Mv.Vereinfacht.Client, as: VereinfachtClient alias Mv.Vereinfacht.Client, as: VereinfachtClient
alias MvWeb.Helpers.DateFormatter
alias MvWeb.Helpers.MemberHelpers alias MvWeb.Helpers.MemberHelpers
alias MvWeb.Helpers.MembershipFeeHelpers alias MvWeb.Helpers.MembershipFeeHelpers
alias Phoenix.HTML.Engine, as: HTMLEngine alias Phoenix.HTML.Engine, as: HTMLEngine
@ -159,12 +160,12 @@ defmodule MvWeb.MemberLive.Show do
<div class="flex gap-6"> <div class="flex gap-6">
<.data_field <.data_field
label={gettext("Join Date")} label={gettext("Join Date")}
value={format_date(@member.join_date)} value={DateFormatter.format_date(@member.join_date)}
class="w-28" class="w-28"
/> />
<.data_field <.data_field
label={gettext("Exit Date")} label={gettext("Exit Date")}
value={format_date(@member.exit_date)} value={DateFormatter.format_date(@member.exit_date)}
class="w-28" class="w-28"
/> />
</div> </div>
@ -719,14 +720,6 @@ defmodule MvWeb.MemberLive.Show do
end end
end end
defp format_date(nil), do: nil
defp format_date(%Date{} = date) do
Calendar.strftime(date, "%d.%m.%Y")
end
defp format_date(date), do: to_string(date)
# Finds custom field value for a given custom field id # Finds custom field value for a given custom field id
# Returns the value (not the CustomFieldValue struct) or nil # Returns the value (not the CustomFieldValue struct) or nil
defp find_custom_field_value(nil, _custom_field_id), do: nil defp find_custom_field_value(nil, _custom_field_id), do: nil
@ -760,7 +753,7 @@ defmodule MvWeb.MemberLive.Show do
end end
defp format_custom_field_value(%Date{} = date, :date) do defp format_custom_field_value(%Date{} = date, :date) do
Calendar.strftime(date, "%d.%m.%Y") DateFormatter.format_date(date)
end end
defp format_custom_field_value(value, :email) when is_binary(value) do defp format_custom_field_value(value, :email) when is_binary(value) do