diff --git a/lib/teiserver_web/live/battles/match/give_accolade/index.ex b/lib/teiserver_web/live/battles/match/give_accolade/index.ex
deleted file mode 100644
index 85694e8df..000000000
--- a/lib/teiserver_web/live/battles/match/give_accolade/index.ex
+++ /dev/null
@@ -1,131 +0,0 @@
-defmodule TeiserverWeb.Battle.GiveAccoladeLive.Index do
- alias Teiserver.Account.AccoladeLib
- use TeiserverWeb, :live_view
- alias Teiserver.{Account}
- alias Teiserver.Config
- import Central.Helpers.ComponentHelper
-
- @impl true
- def mount(_params, _session, socket) do
- badge_types =
- Account.list_accolade_types()
-
- gift_limit = Config.get_site_config_cache("teiserver.Accolade gift limit")
- gift_window = Config.get_site_config_cache("teiserver.Accolade gift window")
-
- socket =
- socket
- |> assign(:view_colour, Teiserver.Account.UserLib.colours())
- |> assign(:user, nil)
- |> assign(:stage, :loading)
- |> assign(:extra_text, "")
- |> assign(:badge_types, badge_types)
- |> assign(:gift_limit, gift_limit)
- |> assign(:gift_window, gift_window)
- |> add_breadcrumb(name: "Give Accolade", url: ~p"/")
-
- {:ok, socket}
- end
-
- @impl true
- def handle_params(%{"user_id" => user_id, "id" => match_id}, _url, socket) do
- user = Account.get_user_by_id(user_id)
- {match_id, _} = Integer.parse(match_id)
-
- socket =
- socket
- |> assign(:id_str, user_id)
- |> assign(:user, user)
- |> assign(:stage, :form)
- |> assign(:match_id, match_id)
- |> allowed_to_use_form
-
- {:noreply, socket}
- end
-
- defp allowed_to_use_form(%{assigns: %{current_user: current_user, user: target_user}} = socket) do
- {allowed, failure_reason} =
- cond do
- current_user == nil ->
- {false, "You must be logged in to give an accolade to someone"}
-
- current_user.id == target_user.id ->
- {false, "You cannot give accolades to yourself"}
-
- true ->
- {true, nil}
- end
-
- if allowed do
- socket
- |> assign_gift_history()
- else
- socket
- |> assign(:failure_reason, failure_reason)
- |> assign(:stage, :not_allowed)
- end
- end
-
- defp assign_gift_history(socket) do
- gift_window = socket.assigns.gift_window
- user_id = socket.assigns.current_user.id
- gift_limit = socket.assigns.gift_limit
- recipient_id = socket.assigns.user.id
- match_id = socket.assigns.match_id
-
- with {:ok, gift_count} <- check_gift_count(user_id, gift_limit, gift_window),
- :ok <- check_already_gifted(user_id, recipient_id, match_id) do
- socket
- |> assign(:gift_count, gift_count)
- else
- {:error, reason} ->
- socket
- |> assign(
- :failure_reason,
- reason
- )
- |> assign(:stage, :not_allowed)
- end
- end
-
- defp check_gift_count(user_id, gift_limit, gift_window) do
- gift_count = AccoladeLib.get_number_of_gifted_accolades(user_id, gift_window)
-
- if gift_count >= gift_limit do
- {:error, "You can only give #{gift_limit} accolades every #{gift_window} days."}
- else
- {:ok, gift_count}
- end
- end
-
- defp check_already_gifted(user_id, recipient_id, match_id) do
- if AccoladeLib.does_accolade_exist?(user_id, recipient_id, match_id) do
- {:error, "You have already given an accolade to this user for this match."}
- else
- :ok
- end
- end
-
- @impl true
- def handle_event("give-accolade", args, socket) do
- %{"id" => badge_id} = args
-
- recipient_id = socket.assigns.user.id
-
- current_user = socket.assigns.current_user
-
- match_id = socket.assigns.match_id
-
- Account.create_accolade(%{
- recipient_id: recipient_id,
- giver_id: current_user.id,
- match_id: match_id,
- inserted_at: Timex.now(),
- badge_type_id: badge_id
- })
-
- socket = socket |> assign(:stage, :complete)
-
- {:noreply, socket}
- end
-end
diff --git a/lib/teiserver_web/live/battles/match/give_accolade/index.html.heex b/lib/teiserver_web/live/battles/match/give_accolade/index.html.heex
deleted file mode 100644
index df766d197..000000000
--- a/lib/teiserver_web/live/battles/match/give_accolade/index.html.heex
+++ /dev/null
@@ -1,79 +0,0 @@
-
diff --git a/lib/teiserver_web/live/battles/match/show.ex b/lib/teiserver_web/live/battles/match/show.ex
index d1e20edc7..5163cdb0c 100644
--- a/lib/teiserver_web/live/battles/match/show.ex
+++ b/lib/teiserver_web/live/battles/match/show.ex
@@ -1,9 +1,13 @@
defmodule TeiserverWeb.Battle.MatchLive.Show do
@moduledoc false
use TeiserverWeb, :live_view
- alias Teiserver.{Battle, Game, Telemetry}
+ alias Teiserver.{Account, Battle, Game, Telemetry}
alias Teiserver.Battle.{MatchLib, BalanceLib}
alias Teiserver.Helper.NumberHelper
+ alias Teiserver.Config
+ alias Teiserver.Account.AccoladeLib
+ import Central.Helpers.ComponentHelper
+ import Teiserver.Helper.ColourHelper
@impl true
def mount(_params, _session, socket) do
@@ -17,6 +21,7 @@ defmodule TeiserverWeb.Battle.MatchLive.Show do
BalanceLib.get_allowed_algorithms(true)
)
|> assign(:algorithm, BalanceLib.get_default_algorithm())
+ |> assign(:give_accolade, nil)
{:ok, socket}
end
@@ -451,4 +456,185 @@ defmodule TeiserverWeb.Battle.MatchLive.Show do
|> assign(:algorithm, value)
|> get_match()}
end
+
+ def handle_event(
+ "give-accolade",
+ %{"recipient_id" => recipient_id, "recipient_name" => recipient_name},
+ socket
+ ) do
+ badge_types =
+ Account.list_accolade_types()
+
+ gift_limit = Config.get_site_config_cache("teiserver.Accolade gift limit")
+ gift_window = Config.get_site_config_cache("teiserver.Accolade gift window")
+ user_id = socket.assigns.current_user.id
+ match_id = socket.assigns.id
+ {recipient_id, _} = Integer.parse(recipient_id)
+
+ with {:ok, gift_count} <-
+ check_gift_count(socket.assigns.current_user.id, gift_limit, gift_window),
+ :ok <- check_already_gifted(user_id, recipient_id, match_id) do
+ {:noreply,
+ socket
+ |> assign(:give_accolade, %{
+ recipient: %{
+ id: recipient_id,
+ name: recipient_name
+ },
+ stage: :form,
+ badge_types: badge_types,
+ gift_window: gift_window,
+ gift_count: gift_count,
+ gift_limit: gift_limit
+ })}
+ else
+ {:error, reason} ->
+ {:noreply,
+ socket
+ |> assign(:give_accolade, %{
+ recipient: %{
+ id: recipient_id,
+ name: recipient_name
+ },
+ stage: :not_allowed,
+ failure_reason: reason
+ })}
+ end
+ end
+
+ def handle_event(
+ "give-accolade-submit",
+ %{"badgeid" => badge_id},
+ socket
+ ) do
+ recipient_id = socket.assigns.give_accolade.recipient.id
+ current_user = socket.assigns.current_user
+ match_id = socket.assigns.id
+
+ Account.create_accolade(%{
+ recipient_id: recipient_id,
+ giver_id: current_user.id,
+ match_id: match_id,
+ inserted_at: Timex.now(),
+ badge_type_id: badge_id
+ })
+
+ {:noreply,
+ socket
+ |> assign(:give_accolade, Map.put(socket.assigns.give_accolade, :stage, :complete))}
+ end
+
+ def handle_event(
+ "return-to-match",
+ _,
+ socket
+ ) do
+ {:noreply,
+ socket
+ |> assign(:give_accolade, nil)}
+ end
+
+ defp check_gift_count(user_id, gift_limit, gift_window) do
+ gift_count = AccoladeLib.get_number_of_gifted_accolades(user_id, gift_window)
+
+ if gift_count >= gift_limit do
+ {:error, "You can only give #{gift_limit} accolades every #{gift_window} days."}
+ else
+ {:ok, gift_count}
+ end
+ end
+
+ defp check_already_gifted(user_id, recipient_id, match_id) do
+ if AccoladeLib.does_accolade_exist?(user_id, recipient_id, match_id) do
+ {:error, "You have already given an accolade to this user for this match."}
+ else
+ :ok
+ end
+ end
+
+ def give_accolade_form(assigns) do
+ ~H"""
+
+ """
+ end
end
diff --git a/lib/teiserver_web/live/battles/match/show.html.heex b/lib/teiserver_web/live/battles/match/show.html.heex
index 06af25d8f..18caea656 100644
--- a/lib/teiserver_web/live/battles/match/show.html.heex
+++ b/lib/teiserver_web/live/battles/match/show.html.heex
@@ -19,262 +19,148 @@
-
- <%= @match_name %>
- <%= if @match.winning_team != nil do %>
- Team <%= @match.winning_team + 1 %> won
+ <%= if @give_accolade do %>
+ <.give_accolade_form
+ recipient={@give_accolade.recipient}
+ stage={@give_accolade.stage}
+ badge_types={@give_accolade[:badge_types]}
+ gift_window={@give_accolade[:gift_window]}
+ gift_count={@give_accolade[:gift_count]}
+ gift_limit={@give_accolade[:gift_limit]}
+ current_user={@current_user}
+ failure_reason={@give_accolade[:failure_reason]}
+ />
+ <% else %>
+
+ <%= @match_name %>
+ <%= if @match.winning_team != nil do %>
+ Team <%= @match.winning_team + 1 %> won
+ <% end %>
+
+
+
+ <%= if @rating_status != nil and allow?(@current_user, "Tester") do %>
+ <% {alert_type, status} = @rating_status %>
+
+ <%= status %>
+
+
+
<% end %>
-
-
-
- <%= if @rating_status != nil and allow?(@current_user, "Tester") do %>
- <% {alert_type, status} = @rating_status %>
-
- <%= status %>
-
-
+
+
+ Match data missing!
- <% end %>
-
- Match data missing!
-
+ <.tab_header>
+ <.tab_nav url={~p"/battle/#{@match.id}/overview"} selected={@tab == :overview}>
+
Overview
+
- <.tab_header>
- <.tab_nav url={~p"/battle/#{@match.id}/overview"} selected={@tab == :overview}>
-
Overview
-
+ <.tab_nav url={~p"/battle/#{@match.id}/players"} selected={@tab == :players}>
+
Players
+
- <.tab_nav url={~p"/battle/#{@match.id}/players"} selected={@tab == :players}>
-
Players
-
+ <%= if @rating_logs != %{} and allow?(@current_user, "Overwatch") do %>
+ <.tab_nav url={~p"/battle/#{@match.id}/ratings"} selected={@tab == :ratings}>
+
Ratings
+
+ <% end %>
- <%= if @rating_logs != %{} and allow?(@current_user, "Overwatch") do %>
- <.tab_nav url={~p"/battle/#{@match.id}/ratings"} selected={@tab == :ratings}>
-
Ratings
-
- <% end %>
+ <%= if @rating_logs != %{} and allow_any?(@current_user, ["Overwatch", "Tester"]) do %>
+ <.tab_nav url={~p"/battle/#{@match.id}/balance"} selected={@tab == :balance}>
+
Balance
+
+ <% end %>
- <%= if @rating_logs != %{} and allow_any?(@current_user, ["Overwatch", "Tester"]) do %>
- <.tab_nav url={~p"/battle/#{@match.id}/balance"} selected={@tab == :balance}>
-
Balance
-
- <% end %>
+ <%= if @events_by_type != %{} and allow?(@current_user, "Overwatch") do %>
+ <.tab_nav url={~p"/battle/#{@match.id}/events"} selected={@tab == :events}>
+
+ Events
+
+ <% end %>
+
- <%= if @events_by_type != %{} and allow?(@current_user, "Overwatch") do %>
- <.tab_nav url={~p"/battle/#{@match.id}/events"} selected={@tab == :events}>
-
- Events
-
- <% end %>
-
+
+
+
+ Team count: <%= @match.team_count %>
+
-
-
-
- Team count: <%= @match.team_count %>
-
+
+ Team size: <%= @match.team_size %>
+
-
- Team size: <%= @match.team_size %>
-
+
+ Started: <%= date_to_str(@match.started, format: :ymd_hms, tz: @tz) %>
+
-
- Started: <%= date_to_str(@match.started, format: :ymd_hms, tz: @tz) %>
-
+
+ Finished: <%= date_to_str(@match.finished, format: :ymd_hms, tz: @tz) %>
+
-
-
Finished: <%= date_to_str(@match.finished, format: :ymd_hms, tz: @tz) %>
+ <%= if allow?(@current_user, "admin.dev") do %>
+
+ Tag count: <%= Map.keys(@match.tags) |> Enum.count() %>
+
+ <% end %>
- <%= if allow?(@current_user, "admin.dev") do %>
+
- Tag count: <%= Map.keys(@match.tags) |> Enum.count() %>
+ Host: <%= @match.founder.name %>
- <% end %>
-
-
-
- Host: <%= @match.founder.name %>
-
+
+ Duration: <%= duration_to_str_short(@match.game_duration) %>
+
-
-
Duration: <%= duration_to_str_short(@match.game_duration) %>
+
+ Bot count: <%= Enum.count(@match.bots) %>
+
+
-
- Bot count: <%= Enum.count(@match.bots) %>
-
+ <%= if allow?(@current_user, "Moderator") do %>
+ Match data
Match bots
+ <% end %>
-
-
- <%= if allow?(@current_user, "Moderator") do %>
- Match data
Match bots
- <% end %>
-
-
-
-
-
-
- Damage
- Metal
- Energy
-
-
-
-
-
- Name & Party
- Team
-
- Rating
- Uncertainty
- Num Matches
- Play
-
- Done
- Taken
-
- Prod
- Used
-
- Prod
- Used
-
-
-
-
-
- <%= for m <- @members do %>
- <% rating = @rating_logs[m.user_id]
- {party_colour, party_idx} = Map.get(@parties, m.party_id, {nil, nil})
-
- play_percentage =
- if m.exit_status != :stayed do
- (m.left_after / @match.game_duration * 100) |> round
- end %>
+
+
+
-
- <%= if m.team_id == @match.winning_team do %>
-
- <% end %>
-
+
+ Damage
+ Metal
+ Energy
-
- <%= m.user.name %>
-
+
+
- <%= if party_colour do %>
-
-
-
- <% else %>
-
- <% end %>
+
+ Name & Party
+ Team
- <%= m.team_id + 1 %>
+ Rating
+ Uncertainty
+ Num Matches
+ Play
-
- <%= if rating != nil do %>
- <%= rating.value["old_rating_value"]
- |> round(2) %>
- <% end %>
-
+ Done
+ Taken
-
- <%= if rating != nil do %>
- <%= rating.value["old_uncertainty"]
- |> round(2) %>
- <% end %>
-
+ Prod
+ Used
-
- <%= if rating != nil do %>
- <%= normalize(rating.value["old_num_matches"]) %>
- <% end %>
-
-
-
- <%= case m.exit_status do %>
- <% :stayed -> %>
- <% :early -> %>
-
- <%= play_percentage %>%
- <% :abandoned -> %>
-
- <%= play_percentage %>%
- <% :noshow -> %>
-
- <% end %>
-
-
- <%= normalize(m.stats["damageDealt"]) %>
- <%= normalize(m.stats["damageReceived"]) %>
-
- <%= normalize(m.stats["metalProduced"]) %>
- <%= normalize(m.stats["metalUsed"]) %>
-
- <%= normalize(m.stats["energyProduced"]) %>
- <%= normalize(m.stats["energyUsed"]) %>
-
-
-
-
-
- <% end %>
-
-
-
-
- <%= for m <- @prediction_text do %>
-
- <%= m.label %>
- <%= m.value %>
-
- <% end %>
-
-
-
+ Prod
+ Used
- <%= if allow?(@current_user, "Overwatch") do %>
-
-
-
-
- Name & Party
- Team
-
- Pre-game rating
- Post-game rating
- Change
+
@@ -282,21 +168,20 @@
<% rating = @rating_logs[m.user_id]
{party_colour, party_idx} = Map.get(@parties, m.party_id, {nil, nil})
- {text_class, icon} =
- cond do
- rating.value["rating_value_change"] > 0 -> {"text-success", "up"}
- rating.value["rating_value_change"] < 0 -> {"text-danger", "down"}
- true -> {"text-warning", "pause"}
+ play_percentage =
+ if m.exit_status != :stayed do
+ (m.left_after / @match.game_duration * 100) |> round
end %>
-
+
<%= if m.team_id == @match.winning_team do %>
-
+
<% end %>
-
-
-
+
<%= m.user.name %>
@@ -314,164 +199,296 @@
<%= m.team_id + 1 %>
- <%= (rating.value["rating_value"] - rating.value["rating_value_change"])
- |> round(2) %>
+ <%= if rating != nil do %>
+ <%= rating.value["old_rating_value"]
+ |> round(2) %>
+ <% end %>
- <%= rating.value["rating_value"] |> round(2) %>
-
-
- <%= rating.value["rating_value_change"] |> round(2) %>
+
+
+ <%= if rating != nil do %>
+ <%= rating.value["old_uncertainty"]
+ |> round(2) %>
+ <% end %>
+
+
+
+ <%= if rating != nil do %>
+ <%= normalize(rating.value["old_num_matches"]) %>
+ <% end %>
+
+
+
+ <%= case m.exit_status do %>
+ <% :stayed -> %>
+ <% :early -> %>
+
+ <%= play_percentage %>%
+ <% :abandoned -> %>
+
+ <%= play_percentage %>%
+ <% :noshow -> %>
+
+ <% end %>
+
+
+ <%= normalize(m.stats["damageDealt"]) %>
+ <%= normalize(m.stats["damageReceived"]) %>
+
+ <%= normalize(m.stats["metalProduced"]) %>
+ <%= normalize(m.stats["metalUsed"]) %>
+
+ <%= normalize(m.stats["energyProduced"]) %>
+ <%= normalize(m.stats["energyUsed"]) %>
+
+
+
<% end %>
-
- <% end %>
-
- <%= if allow_any?(@current_user, ["Overwatch", "Tester"]) do %>
-
-
-
-
-
Based on data at the time
-
-
+
-
- Team 1
-
- Rating: <%= @past_balance.ratings[1] |> round(2) %>
-
-
- St Dev: <%= @past_balance.stdevs[1] |> round(2) %>
-
-
-
- Team 2
-
- Rating: <%= @past_balance.ratings[2] |> round(2) %>
-
-
- St Dev: <%= @past_balance.stdevs[2] |> round(2) %>
-
-
-
-
- Deviation
- <%= @past_balance.deviation %>
-
-
- Time Taken (ms)
- <%= @past_balance.time_taken / 1000 %>
-
+ <%= for m <- @prediction_text do %>
+
+ <%= m.label %>
+ <%= m.value %>
+
+ <% end %>
+
-
-
-
-
-
-
- Name & Party
- Team
- Rating
- Uncertainty
-
-
-
- <%= for m <- @balanced_members do %>
- <% rating = @rating_logs[m.user_id]
- {party_colour, party_idx} = Map.get(@parties, m.party_id, {nil, nil}) %>
+ <%= if allow?(@current_user, "Overwatch") do %>
+
+
+
-
- <%= m.user.name %>
-
- <%= if party_colour do %>
-
-
+ Name & Party
+ Team
+
+ Pre-game rating
+ Post-game rating
+ Change
+
+
+
+ <%= for m <- @members do %>
+ <% rating = @rating_logs[m.user_id]
+ {party_colour, party_idx} = Map.get(@parties, m.party_id, {nil, nil})
+
+ {text_class, icon} =
+ cond do
+ rating.value["rating_value_change"] > 0 -> {"text-success", "up"}
+ rating.value["rating_value_change"] < 0 -> {"text-danger", "down"}
+ true -> {"text-warning", "pause"}
+ end %>
+
+
+ <%= if m.team_id == @match.winning_team do %>
+
+ <% end %>
- <% else %>
-
-
+
+
- <% end %>
- <%= m.team_id + 1 %>
-
- <%= if rating != nil do %>
+
+ <%= m.user.name %>
+
+
+ <%= if party_colour do %>
+
+
+
+ <% else %>
+
+
+
+ <% end %>
+
+ <%= m.team_id + 1 %>
+
+
<%= (rating.value["rating_value"] - rating.value["rating_value_change"])
|> round(2) %>
- <% end %>
+
+ <%= rating.value["rating_value"] |> round(2) %>
+
+
+ <%= rating.value["rating_value_change"] |> round(2) %>
+
+
+ <% end %>
+
+
+
+ <% end %>
+
+ <%= if allow_any?(@current_user, ["Overwatch", "Tester"]) do %>
+
+
+
+
+
Based on data at the time
+
+
+
+
+ Team 1
+
+ Rating: <%= @past_balance.ratings[1] |> round(2) %>
- <%= if rating != nil do %>
- <%= (rating.value["uncertainty"] - rating.value["uncertainty_change"])
- |> round(2) %>
- <% end %>
+ St Dev: <%= @past_balance.stdevs[1] |> round(2) %>
+
+
+
+ Team 2
+
+ Rating: <%= @past_balance.ratings[2] |> round(2) %>
+
+
+ St Dev: <%= @past_balance.stdevs[2] |> round(2) %>
- <% end %>
-
-
-
-
If balance we made using current ratings
-
-
-
- Team 1
- <%= @new_balance.ratings[1] |> round(2) %>
-
-
- Team 2
- <%= @new_balance.ratings[2] |> round(2) %>
-
-
- Deviation
- <%= @new_balance.deviation %>
-
-
- Time Taken (ms)
- <%= @new_balance.time_taken / 1000 %>
-
-
-
+
+ Deviation
+ <%= @past_balance.deviation %>
+
+
+ Time Taken (ms)
+ <%= @past_balance.time_taken / 1000 %>
+
+
+
-
-
- <% end %>
+
+
- <%= if allow?(@current_user, "Overwatch") do %>
-
-
-
-
By type
- <.table id="by_type" rows={@events_by_type} table_class="table-sm">
- <:col :let={{name, _}} label="Event"><%= name %>
- <:col :let={{_, count}} label="Count"><%= count %>
-
-
+
+
+
+ Name & Party
+ Team
+ Rating
+ Uncertainty
+
+
+
+ <%= for m <- @balanced_members do %>
+ <% rating = @rating_logs[m.user_id]
+ {party_colour, party_idx} = Map.get(@parties, m.party_id, {nil, nil}) %>
+
+
+ <%= m.user.name %>
+
+ <%= if party_colour do %>
+
+
+
+ <% else %>
+
+
+
+ <% end %>
+ <%= m.team_id + 1 %>
+
+ <%= if rating != nil do %>
+ <%= (rating.value["rating_value"] - rating.value["rating_value_change"])
+ |> round(2) %>
+ <% end %>
+
+
+ <%= if rating != nil do %>
+ <%= (rating.value["uncertainty"] - rating.value["uncertainty_change"])
+ |> round(2) %>
+ <% end %>
+
+
+ <% end %>
+
+
+
-
-
By team and type
- <.table id="by_type" rows={@events_by_team_and_type} table_class="table-sm">
- <:col :let={{{team, _}, _}} label="Team"><%= team + 1 %>
- <:col :let={{{_, name}, _}} label="Event"><%= name %>
- <:col :let={{_, count}} label="Count"><%= count %>
-
+
If balance we made using current ratings
+
+
+
+ Team 1
+ <%= @new_balance.ratings[1] |> round(2) %>
+
+
+ Team 2
+ <%= @new_balance.ratings[2] |> round(2) %>
+
+
+ Deviation
+ <%= @new_balance.deviation %>
+
+
+ Time Taken (ms)
+ <%= @new_balance.time_taken / 1000 %>
+
+
+
+
+
+
+ <% end %>
+
+ <%= if allow?(@current_user, "Overwatch") do %>
+
+
+
+
By type
+ <.table id="by_type" rows={@events_by_type} table_class="table-sm">
+ <:col :let={{name, _}} label="Event"><%= name %>
+ <:col :let={{_, count}} label="Count"><%= count %>
+
+
+
+
+
By team and type
+ <.table id="by_type" rows={@events_by_team_and_type} table_class="table-sm">
+ <:col :let={{{team, _}, _}} label="Team"><%= team + 1 %>
+ <:col :let={{{_, name}, _}} label="Event"><%= name %>
+ <:col :let={{_, count}} label="Count"><%= count %>
+
+
-
+ <% end %>
<% end %>
diff --git a/lib/teiserver_web/router.ex b/lib/teiserver_web/router.ex
index be8c5bb60..59145c283 100644
--- a/lib/teiserver_web/router.ex
+++ b/lib/teiserver_web/router.ex
@@ -310,7 +310,6 @@ defmodule TeiserverWeb.Router do
live "/:id/ratings", MatchLive.Show, :ratings
live "/:id/balance", MatchLive.Show, :balance
live "/:id/events", MatchLive.Show, :events
- live "/:id/user/:user_id/give_accolade", GiveAccoladeLive.Index
end
end