Learn session forecasts from training blocks and clarify progress UI
This commit is contained in:
+14
-4
@@ -5,7 +5,9 @@ from flask_login import login_required, current_user
|
||||
from extensions import db
|
||||
from decorators import validate_workout, validate_topset, require_ownership, validate_person
|
||||
from utils import convert_str_to_date
|
||||
from collections import defaultdict # Import defaultdict
|
||||
from collections import defaultdict # Import defaultdict
|
||||
from datetime import date
|
||||
from dateutil.relativedelta import relativedelta
|
||||
|
||||
workout_bp = Blueprint('workout', __name__)
|
||||
htmx = HTMX()
|
||||
@@ -301,6 +303,11 @@ def get_exercise_history(person_id, exercise_id):
|
||||
limit = request.args.get('limit', type=int, default=5)
|
||||
offset = request.args.get('offset', type=int, default=0)
|
||||
source_topset_id = request.args.get('source_topset_id', type=int)
|
||||
epoch = request.args.get('epoch', default='All')
|
||||
min_date = convert_str_to_date(request.args.get('min_date'))
|
||||
max_date = convert_str_to_date(request.args.get('max_date'))
|
||||
if epoch in ('1M', '3M', '6M'):
|
||||
min_date = date.today() - relativedelta(months=int(epoch[0]))
|
||||
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, 52))
|
||||
@@ -308,7 +315,7 @@ def get_exercise_history(person_id, exercise_id):
|
||||
if forecast_target_reps is not None:
|
||||
forecast_target_reps = max(1, min(forecast_target_reps, 20))
|
||||
|
||||
topsets = db.get_recent_topsets_for_exercise(person_id, exercise_id, limit, offset)
|
||||
topsets = db.get_recent_topsets_for_exercise(person_id, exercise_id, limit, offset, min_date, max_date)
|
||||
|
||||
title = "History"
|
||||
best_fit_formula = None
|
||||
@@ -321,7 +328,9 @@ def get_exercise_history(person_id, exercise_id):
|
||||
exercise_progress = db.get_exercise_progress_for_user(
|
||||
person_id,
|
||||
exercise_id,
|
||||
epoch='all',
|
||||
epoch=epoch,
|
||||
min_date=min_date,
|
||||
max_date=max_date,
|
||||
forecast_enabled=forecast_enabled,
|
||||
forecast_weeks=forecast_weeks,
|
||||
forecast_target_reps=forecast_target_reps)
|
||||
@@ -348,7 +357,8 @@ def get_exercise_history(person_id, exercise_id):
|
||||
forecast=forecast,
|
||||
forecast_enabled=forecast_enabled,
|
||||
forecast_weeks=forecast_weeks,
|
||||
forecast_target_reps=forecast_target_reps)
|
||||
forecast_target_reps=forecast_target_reps,
|
||||
selected_epoch=epoch, min_date=min_date, max_date=max_date)
|
||||
|
||||
@workout_bp.route("/person/<int:person_id>/workout/<int:workout_id>", methods=['GET'])
|
||||
def show_workout(person_id, workout_id):
|
||||
|
||||
Reference in New Issue
Block a user