Membership Fee 6 - UI Components & LiveViews closes #280 #304
1 changed files with 24 additions and 3 deletions
|
|
@ -179,7 +179,7 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
value={MembershipFeeHelpers.format_interval(@member.membership_fee_type.interval)}
|
value={MembershipFeeHelpers.format_interval(@member.membership_fee_type.interval)}
|
||||||
class="w-28"
|
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 %>
|
<%= if @member.last_cycle_status do %>
|
||||||
<% status = @member.last_cycle_status %>
|
<% status = @member.last_cycle_status %>
|
||||||
<span class={["badge", MembershipFeeHelpers.status_color(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>
|
<span class="badge badge-ghost">{gettext("No cycles")}</span>
|
||||||
<% end %>
|
<% end %>
|
||||||
</.data_field>
|
</.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>
|
</div>
|
||||||
<% else %>
|
<% else %>
|
||||||
<div class="text-base-content/70 italic">
|
<div class="text-base-content/70 italic">
|
||||||
|
|
@ -230,9 +240,13 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
|
|
||||||
member = Ash.read_one!(query)
|
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)
|
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,
|
{:noreply,
|
||||||
socket
|
socket
|
||||||
|
|
@ -312,6 +326,13 @@ defmodule MvWeb.MemberLive.Show do
|
||||||
end
|
end
|
||||||
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
|
defp format_address(member) do
|
||||||
street_part =
|
street_part =
|
||||||
[member.street, member.house_number]
|
[member.street, member.house_number]
|
||||||
|
|
|
||||||
Loading…
Add table
Add a link
Reference in a new issue