- Add tz.py with local_strftime/to_local helpers that read system.timezone from DB and convert UTC datetimes to venue local time before formatting - Fix all strftime() calls in orders.py, reports.py, printer_service.py that were formatting UTC datetimes without timezone conversion - Fix get_order endpoint returning raw dicts without Z suffix on datetimes, causing JS new Date() to treat timestamps as local instead of UTC - Fix fmtDate() in tokens.js that stripped the T separator before parsing, breaking UTC-to-local conversion for all report date displays - Make open/partially_paid table chips more visually distinct on dashboard Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
29 lines
943 B
Python
29 lines
943 B
Python
import os
|
|
from pathlib import Path
|
|
from pydantic_settings import BaseSettings
|
|
|
|
_HERE = Path(__file__).parent # always points to local_backend/
|
|
|
|
# Use AppData on Windows (avoids Controlled Folder Access blocks),
|
|
# fall back to local_backend/ on Linux/Mac/Docker
|
|
if os.name == "nt":
|
|
_DB_DEFAULT = Path(os.environ.get("LOCALAPPDATA", Path.home() / "AppData" / "Local")) / "pos" / "pos.db"
|
|
_DB_DEFAULT.parent.mkdir(parents=True, exist_ok=True)
|
|
else:
|
|
_DB_DEFAULT = _HERE / "pos.db"
|
|
|
|
|
|
class Settings(BaseSettings):
|
|
SITE_ID: str = ""
|
|
SITE_KEY: str = ""
|
|
CLOUD_URL: str = ""
|
|
SECRET_KEY: str = "change-me-generate-a-long-random-string"
|
|
DATABASE_URL: str = f"sqlite:///{_DB_DEFAULT.as_posix()}"
|
|
VERSION: str = "0.3.1"
|
|
CONNECT_SYNC_INTERVAL_SECONDS: int = 30 # how often to poll for pending online orders
|
|
|
|
model_config = {"env_file": str(_HERE / ".env"), "env_file_encoding": "utf-8"}
|
|
|
|
|
|
settings = Settings()
|