bff6d70b17
Aplicatie Flask + SQLite pentru productie alimentara: cantarirea componentelor unui produs finit si tiparirea etichetei prin QZ Tray. - produse finite (retete) formate din componente cantarite - designer vizual de etichete (mm/px, zona sigura, campuri variabile, cod QR cu continut din mai multe bucati) - legare produs finit -> sablon de eticheta - navigare pe doua taburi: Cantarire / Setari - administrare: componente, produse finite, sabloane, campuri, istoric - backup, resetare baza de date, checklist de pregatire, /healthz - CLI de administrare si serviciu systemd pentru productie - vendor/syncpulse-scale-bridge (GPL-3.0-or-later) pentru citirea cantarului
41 lines
1.5 KiB
Python
41 lines
1.5 KiB
Python
"""Configurarea aplicatiei (variabile de mediu, fara secrete in cod)."""
|
|
from __future__ import annotations
|
|
|
|
import os
|
|
from pathlib import Path
|
|
|
|
BASE_DIR = Path(__file__).resolve().parent.parent
|
|
|
|
# Cheia folosita cand nu exista CANTARIRE_SECRET_KEY; NU se foloseste in productie.
|
|
DEV_SECRET_KEY = "dev-only-change-me"
|
|
|
|
|
|
def _env_flag(name: str, default: bool = False) -> bool:
|
|
value = os.environ.get(name)
|
|
if value is None:
|
|
return default
|
|
return value.strip().lower() in {"1", "true", "yes", "on"}
|
|
|
|
|
|
class Config:
|
|
# Flask
|
|
SECRET_KEY = os.environ.get("CANTARIRE_SECRET_KEY", DEV_SECRET_KEY)
|
|
MAX_CONTENT_LENGTH = 2 * 1024 * 1024
|
|
|
|
# Date de rulare: baza SQLite, bridge.json, jurnale de etichete
|
|
INSTANCE_DIR = Path(os.environ.get("CANTARIRE_INSTANCE", BASE_DIR / "instance"))
|
|
DATABASE = INSTANCE_DIR / "cantarire.db"
|
|
BRIDGE_CONFIG = Path(os.environ.get("CANTARIRE_BRIDGE_CONFIG", INSTANCE_DIR / "bridge.json"))
|
|
|
|
# CANTARIRE_SIMULATE="mahak_mds,toledo_cont:4800:7E1" porneste cantoare simulate
|
|
SIMULATE = os.environ.get("CANTARIRE_SIMULATE", "").strip()
|
|
|
|
# Cat de proaspata / cat de mult asteptam o citire de la cantar
|
|
WEIGHT_MAX_AGE_MS = int(os.environ.get("CANTARIRE_MAX_AGE_MS", "1500"))
|
|
WEIGHT_WAIT_MS = int(os.environ.get("CANTARIRE_WAIT_MS", "2500"))
|
|
|
|
# Printarea automata din browser (plugin extern); se poate dezactiva global
|
|
AUTO_PRINT = _env_flag("CANTARIRE_AUTO_PRINT", True)
|
|
|
|
JSON_AS_ASCII = False
|