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)