Rekordstatus: träning/tävling/räknas ej på lyft + PB-lägen och detaljark

- ui/common/LiftStatusSheet.kt: ModalBottomSheet med vikt, est. 1RM, datum,
  pass, anteckning, SegmentedButtons (Träning/Tävling/Räknas ej), kommentar,
  Spara och topplista "näst i tur" för samma övning × reps (alla statusar, så
  bortplockade lyft kan återställas). Lyft- och set-läge.
- Statistik → Personbästa: chips Alla giltiga · Tävling · Träning, ett
  AssistChip per rekord (🎖️ på tävling) som öppnar arket.
- Passhistorik: tryck på ett set öppnar arket i set-läge; statusmärke visas.
- GymRepository: personalBestsDetailed(mode), pbCandidates, liftDetail,
  setLiftStatus, setSessionSetStatus; PB-cachen uppdateras efter ändring.
  HistorySet/SessionDetailExercise bär id, notes, status, exerciseTypeId.

Kräver gym-api med migration 20260906090000_AddLiftStatus.

Co-Authored-By: Claude Fable 5.1 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_01AFvSx1pF9pymyEuK7MFkEG
This commit is contained in:
2026-09-06 09:16:02 +02:00
parent d2a37f21de
commit 139a4c20ef
5 changed files with 588 additions and 63 deletions

View File

@@ -46,6 +46,16 @@ direkt på en ansluten telefon med USB-felsökning på.
Logga in med ditt vanliga gym-konto (LDAP). API-url:en går att ändra under
"Avancerat" på inloggningsskärmen (standard: `https://gymapi.brasse-pc.eu/graphql`).
## Rekordstatus: träning / tävling / räknas ej
Under **Statistik → Personbästa** finns växeln *Alla giltiga · Tävling · Träning*. Tryck på
ett rekord så öppnas ett ark med vikt, est. 1RM, datum, pass och anteckning, där lyftet kan
märkas som **Träning**, **Tävling** eller **Räknas ej** (fusk, felregistrerat, ej godkänt)
med en kommentar. Under arket visas topplistan för samma övning × reps ("näst i tur"),
så ett bortplockat lyft kan väljas och återställas. Samma ark öppnas när man trycker på
ett set i passhistoriken. "Räknas ej" tas ur rekord, 1RM och PB-höjdpunkter på servern
(kod: `ui/common/LiftStatusSheet.kt`, API: `setLiftStatus`/`setSessionSetStatus`).
## Signeringsnyckeln
Nyckeln är **inte** incheckad (repot är publikt). Lokalt ligger den i