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": "Zurück zur Startseite",
"back_to_hunt": "Zurück zum Hunt",
"cancel": "Abbrechen",
"distance": "Strecke",
"join": "Beitreten",
"login_first": "Erst anmelden",
"no_pictures": "Es wurden noch keine Bilder abgeschickt :(",
@@ -118,6 +119,7 @@
"start": "Start",
"success": "Hunt erfolgreich erstellt!",
"title": "Neuen Hunt erstellen",
"track_distance": "Gelaufene Strecke aufzeichnen",
"virtual": "Virtueller Hunt"
},
"diashow": {
@@ -166,6 +168,17 @@
"teams": "Teams",
"title": "Hunts",
"total_points": "Punktestand: {score}",
"tracking": {
"consent": "Meine gelaufene Strecke aufzeichnen",
"consent_explain": "Solange dies aktiv ist, wird dein Standort im Hintergrund aufgezeichnet, während diese Hunt-Seite geöffnet ist, und daraus die gelaufene Strecke berechnet. Wenn der Tab ausgeblendet ist oder du pausierst, wird nichts aufgezeichnet. Dies ermöglicht uns zu sehen, wo alle Teams unterwegs sind.",
"last_fix": "letzter Punkt {ago}",
"pause": "Pause",
"resume": "Fortsetzen",
"status_paused": "Pausiert",
"status_tracking": "Aufzeichnung läuft",
"title": "Gelaufene Strecke",
"unsupported": "Die Standortbestimmung wird von deinem Browser nicht unterstützt."
},
"your_team": "Dein Team:"
},
"imprint": {
@@ -188,6 +201,21 @@
"step_win_text": "Sammle Punkte, klettere die Rangliste hinauf und feiere in der Showcase.",
"step_win_title": "Punkte gewinnen"
},
"map": {
"accuracy": "Genauigkeit",
"last_fix": "letzte Position {ago}",
"last_updated": "Zuletzt aktualisiert: {time}",
"layer_answers": "Antworten",
"layer_positions": "Live-Positionen",
"member": "Mitglied",
"nav": "Live-Karte",
"no_teams": "Noch keine Teams.",
"open_quest_admin": "Quest-Administration öffnen",
"roster": "Teams & Spieler",
"team": "Team",
"time": "Zeit",
"title": "Live-Karte"
},
"pictures": {
"filter_quest": "Filtere Bilder nach Quests",
"filter_team": "Filtere Bilder nach Teams",
@@ -197,6 +225,11 @@
},
"profile": {
"admins_and_creators": "Admins & Ersteller",
"distances": {
"no_distances": "Noch keine Strecken aufgezeichnet.",
"title": "Deine Strecken",
"total": "Gesamt: {distance}"
},
"new_password": "Neues Passwort",
"no_pictures": "Noch keine Bilder hochgeladen.",
"old_password": "Altes Passwort",
@@ -220,12 +253,15 @@
"finalize": "Antwort finalisieren",
"finalize_explain": "Dies gibt den Admins die Möglichkeit deine Antwort zu bewerten und dir Punkte zu geben. Du kannst deine Antwort anschließend nicht mehr ändern!",
"last_update": "Letztes Update: {date} von {name}",
"location_unavailable": "Dein Standort konnte nicht ermittelt werden, die Antwort wird ohne ihn übermittelt.",
"private_image": "Privates Bild",
"private_image_explain": "Private Bilder werden in der öffentlichen Galerie, Diashow und im Showcase ausgeblendet. Admins können sie weiterhin zur Bewertung sehen.",
"required_answer": "Erforderliche Antwort",
"review": "Bewertung",
"reviewed_by": "von {name} am {date}",
"score": "Punkte:",
"send_location": "Aktuellen Standort senden",
"send_location_explain": "Hängt deine aktuelle GPS-Position an diese Antwort an.",
"submission": "Einreichung",
"upload_compress": "Bild wird komprimiert...",
"upload_title": "Antwort wird hochgeladen...",
@@ -270,6 +306,7 @@
"showcase": {
"answers": "Antworten",
"crew": "Crew",
"distance": "Strecke",
"first_place": "Erster Platz",
"leaderboard": "Rangliste",
"pictures": "Bilder",
@@ -280,6 +317,7 @@
"table": {
"answers": "Antworten",
"description": "Beschreibung",
"distance": "Strecke",
"name": "Name",
"place": "Platz",
"score": "Punkte"