76 Commits

Author SHA1 Message Date
Peter Stockings
e7d125d57b Move workout tag logic into tags blueprint 2025-04-21 20:13:30 +10:00
Peter Stockings
a8fe28339b I have refactored the SQL Explorer functionality into its own blueprint (routes/sql_explorer.py) with a /sql URL prefix. This involved moving the relevant routes from app.py, registering the new blueprint, removing the old routes, updating url_for calls in the templates, and documenting the change in the changelog.
Here is a conventional commit message summarizing the changes:

```
feat: Refactor SQL Explorer into blueprint

- Moved SQL Explorer routes (view explorer, save/load/execute/delete queries, view schema, plot queries) from `app.py` into a new blueprint at `routes/sql_explorer.py`.
- Added `/sql` URL prefix to the blueprint.
- Registered the new `sql_explorer_bp` blueprint in `app.py`.
- Removed the original SQL Explorer route definitions from `app.py`.
- Updated `url_for` calls in relevant templates (`sql_explorer.html`, `partials/sql_explorer/sql_query.html`, `base.html`) to reference the new blueprint endpoints (e.g., `sql_explorer.sql_explorer`).
- Updated `templates/changelog/changelog.html` to document this refactoring.
```
2025-03-31 23:00:54 +11:00
Peter Stockings
eaeb4ab2c8 feat: Refactor workout functionality into blueprint
- Moved workout-related routes (create/delete/edit workouts, topsets, tags, start dates, show workout) from `app.py` into a new blueprint at `routes/workout.py`.
- Integrated workout view model logic from `features/workout.py` directly into `routes/workout.py` helper function `_get_workout_view_model`.
- Removed `features/workout.py` and the corresponding class instantiation in `db.py`.
- Registered the new `workout_bp` blueprint in `app.py`.
- Removed the original workout route definitions from `app.py`.
- Updated `url_for` calls in relevant templates (`workout.html`, `person_overview.html`, `partials/workout_tags.html`, `partials/topset.html`, `partials/start_date.html`, `partials/new_set_form.html`, `notes.html`, `calendar.html`) to reference the new blueprint endpoints (e.g., `workout.create_workout`).
- Updated `templates/changelog/changelog.html` to document this refactoring.
2025-03-31 22:38:48 +11:00
Peter Stockings
78436b230b feat: Refactor notes functionality into blueprint
- Moved notes-related routes (viewing/editing workout notes) from `app.py` into a new blueprint at `routes/notes.py`.
- Integrated notes-specific database logic (fetching and updating notes) directly into `routes/notes.py` helper functions, removing the corresponding methods from `db.py` for better encapsulation.
- Registered the new `notes_bp` blueprint in `app.py`.
- Removed the original notes route definitions from `app.py`.
- Updated `url_for` calls in `templates/partials/workout_note.html` to reference the new blueprint endpoints (e.g., `notes.get_person_notes`).
- Updated `templates/changelog/changelog.html` to document this refactoring in its own entry.
2025-03-31 22:08:47 +11:00
Peter Stockings
6095e76f10 Here is a conventional commit message summarizing the refactoring work:
```
feat: Refactor calendar feature into blueprint

- Moved calendar logic from `features/calendar.py` and `app.py` into a new blueprint at `routes/calendar.py`.
- Removed the `Calendar` class and refactored logic into helper functions within the blueprint module for better organization and readability.
- Eliminated the `pandas` dependency for date range generation, using standard `datetime` operations instead.
- Resolved circular import issues between `db.py`, `extensions.py`, and `routes/calendar.py` by adjusting import locations.
- Corrected `url_for` calls in templates (`calendar.html`, `partials/people_link.html`) to reference the new blueprint endpoint (`calendar.get_calendar`).
- Fixed an `AttributeError` related to HTMX request checking in the calendar route.
- Corrected `AttributeError` related to `.date()` calls on `datetime.date` objects in view processing functions.
- Updated `templates/changelog/changelog.html` to document the refactoring and associated fixes.
```
2025-03-30 22:20:48 +11:00
Peter Stockings
39e91f2655 Add support to set degree of line of best fit for exercise progress graphs in custom view 2025-02-06 23:43:10 +11:00
Peter Stockings
5be7438afc Add in auth however there are no restrictions currently 2025-02-01 22:42:58 +11:00
Peter Stockings
f70438e4e4 Refactor dashboard 2025-01-27 14:46:20 +11:00
Peter Stockings
2a5afe51b4 Add All tag to dashboard as well 2025-01-27 02:00:37 +11:00
Peter Stockings
1e625ba7a8 When on overview page add a static tag that selects everything, will have to refactor tags functionality soon 2025-01-27 01:57:36 +11:00
Peter Stockings
0ed0c20e93 Add person graphs endpoint for workouts per week & PRs per week, consumed via dashboard, person overview and notes 2025-01-27 01:00:50 +11:00
Peter Stockings
049af675cc Remove unused duplicated stats logic for dashboard 2025-01-27 00:18:02 +11:00
Peter Stockings
b0fb8895df Start refactoring person overview (list) page, currently is accessible through tags and workout exercise select. Doesnt have any stats or graphs 2025-01-26 18:21:44 +11:00
Peter Stockings
76b610c949 Minor refactor in attempt to speed up site 2025-01-25 00:16:32 +11:00
Peter Stockings
5ffb08a994 Fix issue selecting a new exercise 2025-01-19 21:34:45 +11:00
Peter Stockings
c7013e0eac Add ability to plot saved queries using plotly, need to check performance in production, also need to improve generate_plot function 2024-11-09 16:49:08 +11:00
Peter Stockings
0f55d42f22 * Add SQL query executor
* Move mermaid.min.js to static asset
* Create templates for sql logic
2024-11-06 23:25:25 +11:00
Peter Stockings
3a07b9d97f WIP: Render database schema using Mermaid.js
Still need to:
* Move mermaid.js to static files
* Make template for mermaid wrapper
* Create new page for SQL viewer then add explorer
2024-11-06 22:48:51 +11:00
Peter Stockings
616b57e1db Fix regression where selecting an exercise didnt populate reps/weight inputs with last set and resize progress graph on desktop 2024-11-05 15:04:06 +11:00
Peter Stockings
b5493e627c Fix tags, may have increased load on database while only using one query to fetch workout, topsets, and all tags 2024-11-04 22:33:08 +11:00
Peter Stockings
e756607dc8 Add WIP of exercise live search, just testing speed in prod site 2024-11-03 09:45:48 +11:00
Peter Stockings
817a6016e2 Create seperate page view for workout (WIP) 2024-11-02 23:09:26 +11:00
Peter Stockings
1384eb007b Add min/max filter filter for exercise sparkline graph 2024-07-29 21:27:30 +10:00
Peter Stockings
63d997a3f1 Refactor calendar (month and year view), switching to vertical slice arch. Also in progress of refactoring of stats so they are retreived after inital page load for performance sake 2024-04-11 13:45:38 +10:00
Peter Stockings
6dafdf71dd Add options to filter epoch for exercise progress graphs (1M, 3M, 6M, All), however if there isnt data in a selected epoch the endpoint returns 404. Havent bothered to look into to it, probs should clean up code as well 2024-04-03 20:31:13 +11:00
Peter Stockings
dae4fcbf44 Add view to list workout notes for a person 2024-03-09 18:50:44 +11:00
Peter Stockings
e93c92a452 Add same graphs to person list view 2023-12-11 17:48:51 +11:00
Peter Stockings
fe01b2ade3 Statically render svg graphs on person view as well 2023-12-09 23:30:22 +11:00
Peter Stockings
d0afd92126 Render svg graphs in initial response rather then requesting each graph individually. Initial load file size of dashboard will be larger, unsure if I will rollback this change 2023-12-09 23:10:13 +11:00
Peter Stockings
c5e825f4df Make svg graph more generic, and make line of best fit the last line rendered so its always on top 2023-12-09 22:25:37 +11:00
Peter Stockings
26f4a84d0b Change order that plot lines are rendered so E1RM is always visible 2023-12-09 20:59:50 +11:00
Peter Stockings
fd6ca240ee Refactor tag crud operations 2023-12-09 17:19:49 +11:00
Peter Stockings
c702a2ba3d Refactor get workout call 2023-12-09 17:00:45 +11:00
Peter Stockings
1ff616f4e0 Refactor get topset database call 2023-12-09 16:35:10 +11:00
Peter Stockings
8bbbfecbf9 More CamelCase refactoring, exercise functionality refactored 2023-12-09 16:23:04 +11:00
Peter Stockings
d967920e03 Start to refactor away from using camel case (Not sure why I did this in the first place) 2023-12-09 16:14:10 +11:00
Peter Stockings
e3435df8b5 Switch to using custom svg sparkline for exercise graphs on person view, this isnt a proper implementation as it separate requests for each exercise selected (Want to get rid of dependency on plotly) 2023-12-09 14:42:33 +11:00
Peter Stockings
9d5d3b4507 Instead of adding interactive popup on mouse over of plot point, switch to mouse over of rectangle around the timestamp (reduces file size by another third 29.7kb => 17.9) 2023-12-09 14:03:09 +11:00
Peter Stockings
bc79224cee Add ability to toggle plot lines by clicking on corresponding label in legend 2023-12-09 13:27:19 +11:00
Peter Stockings
cc44591eea Plot E1RM, reps, & weight on user progress sparkline, also reduced generated svg size by half 2023-12-09 12:42:27 +11:00
Peter Stockings
dd093e3819 Add line of best fit (adding dependency on numpy) 2023-12-08 23:51:10 +11:00
Peter Stockings
2bdbda3a05 Refactor exercise progress 2023-12-07 21:58:13 +11:00
Peter Stockings
9c69005f7c Add weight and reps to popover 2023-12-07 20:58:03 +11:00
Peter Stockings
3fca116d1c On hover of exercise progress sparkline on new workout modal, show estimated 1rm and date of workout as a popover 2023-12-07 20:50:59 +11:00
Peter Stockings
469054048e WIP: When selecting an exercise on new workout view, render a graph of exercise progress for the active user 2023-12-07 20:34:26 +11:00
Peter Stockings
0cb737e1b8 When you select an exercise for a new topset autofill the reps/weight feilds with the most recent topset values if possible (I beleive I have introduced a minor defect where adding a new set no longer clears reps/weight feild, but for some reason still clears exercise) 2023-08-20 23:42:00 +10:00
Peter Stockings
fdbb60b490 Add logic to handle adding/creating new tags for workouts 2023-08-06 22:15:36 +10:00
Peter Stockings
5ccb1f1905 Add database connection to global context so repeat queries dont recreate connections(Need to check if this actually improves speed) also added in logic so if add workout is triggered when there is already a workout on that day without any topsets it will instead load that 2023-08-06 13:34:33 +10:00
Peter Stockings
f0495be83a Fix topsets not appearing in order of completion when viewing in modal 2023-07-29 23:07:19 +10:00
Peter Stockings
1970bc6417 If you create a tag with the same name as an existing tag it will update it rather then creating a new instance, still needs further work to improve UX 2023-07-13 22:04:03 +10:00