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
This commit is contained in:
16
app.py
16
app.py
@@ -7,7 +7,7 @@ import jinja_partials
|
||||
from jinja2_fragments import render_block
|
||||
from decorators import validate_person, validate_topset, validate_workout
|
||||
from db import DataBase
|
||||
from utils import count_prs_over_time, get_date_info, get_people_and_exercise_rep_maxes, convert_str_to_date, get_earliest_and_latest_workout_date, filter_workout_topsets, first_and_last_visible_days_in_month, get_weekly_pr_graph_model, get_workout_counts
|
||||
from utils import count_prs_over_time, get_people_and_exercise_rep_maxes, convert_str_to_date, get_earliest_and_latest_workout_date, filter_workout_topsets, first_and_last_visible_days_in_month, get_weekly_pr_graph_model, get_workout_counts
|
||||
from flask_htmx import HTMX
|
||||
import minify_html
|
||||
from urllib.parse import quote
|
||||
@@ -123,8 +123,6 @@ def get_person(person_id):
|
||||
@ app.route("/person/<int:person_id>/calendar")
|
||||
@ validate_person
|
||||
def get_calendar(person_id):
|
||||
person = db.get_person(person_id)
|
||||
|
||||
selected_date = convert_str_to_date(request.args.get(
|
||||
'date'), '%Y-%m-%d') or date.today()
|
||||
selected_view = request.args.get('view') or 'month'
|
||||
@@ -134,12 +132,11 @@ def get_calendar(person_id):
|
||||
elif selected_view == 'notes':
|
||||
return redirect(url_for('get_person_notes', person_id=person_id))
|
||||
|
||||
# selected_view = month | year | all
|
||||
date_info = get_date_info(selected_date, selected_view)
|
||||
calendar_view = db.calendar.fetch_workouts_for_person(person_id, selected_date, selected_view)
|
||||
|
||||
if htmx:
|
||||
return render_block(app.jinja_env, 'calendar.html', 'content', person=person, selected_date=selected_date, selected_view=selected_view, **date_info, datetime=datetime, timedelta=timedelta, relativedelta=relativedelta, first_and_last_visible_days_in_month=first_and_last_visible_days_in_month), 200, {"HX-Push-Url": url_for('get_calendar', person_id=person_id, view=selected_view, date=selected_date)}
|
||||
return render_template('calendar.html', person=person, selected_date=selected_date, selected_view=selected_view, **date_info, datetime=datetime, timedelta=timedelta, relativedelta=relativedelta, first_and_last_visible_days_in_month=first_and_last_visible_days_in_month), 200, {"HX-Push-Url": url_for('get_calendar', person_id=person_id, view=selected_view, date=selected_date)}
|
||||
return render_block(app.jinja_env, 'calendar.html', 'content', **calendar_view), 200, {"HX-Push-Url": url_for('get_calendar', person_id=person_id, view=selected_view, date=selected_date)}
|
||||
return render_template('calendar.html', **calendar_view), 200, {"HX-Push-Url": url_for('get_calendar', person_id=person_id, view=selected_view, date=selected_date)}
|
||||
|
||||
@ app.route("/person/<int:person_id>/notes", methods=['GET'])
|
||||
@ validate_person
|
||||
@@ -428,6 +425,11 @@ def get_exercise_progress_for_user(person_id, exercise_id):
|
||||
|
||||
return render_template('partials/sparkline.html', **exercise_progress)
|
||||
|
||||
@app.route("/stats/person/<int:person_id>", methods=['GET'])
|
||||
def get_stats_for_person(person_id):
|
||||
stats = db.stats.fetch_stats_for_person(person_id)
|
||||
return render_template('partials/stats.html', stats=stats)
|
||||
|
||||
|
||||
@app.teardown_appcontext
|
||||
def closeConnection(exception):
|
||||
|
||||
Reference in New Issue
Block a user