Membership Fee 6 - UI Components & LiveViews closes #280 #304

Open
moritz wants to merge 65 commits from feature/280_membership_fee_ui into main
Showing only changes of commit aece03c9c2 - Show all commits

View file

@ -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 %>
<span class={["badge", MembershipFeeHelpers.status_color(status)]}>
@ -189,6 +189,16 @@ defmodule MvWeb.MemberLive.Show do
<span class="badge badge-ghost">{gettext("No cycles")}</span>
<% end %>
</.data_field>
<.data_field label={gettext("Current Cycle")} class="w-28">
<%= if @member.current_cycle_status do %>
<% status = @member.current_cycle_status %>
<span class={["badge", MembershipFeeHelpers.status_color(status)]}>
{format_status_label(status)}
</span>
<% else %>
<span class="badge badge-ghost">{gettext("No cycles")}</span>
<% end %>
</.data_field>
</div>
<% else %>
<div class="text-base-content/70 italic">
@ -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]