Add exercise progress forecasting

This commit is contained in:
Peter Stockings
2026-09-06 13:53:23 +10:00
parent d1100ece80
commit e2c4196792
4 changed files with 251 additions and 36 deletions
+13 -1
View File
@@ -241,11 +241,23 @@ def get_exercise_progress_for_user(person_id, exercise_id):
'max_date'), '%Y-%m-%d')
epoch = request.args.get('epoch', default='All')
degree = request.args.get('degree', type=int, default=1)
forecast_enabled = request.args.get('forecast', '').lower() in ('1', 'true', 'yes', 'on')
forecast_weeks = request.args.get('forecast_weeks', type=int, default=8)
forecast_weeks = max(4, min(forecast_weeks, 26))
if epoch == 'Custom' and (min_date is None or max_date is None):
(min_date, max_date) = db.get_exercise_earliest_and_latest_dates(person_id, exercise_id)
exercise_progress = db.get_exercise_progress_for_user(person_id, exercise_id, min_date, max_date, epoch, degree=degree)
exercise_progress = db.get_exercise_progress_for_user(
person_id,
exercise_id,
min_date,
max_date,
epoch,
degree=degree,
forecast_enabled=forecast_enabled,
forecast_weeks=forecast_weeks
)
if not exercise_progress:
abort(404)