Update: admin panel, SMTP/EWS/Outlook mail modes, QR fix, event folders, security improvements

This commit is contained in:
Admin
2026-08-31 12:35:02 +03:00
parent a69abb948f
commit 76a42f14d0
32 changed files with 1474 additions and 116 deletions
+27
View File
@@ -0,0 +1,27 @@
from datetime import datetime, timezone
from zoneinfo import ZoneInfo
from flask import current_app
def get_timezone():
tz_name = current_app.config.get("TIMEZONE", "UTC")
return ZoneInfo(tz_name)
def utc_to_local(dt):
"""Конвертирует наивное UTC-время в локальное наивное время."""
if dt is None:
return None
# Считаем, что хранимое время — UTC
utc_dt = dt.replace(tzinfo=timezone.utc) if dt.tzinfo is None else dt.astimezone(timezone.utc)
local_dt = utc_dt.astimezone(get_timezone())
return local_dt.replace(tzinfo=None)
def local_to_utc(dt):
"""Конвертирует наивное локальное время в UTC-наивное для хранения."""
if dt is None:
return None
local_dt = dt.replace(tzinfo=get_timezone())
utc_dt = local_dt.astimezone(timezone.utc)
return utc_dt.replace(tzinfo=None)