feat: gear registry — manage bikes/shoes per athlete, set per activity

- New /api/gear CRUD endpoints (gear.json per user)
- Gear tab in AthleteView (owner-only): add, edit, retire items
- EditDrawer gear field becomes a dropdown when registry has items
- Strava API sync now resolves gear_id → name, adds to registry automatically
- Strava ZIP import reads Gear column from activities.csv
- POST /api/strava/import-gear for one-time backfill from stored originals
This commit is contained in:
Davide Scaini
2026-05-24 12:33:41 +02:00
parent aca9f79b46
commit e553e08663
9 changed files with 576 additions and 10 deletions
+2
View File
@@ -115,6 +115,8 @@ def strava_zip_iter(
parsed.description = meta_row["Activity Description"].strip()
if not parsed.strava_id and meta_row.get("Activity ID"):
parsed.strava_id = meta_row["Activity ID"].strip()
if not parsed.gear and meta_row.get("Gear"):
parsed.gear = meta_row["Gear"].strip()
if originals_dir is not None:
import shutil