feat(hunt): track walking distance via GPS, show live locations on map
Docker Image CI / test (push) Failing after 41s
Docker Image CI / deploy (push) Skipped
Tests / unit (push) Failing after 36s
Tests / integration (push) Successful in 1m34s

Add foreground-only GPS distance tracking for hunts
This commit is contained in:
2026-09-27 20:55:58 +02:00
parent a0fc836c05
commit 61cc516f47
43 changed files with 2313 additions and 24 deletions
+38
View File
@@ -90,6 +90,7 @@
"back_home": "Back home",
"back_to_hunt": "Back to Hunt",
"cancel": "Cancel",
"distance": "Distance",
"join": "Join",
"login_first": "Login first",
"no_pictures": "No pictures has been submitted yet :(",
@@ -118,6 +119,7 @@
"start": "Start",
"success": "Hunt created successfully!",
"title": "Create a new Hunt",
"track_distance": "Track walking distance",
"virtual": "Virtual hunt"
},
"diashow": {
@@ -166,6 +168,17 @@
"teams": "Teams",
"title": "Hunts",
"total_points": "Total points: {score}",
"tracking": {
"consent": "Record my walking distance",
"consent_explain": "While this is on, your location is recorded in the background while this hunt page is open and used to calculate the distance you walked. Nothing is recorded when the tab is hidden or you pause. This allows us to monitor where the teams are.",
"last_fix": "last fix {ago}",
"pause": "Pause",
"resume": "Resume",
"status_paused": "Paused",
"status_tracking": "Tracking",
"title": "Walking distance",
"unsupported": "Geolocation is not supported by your browser."
},
"your_team": "Your team:"
},
"imprint": {
@@ -188,6 +201,21 @@
"step_win_text": "Collect points, climb the leaderboard and celebrate in the showcase.",
"step_win_title": "Win points"
},
"map": {
"accuracy": "Accuracy",
"last_fix": "last fix {ago}",
"last_updated": "Last updated: {time}",
"layer_answers": "Answers",
"layer_positions": "Live positions",
"member": "Member",
"nav": "Live Map",
"no_teams": "No teams yet.",
"open_quest_admin": "Open quest admin",
"roster": "Teams & users",
"team": "Team",
"time": "Time",
"title": "Live Map"
},
"pictures": {
"filter_quest": "Filter pictures by quests",
"filter_team": "Filter pictures by teams",
@@ -197,6 +225,11 @@
},
"profile": {
"admins_and_creators": "Admins & Creators",
"distances": {
"no_distances": "No distances recorded yet.",
"title": "Your distances",
"total": "Total: {distance}"
},
"new_password": "New password",
"no_pictures": "No pictures uploaded yet.",
"old_password": "Old password",
@@ -220,12 +253,15 @@
"finalize": "Finalize answer",
"finalize_explain": "This allows the admins to review your answer and give you points. You cannot change your answer afterwards!",
"last_update": "Last update: {date} by {name}",
"location_unavailable": "Your location could not be determined, the answer is submitted without it.",
"private_image": "Private image",
"private_image_explain": "Private images are hidden from the public gallery, diashow and showcase. Admins can still see them for review.",
"required_answer": "Required Answer",
"review": "Review",
"reviewed_by": "by {name} at {date}",
"score": "Score:",
"send_location": "Send current location",
"send_location_explain": "Attaches your current GPS position to this answer.",
"submission": "Submission",
"upload_compress": "Compressing image...",
"upload_title": "Uploading answer...",
@@ -270,6 +306,7 @@
"showcase": {
"answers": "Answers",
"crew": "Crew",
"distance": "Distance",
"first_place": "First place",
"leaderboard": "Leaderboard",
"pictures": "Pictures",
@@ -280,6 +317,7 @@
"table": {
"answers": "Answers",
"description": "Description",
"distance": "Distance",
"name": "Name",
"place": "Place",
"score": "Score"