Peter Stockings dd82f461be feat: Add workout program management
- Create database tables: workout_program, program_session, person_program_assignment.
- Add Flask blueprint `routes/programs.py` with routes for creating, listing, viewing, and deleting programs.
- Implement program creation form (`templates/program_create.html`):
    - Allows defining program name, description, and multiple sessions.
    - Each session includes a name and dynamically added exercise selections.
    - Uses `tail.select` for searchable exercise dropdowns.
    - JavaScript handles dynamic addition/removal of sessions and exercises.
- Implement backend logic for program creation:
    - Parses form data including multiple exercises per session.
    - Automatically finds or creates non-person-specific tags based on selected exercises for each session.
    - Saves program and session data, linking sessions to appropriate tags.
- Implement program list view (`templates/program_list.html`):
    - Displays existing programs.
    - Includes HTMX-enabled delete button for each program.
    - Links program names to the view page using HTMX for dynamic loading.
- Implement program detail view (`templates/program_view.html`):
    - Displays program name, description, and sessions.
    - Parses session tag filters to retrieve and display associated exercises.
- Update changelog with details of the new feature.
2025-04-24 20:17:30 +10:00
2025-02-01 21:26:52 +11:00
2022-07-15 21:06:27 +10:00
2025-04-24 20:17:30 +10:00
2022-09-17 16:42:50 +10:00
2022-09-10 15:09:17 +10:00
2022-09-17 13:38:41 +10:00

Workout tracker

Track topsets over time.

Setup

Install python>3

Install dependencies

$ pip install -r requirements.txt

Enable development mode

PS $ENV:FLASK_ENV='development'

Set database url, either setup postgres database locally use migration script or expose deployed one

$Env:DATABASE_URL = 'postgres://postgres:***@***:***/***'

Start application:

flask run

Features

  • Track topsets for each workout
  • Multi user
  • Authentication/Authorisation
Description
No description provided
Readme 4 MiB
Languages
HTML 43.9%
Python 35.5%
Jupyter Notebook 18.8%
PLpgSQL 1.2%
CSS 0.6%