From fb1a9e9c5a33c743cbf553dfb21a5d1933164f38 Mon Sep 17 00:00:00 2001
From: vgZerst <36623732+vgZerst@users.noreply.github.com>
Date: Fri, 3 Feb 2023 23:04:00 -0600
Subject: [PATCH] WebHost: add checks percent done column to tracker (#1376)
* WebHost: add checks percent done column to tracker
* WebHost: add checks percent done column to tracker
---
WebHostLib/templates/tracker.html | 2 ++
WebHostLib/tracker.py | 10 ++++++++--
2 files changed, 10 insertions(+), 2 deletions(-)
diff --git a/WebHostLib/templates/tracker.html b/WebHostLib/templates/tracker.html
index 0f6fe12f..96148e34 100644
--- a/WebHostLib/templates/tracker.html
+++ b/WebHostLib/templates/tracker.html
@@ -98,6 +98,7 @@
{{ area }} |
{%- endif -%}
{%- endfor -%}
+ % |
Last Activity |
@@ -140,6 +141,7 @@
{% if inventory[team][player][big_key_ids[area]] %}✔️{% endif %} |
{%- endif -%}
{%- endfor -%}
+ {{ percent_total_checks_done[team][player] }} |
{%- if activity_timers[(team, player)] -%}
{{ activity_timers[(team, player)].total_seconds() }} |
{%- else -%}
diff --git a/WebHostLib/tracker.py b/WebHostLib/tracker.py
index 68a40a32..c0b83e4d 100644
--- a/WebHostLib/tracker.py
+++ b/WebHostLib/tracker.py
@@ -1232,6 +1232,11 @@ def getTracker(tracker: UUID):
for playernumber in range(1, len(team) + 1) if playernumber not in groups}
for teamnumber, team in enumerate(names)}
+ percent_total_checks_done = {teamnumber: {playernumber: 0
+ for playernumber in range(1, len(team) + 1) if playernumber not in groups}
+ for teamnumber, team in enumerate(names)}
+
+
hints = {team: set() for team in range(len(names))}
if room.multisave:
multisave = restricted_loads(room.multisave)
@@ -1259,6 +1264,7 @@ def getTracker(tracker: UUID):
attribute_item(inventory, team, recipient, item)
checks_done[team][player][player_location_to_area[player][location]] += 1
checks_done[team][player]["Total"] += 1
+ percent_total_checks_done[team][player] = int(checks_done[team][player]["Total"] / seed_checks_in_area[player]["Total"] * 100) if seed_checks_in_area[player]["Total"] else 100
for (team, player), game_state in multisave.get("client_game_state", {}).items():
if player in groups:
@@ -1303,8 +1309,8 @@ def getTracker(tracker: UUID):
return render_template("tracker.html", inventory=inventory, get_item_name_from_id=lookup_any_item_id_to_name,
lookup_id_to_name=Items.lookup_id_to_name, player_names=player_names,
tracking_names=tracking_names, tracking_ids=tracking_ids, room=room, icons=alttp_icons,
- multi_items=multi_items, checks_done=checks_done, ordered_areas=ordered_areas,
- checks_in_area=seed_checks_in_area, activity_timers=activity_timers,
+ multi_items=multi_items, checks_done=checks_done, percent_total_checks_done=percent_total_checks_done,
+ ordered_areas=ordered_areas, checks_in_area=seed_checks_in_area, activity_timers=activity_timers,
key_locations=group_key_locations, small_key_ids=small_key_ids, big_key_ids=big_key_ids,
video=video, big_key_locations=group_big_key_locations,
hints=hints, long_player_names=long_player_names)