Files
gravl/TODO.md
T

2.4 KiB

Gravl PM - Active Task Queue

Current: 04-03 Frontend - Workout Edit Mode

Status: IN PROGRESS (recovery from interruption) Agent: Frontend (Claude Code) Directory: /workspace/gravl/frontend

Tasks

1. Add "Edit Workout" Button

  • Add edit button/icon on WorkoutSelectPage for program workouts
  • Only show for workouts that are part of a program
  • Button triggers edit mode/modal

2. Create ExercisePicker Modal/Component

  • Modal for selecting exercises from the database
  • Search/filter functionality
  • Exercise list with categories
  • Select exercise with click/tap
  • Reuse existing exercise data from current workout flow

3. Implement Swap Exercise Flow

  • On exercise row in edit mode, show swap button
  • Open ExercisePicker modal
  • Replace selected exercise in workout structure
  • Maintain set/rep info where applicable

4. Implement Add Exercise Flow

  • "Add Exercise" button at bottom of workout
  • Open ExercisePicker modal
  • Append new exercise to workout with default sets/reps
  • Allow configuring sets/reps for new exercise

5. Fork Confirmation Dialog

  • When user first modifies a program workout
  • Explain: "This creates your personal version of this workout"
  • Options: "Cancel", "Create My Version"
  • Show only once per workout (set flag)

6. Save Custom Workout

  • POST to /api/custom-workouts on first modification (creates fork)
  • PUT to /api/custom-workouts/:id on subsequent changes
  • Update local state to use custom_workout_id
  • Mark workout as "custom" in UI

API Endpoints Available (from 04-02)

  • POST /api/custom-workouts - Create custom workout from program
  • PUT /api/custom-workouts/:id - Update exercises
  • GET /api/custom-workouts/:id - Fetch with exercises
  • GET /api/custom-workouts - List user's custom workouts

Database Schema (from 04-01)

  • custom_workouts table with user_id, name, original_program_day_id
  • custom_workout_exercises table with exercise_id, set_order, sets, reps

Success Criteria

  • "Edit Workout" button visible on program workouts
  • Exercise picker modal opens and shows exercises
  • Can swap an exercise (replaces in workout)
  • Can add new exercise (appends to workout)
  • Fork confirmation shown on first edit
  • Custom workout saves to backend
  • Subsequent sessions use custom workout

Next After This

  • 04-04: Visual distinction (custom vs program badges)
  • 04-05: Reset to original program option