Commit Graph
100 Commits
Author SHA1 Message Date
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 4a822ea2ba Update python buildpack version to reflect archived state 2025-03-30 22:02:09 +11:00
Peter Stockings 2465cad005 feat: Add static changelog page
Adds a new static page accessible at /changelog to display site updates and changes manually.

- Creates a new Flask Blueprint in `routes/changelog.py` to handle the route logic.
- Registers the `changelog_bp` blueprint in `app.py`.
- Creates the corresponding template `templates/changelog/changelog.html` extending the base layout.
- Adds a link to the Changelog page in the main sidebar navigation in `templates/base.html`, using an archive icon for consistency.
- Applies basic card styling to the changelog page content for improved visual structure.
2025-03-30 21:30:25 +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 116de33df3 Update load_user function 2025-02-02 17:45:54 +11:00
Peter Stockings b0296be9a0 On SQL explorer page add a button to copy the create tables database schema 2025-02-01 23:50:09 +11:00
Peter Stockings 5be7438afc Add in auth however there are no restrictions currently 2025-02-01 22:42:58 +11:00
Peter Stockings fb0e1519e4 Include Plotly js lib 2025-02-01 21:26:52 +11:00
Peter Stockings c1c4c4a960 Speed up sql plot generation 2025-02-01 21:06:21 +11:00
Peter Stockings 5fe003bcbf Add loading icons to sql plot and add clear button to results container 2025-02-01 21:06:01 +11:00
Peter Stockings 8b02307397 Add plot functionality to unsaved sql query and use htmx 2025-02-01 20:26:54 +11:00
Peter Stockings 55149c5ea9 Switch stats from camel case to snake case 2025-02-01 19:48:56 +11:00
Peter Stockings 677d44320c Fix for workout view showing sets out of order 2025-02-01 19:38:08 +11:00
Peter Stockings 07c2111b55 Remove unused functions from app.py 2025-01-27 14:54:31 +11:00
Peter Stockings f70438e4e4 Refactor dashboard 2025-01-27 14:46:20 +11:00
Peter Stockings a7592a29f6 Remove space in person id query param for tags 2025-01-27 13:14:55 +11:00
Peter Stockings d2c03cb81b Move person graphs down below title 2025-01-27 13:13:59 +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 6319e488e1 Update page url after visiting page overview 2025-01-27 01:56:42 +11:00
Peter Stockings 2a614ae1c0 Fix view selector all->overview and make overview selected on overview page 2025-01-27 01:26:30 +11:00
Peter Stockings 6b741e50d0 Swtich from person list to new overview page 2025-01-27 01:17:23 +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 5ed737ee94 Refactor stats endpoint so supports filtering people and make dashboard page utilise it 2025-01-27 00:07:27 +11:00
Peter Stockings 527395d704 Make stats refresh, and add filter support to stats endpoint 2025-01-26 23:01:39 +11:00
Peter Stockings 23de6ef1f7 Render stats to block in overview 2025-01-26 22:19:34 +11:00
Peter Stockings 17c010ff7f Include total duration in new overview stats 2025-01-26 21:17:02 +11:00
Peter Stockings d1057aa8ba Add more stats 2025-01-26 21:10:22 +11:00
Peter Stockings 29f7dc1823 Revert "Revert "Add stats to new person overview page, just copied the logic so will need to refactor when the dashboard page is refactored as well""
This reverts commit c569793fd8.
2025-01-26 21:07:19 +11:00
Peter Stockings c569793fd8 Revert "Add stats to new person overview page, just copied the logic so will need to refactor when the dashboard page is refactored as well"
This reverts commit 4783ce6026.
2025-01-26 20:55:08 +11:00
Peter Stockings 4783ce6026 Add stats to new person overview page, just copied the logic so will need to refactor when the dashboard page is refactored as well 2025-01-26 20:39:20 +11:00
Peter Stockings dc543c7b75 Show exercise count in stats 2025-01-26 20:31:39 +11:00
Peter Stockings df3796b30e Dont trigger 'updatedPeople' on person dashboard render anymore 2025-01-26 20:04:15 +11:00
Peter Stockings cd6f3920f5 Add exercise progress graphs to new person overview page 2025-01-26 20:00:31 +11:00
Peter Stockings 2c8019ef7b Bugfix: Attempting to update a set would fail due to including multiple elements for exercise_id, repetition, & weight 2025-01-26 18:47:45 +11:00
Peter Stockings f932ea3c0c Dashboard is failing in prod but works locally
m, b = np.polyfit(relative_positions, estimated_1rm_scaled, 1)
ValueError: On entry to DLASCL parameter number 4 had an illegal value
2025-01-26 18:30:30 +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 78f2ce2317 Fix bug introduced by last commit in which exercise progress graph wouldnt load upon selecting a exercise 2025-01-24 22:21:18 +11:00
Peter Stockings 5ffb08a994 Fix issue selecting a new exercise 2025-01-19 21:34:45 +11:00
Peter Stockings da73d816d6 Add favicon 2024-12-18 23:34:44 +11:00
Peter Stockings 71bf4b640c whoops update column heading order after moving methods to 2nd pos 2024-11-10 18:35:28 +11:00
Peter Stockings 5bdb586a2c For endpoints page, remove faulty logic that attempted to persisted column view preferences and move Method column to 2nd pos 2024-11-10 18:31:44 +11:00
Peter Stockings 8b248bad17 Make endpoints column filter responsive 2024-11-10 18:15:33 +11:00
Peter Stockings 285175c29d Update previous page link for workout navbar 2024-11-10 18:09:22 +11:00
Peter Stockings 5db18cbf18 Clear exercise select dropdown when clear search is clicked 2024-11-10 18:01:30 +11:00
Peter Stockings 16cd4e93e3 Change exercise select input from text to search so it adds a clear button on the right 2024-11-10 17:50:13 +11:00
Peter Stockings 2d6c738e3e Max SQL query text box resize to query length 2024-11-09 23:18:57 +11:00
Peter Stockings 0b7b804d62 Fix issue where redirecting to endpoints page would only show table 2024-11-09 19:20:06 +11:00
Peter Stockings 120a94ff45 Add page to list all flask endpoints with filter 2024-11-09 19:07:55 +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 23def088bb Add ability to save and edit queries, still need to add ability to edit queries 2024-11-08 23:09:19 +11:00
Peter Stockings 90cb1c1451 Add styling to sql query text area 2024-11-08 21:57:48 +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 30ba59381c Add confirmation prior to deleting workout 2024-11-05 16:52:41 +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 4fe9271555 Change 'No tags available' text to 'No tags' for workout tags 2024-11-05 15:02:54 +11:00
Peter Stockings 8bb33f23fc Add mobile padding for navbar on workout page 2024-11-05 15:02:27 +11:00
Peter Stockings 05158d8f43 Fix issue where creating an empty workout would show a blank set 'None x None Kg' 2024-11-04 23:21:12 +11:00
Peter Stockings 5938c9468b Fix error thrown when attempting to update exercise name 2024-11-04 23:14:56 +11:00
Peter Stockings 1f0742bbc0 Add breadcrumb navigation to workout page 2024-11-04 22:51:27 +11:00
Peter Stockings 6ebac69911 Show 'No tags applied' on workouts when... 2024-11-04 22:36:27 +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 10326ccd7a Switch from using workout modal and change to workout page, still need to cleanup modal logic and templates. Need to fix workout tag functionality 2024-11-04 22:02:06 +11:00
Peter Stockings 1a970d1d7b Fix bug where updating exercise name would persist due to missing commit 2024-11-04 16:59:14 +11:00
Peter Stockings 64c3335c29 Prompt user for confirmation prior to deleting exercise 2024-11-04 16:55:31 +11:00
Peter Stockings 7d65f9b8e8 Add ability to add/delete exercises from dropdown 2024-11-04 16:46:22 +11:00
Peter Stockings 7d43965289 Add ability to edit exercise name from new dropdown, still WIP as I need to handle exercise selection and make it a component 2024-11-04 12:07:47 +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 73c1e115bb Fix bug where left join on person and workouts would return a row even when there wasnt an exercise and therefore crashing on person list view 2024-05-18 18:27:09 +10:00
Peter Stockings 910437010d Add margin top to workout start date input 2024-04-11 18:42:14 +10:00
Peter Stockings 32a81df82a Add fade in transition to work out start date, tags, & note 2024-04-11 18:40:21 +10:00
Peter Stockings 0fb330d6fa Add css fade in transition for calendar next/prev changes 2024-04-11 18:22:40 +10:00
Peter Stockings ed1b91f9b7 Fix flicker caused by custom js select component being loaded 2024-04-11 18:12:51 +10:00
Peter Stockings 0e5de89e81 Change sidebar link behaviour so it doesnt scroll to top of screen until content has loaded and add in loading spinner for person list in sidebar 2024-04-11 17:57:24 +10:00
Peter Stockings 497a96be60 Instead of retreiving list of users and workouts card on initial load which involves a second db call, use htmx onload callback 2024-04-11 17:43:16 +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 76789a4934 Fix for url not updating when browsing from person note view -> calendar view (Not proper fix, dont understand why it wasnt working. Need to look into this further) 2024-04-10 19:30:15 +10:00
Peter Stockings 353093809f Load local .env file in dev mode (Will make same change to other projects) 2024-04-07 22:30:28 +10:00
Peter Stockings ff422e9536 Refactor more functions in utils, trying to speed up site 2024-04-07 22:23:26 +10:00
Peter Stockings 916fc47d26 Fix issue where sets werent displayed in order on month overview 2024-04-07 22:09:18 +10:00
Peter Stockings f21454523f Fix kg per week/month for exercise progress graphs and remove useless formula 2024-04-04 20:34:27 +11: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 e3de9f886b Display liner formula for E1RM over time, and weekly/monthly progress in weight (this part doesnt work well, will probably remove) 2024-03-09 17:15:08 +11:00
Peter Stockings fd04eb00b1 Clear dark classes on remaining inputs 2024-03-09 16:33:08 +11:00
Peter Stockings 22f2c68019 Optimise get workout counts function (2-3X faster however it was already pretty fast, need to find more slow shit) 2024-01-14 23:01:49 +11:00
Peter Stockings dda7cc3b80 Optimise count_prs_over_time function to result in 14.2X improvement in speed which will hopefully remove lag on page requests 2024-01-13 22:33:16 +11:00
Peter Stockings dc8831160d Refactor svg render logic (minor) 2024-01-13 21:54:14 +11:00
Peter Stockings 434e6a7250 Fix workouts per week graph, it was erroneously showing sets per week (perhaps add sets/number of exercises per week) 2023-12-11 22:04:05 +11:00
Peter Stockings d54cbe1d17 Clean up svg_line_graph 2023-12-11 22:02:47 +11:00
Peter Stockings 197f7bcf6b Add interactivity to recently created graphs, this time using circles for interactivity 2023-12-11 21:38:52 +11:00
Peter Stockings e93c92a452 Add same graphs to person list view 2023-12-11 17:48:51 +11:00
Peter Stockings 2285e870fb Added graphs to show workouts & PR's per week on dashboard. However there is no tooltip on hover and I duplicated the svg spark line template (May combine the two) 2023-12-11 17:29:10 +11:00