Move settings endpoints to separate blueprint

This commit is contained in:
Peter Stockings
2026-02-08 18:48:03 +11:00
parent 31078b181a
commit 8c08140ad0
6 changed files with 80 additions and 69 deletions

57
app.py
View File

@@ -23,6 +23,7 @@ from routes.export import export_bp # Import the new export blueprint
from routes.tags import tags_bp # Import the new tags blueprint
from routes.programs import programs_bp # Import the new programs blueprint
from routes.exercises import exercises_bp # Import the new exercises blueprint
from routes.settings import settings_bp # Import the new settings blueprint
from extensions import db
from utils import convert_str_to_date
from flask_htmx import HTMX
@@ -73,6 +74,7 @@ app.register_blueprint(export_bp) # Register the export blueprint (prefix define
app.register_blueprint(tags_bp) # Register the tags blueprint (prefix defined in blueprint file)
app.register_blueprint(programs_bp) # Register the programs blueprint (prefix defined in blueprint file)
app.register_blueprint(exercises_bp) # Register the exercises blueprint
app.register_blueprint(settings_bp) # Register the settings blueprint
@app.after_request
def response_minify(response):
@@ -224,62 +226,7 @@ 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()
# Format options for custom_select
formatted_options = {}
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]
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")
@login_required
def settings_activity_logs():
limit = 50
offset = request.args.get('offset', 0, type=int)
logs = db.activityRequest.get_recent_logs(limit=limit, offset=offset)
# Check if there are more logs to load
has_more = len(logs) == limit
return render_template('partials/activity_logs.html',
logs=logs,
offset=offset,
limit=limit,
has_more=has_more)
# Routes moved to routes/tags.py blueprint