mirror of
https://github.com/StefBuwalda/cal_counter.git
synced 2025-10-30 03:10:00 +00:00
Introduces a new add_meal_v2 blueprint with barcode scanning, item search, and improved meal logging UI. Adds user timezone support: login form now captures timezone, User model and database schema updated, and timezone is set on login. Refactors templates and forms to support these changes, and removes the old login template.
32 lines
847 B
Python
32 lines
847 B
Python
from flask_login import current_user
|
|
from flask import redirect, url_for, flash
|
|
from typing import Optional
|
|
from zoneinfo import ZoneInfo
|
|
|
|
|
|
def login_required():
|
|
if not current_user.is_authenticated:
|
|
return redirect(url_for("auth.login"))
|
|
if current_user.must_change_password:
|
|
flash("You have to change your password")
|
|
return redirect(url_for("auth.change_password"))
|
|
return
|
|
|
|
|
|
def default_return(next_page: Optional[str] = None):
|
|
return redirect(url_for("user.daily_log"))
|
|
if next_page:
|
|
return redirect(next_page)
|
|
if current_user.is_admin:
|
|
return redirect(url_for("admin.food_items"))
|
|
return redirect(url_for("dashboard"))
|
|
|
|
|
|
def is_valid_timezone(tz: str) -> bool:
|
|
try:
|
|
ZoneInfo(tz)
|
|
except Exception:
|
|
print(Exception)
|
|
return False
|
|
return True
|