Files
WeightTracker/app/routes/profile.py
Peter Stockings ccdb3d8dc7 Initial commit
2026-02-22 22:53:22 +11:00

41 lines
1.4 KiB
Python

from flask import Blueprint, render_template, request, redirect, url_for, flash
from app.auth import login_required, get_current_user
from app.db import execute
bp = Blueprint("profile", __name__)
@bp.route("/profile", methods=["GET"])
@login_required
def index():
user = get_current_user()
return render_template("profile.html", user=user)
@bp.route("/profile", methods=["POST"])
@login_required
def update():
user = get_current_user()
display_name = request.form.get("display_name", "").strip()
height_cm = request.form.get("height_cm") or None
age = request.form.get("age") or None
gender = request.form.get("gender") or None
goal_weight_kg = request.form.get("goal_weight_kg") or None
starting_weight_kg = request.form.get("starting_weight_kg") or None
execute(
"""UPDATE users
SET display_name = %s, height_cm = %s, age = %s, gender = %s,
goal_weight_kg = %s, starting_weight_kg = %s
WHERE id = %s""",
(display_name or user["username"], height_cm, age, gender,
goal_weight_kg, starting_weight_kg, user["id"]),
)
if request.headers.get("HX-Request"):
flash("Profile updated!", "success")
return render_template("profile.html", user=get_current_user())
flash("Profile updated!", "success")
return redirect(url_for("profile.index"))