diff --git a/lib/mv_web/live/member_live/show.ex b/lib/mv_web/live/member_live/show.ex index f283a2c..e646c68 100644 --- a/lib/mv_web/live/member_live/show.ex +++ b/lib/mv_web/live/member_live/show.ex @@ -179,7 +179,7 @@ defmodule MvWeb.MemberLive.Show do value={MembershipFeeHelpers.format_interval(@member.membership_fee_type.interval)} class="w-28" /> - <.data_field label={gettext("Status")} class="w-24"> + <.data_field label={gettext("Last Cycle")} class="w-28"> <%= if @member.last_cycle_status do %> <% status = @member.last_cycle_status %> @@ -189,6 +189,16 @@ defmodule MvWeb.MemberLive.Show do {gettext("No cycles")} <% end %> + <.data_field label={gettext("Current Cycle")} class="w-28"> + <%= if @member.current_cycle_status do %> + <% status = @member.current_cycle_status %> + + {format_status_label(status)} + + <% else %> + {gettext("No cycles")} + <% end %> + <% else %>
@@ -230,9 +240,13 @@ defmodule MvWeb.MemberLive.Show do member = Ash.read_one!(query) - # Calculate last cycle status from loaded cycles + # Calculate last and current cycle status from loaded cycles last_cycle_status = get_last_cycle_status(member) - member = Map.put(member, :last_cycle_status, last_cycle_status) + current_cycle_status = get_current_cycle_status(member) + member = + member + |> Map.put(:last_cycle_status, last_cycle_status) + |> Map.put(:current_cycle_status, current_cycle_status) {:noreply, socket @@ -312,6 +326,13 @@ defmodule MvWeb.MemberLive.Show do end end + defp get_current_cycle_status(member) do + case MembershipFeeHelpers.get_current_cycle(member) do + nil -> nil + cycle -> cycle.status + end + end + defp format_address(member) do street_part = [member.street, member.house_number]