Split up settings sub pages into templates loaded by htmx to reduce initial load

This commit is contained in:
Peter Stockings
2026-02-08 18:25:43 +11:00
parent a6eca1b4ac
commit 31078b181a
6 changed files with 357 additions and 318 deletions

30
app.py
View File

@@ -227,7 +227,19 @@ def get_person_name(person_id):
@ app.route("/settings")
@ login_required
def settings():
if htmx:
return render_block(app.jinja_env, 'settings.html', 'content')
return render_template('settings.html')
@ app.route("/settings/tab/people")
@ login_required
def settings_people():
people = db.get_people()
return render_template('partials/settings/people.html', people=people)
@ app.route("/settings/tab/exercises")
@ login_required
def settings_exercises():
exercises = db.get_all_exercises()
all_attributes = db.exercises.get_attributes_by_category()
categories_list = db.exercises.get_all_attribute_categories()
@@ -237,10 +249,20 @@ def settings():
for cat, attrs in all_attributes.items():
formatted_options[cat] = [{"id": a['attribute_id'], "attribute_id": a['attribute_id'], "name": a['name'], "category_id": a['category_id']} for a in attrs]
if htmx:
return render_block(app.jinja_env, "settings.html", "content",
people=people, exercises=exercises, all_attributes=formatted_options, categories_list=categories_list), 200, {"HX-Trigger": "updatedPeople"}
return render_template('settings.html', people=people, exercises=exercises, all_attributes=formatted_options, categories_list=categories_list)
return render_template('partials/settings/exercises.html',
exercises=exercises,
all_attributes=formatted_options,
categories_list=categories_list)
@ app.route("/settings/tab/export")
@ login_required
def settings_export():
return render_template('partials/settings/export.html')
@ app.route("/settings/tab/activity")
@ login_required
def settings_activity():
return render_template('partials/settings/activity.html')
@app.route("/settings/activity_logs")