Move settings endpoints to separate blueprint
This commit is contained in:
64
routes/settings.py
Normal file
64
routes/settings.py
Normal file
@@ -0,0 +1,64 @@
|
||||
from flask import Blueprint, render_template, request
|
||||
from flask_login import login_required
|
||||
from jinja2_fragments import render_block
|
||||
from extensions import db
|
||||
from flask import current_app
|
||||
|
||||
settings_bp = Blueprint('settings', __name__)
|
||||
|
||||
@settings_bp.route("/settings")
|
||||
@login_required
|
||||
def settings():
|
||||
# Detect HTMX via header since we don't have the global htmx object here
|
||||
is_htmx = request.headers.get('HX-Request') == 'true'
|
||||
if is_htmx:
|
||||
return render_block(current_app.jinja_env, 'settings.html', 'content')
|
||||
return render_template('settings.html')
|
||||
|
||||
@settings_bp.route("/settings/tab/people")
|
||||
@login_required
|
||||
def settings_people():
|
||||
people = db.get_people()
|
||||
return render_template('partials/settings/people.html', people=people)
|
||||
|
||||
@settings_bp.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)
|
||||
|
||||
@settings_bp.route("/settings/tab/export")
|
||||
@login_required
|
||||
def settings_export():
|
||||
return render_template('partials/settings/export.html')
|
||||
|
||||
@settings_bp.route("/settings/tab/activity")
|
||||
@login_required
|
||||
def settings_activity():
|
||||
return render_template('partials/settings/activity.html')
|
||||
|
||||
@settings_bp.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,
|
||||
has_more=has_more)
|
||||
Reference in New Issue
Block a user