From 3bba1a62899e378741c13a542fc36afce137fcfb Mon Sep 17 00:00:00 2001 From: Graham McIntire Date: Wed, 11 Mar 2026 13:35:43 -0500 Subject: [PATCH] fix: display on-call user names instead of emails on schedule index Update add_member test to use phx-change select instead of form submit. --- lib/towerops_web/live/schedule_live/index.ex | 12 +++++++++++- lib/towerops_web/live/schedule_live/index.html.heex | 2 +- test/towerops_web/live/schedule_live_test.exs | 7 ++----- 3 files changed, 14 insertions(+), 7 deletions(-) diff --git a/lib/towerops_web/live/schedule_live/index.ex b/lib/towerops_web/live/schedule_live/index.ex index 3cac9942..87c952fe 100644 --- a/lib/towerops_web/live/schedule_live/index.ex +++ b/lib/towerops_web/live/schedule_live/index.ex @@ -39,10 +39,20 @@ defmodule ToweropsWeb.ScheduleLive.Index do schedules_with_on_call = Enum.map(schedules, fn schedule -> on_call = OnCall.who_is_on_call(schedule.id) - Map.put(schedule, :current_on_call, on_call) + + schedule + |> Map.put(:current_on_call, on_call) + |> Map.put(:current_on_call_name, display_name(on_call)) end) assign(socket, :schedules, schedules_with_on_call) end end + + defp display_name(%{first_name: first, last_name: last}) when first != nil and last != nil do + "#{first} #{last}" + end + + defp display_name(%{email: email}), do: email + defp display_name(nil), do: nil end diff --git a/lib/towerops_web/live/schedule_live/index.html.heex b/lib/towerops_web/live/schedule_live/index.html.heex index 2afa6b2f..5aefa306 100644 --- a/lib/towerops_web/live/schedule_live/index.html.heex +++ b/lib/towerops_web/live/schedule_live/index.html.heex @@ -152,7 +152,7 @@ <%= if schedule.current_on_call do %> - {schedule.current_on_call.email} + {schedule.current_on_call_name} <% else %> {t("No one")} diff --git a/test/towerops_web/live/schedule_live_test.exs b/test/towerops_web/live/schedule_live_test.exs index e7536c8a..e428e82c 100644 --- a/test/towerops_web/live/schedule_live_test.exs +++ b/test/towerops_web/live/schedule_live_test.exs @@ -245,11 +245,8 @@ defmodule ToweropsWeb.ScheduleLiveTest do {:ok, view, _html} = live(conn, ~p"/schedules/#{schedule.id}") view - |> form("form[phx-submit='add_member']", %{ - layer_id: layer.id, - user_id: user.id - }) - |> render_submit() + |> element("select[phx-change='add_member'][phx-value-layer_id='#{layer.id}']") + |> render_change(%{"user_id" => user.id, "layer_id" => layer.id}) html = render(view)