L'horaire de l'email récapitulatif se configure maintenant sur /destinataires (raccourcis courants + expression cron personnalisée) au lieu de .env, avec reprogrammation immédiate sans redémarrage. Stocké en base (ParametrePlanification) plutôt que dans un fichier de config. Défaut changé pour tous les lundis à 9h. Les exemples et le code n'utilisent que des noms de jours (mon, tue, ...) dans les expressions cron : vérifié empiriquement qu'APScheduler ne suit pas la convention Unix pour les jours numériques (0=lundi chez lui, pas 0=dimanche), ce qui rendrait "0 9 * * 1" trompeur.
33 lines
1.1 KiB
Python
33 lines
1.1 KiB
Python
"""
|
|
Configuration de l'application, lue depuis les variables d'environnement.
|
|
|
|
En local, copier .env.example vers .env et remplir les valeurs utiles ;
|
|
python-dotenv charge automatiquement ce fichier .env au démarrage, donc pas
|
|
besoin d'exporter les variables manuellement dans le shell.
|
|
"""
|
|
|
|
import os
|
|
|
|
from dotenv import load_dotenv
|
|
|
|
load_dotenv()
|
|
|
|
|
|
class Settings:
|
|
"""Regroupe tous les réglages venant de l'environnement, avec des
|
|
valeurs par défaut raisonnables pour le développement local."""
|
|
|
|
smtp_host: str | None = os.getenv("SMTP_HOST") or None
|
|
smtp_port: int = int(os.getenv("SMTP_PORT", "25"))
|
|
smtp_user: str | None = os.getenv("SMTP_USER") or None
|
|
smtp_password: str | None = os.getenv("SMTP_PASSWORD") or None
|
|
smtp_from: str = os.getenv("SMTP_FROM", "stock-it@clinique.local")
|
|
|
|
# Si aucun SMTP_HOST n'est renseigné (typiquement en dev local, sans
|
|
# accès au relais mail de la clinique), les alertes sont simplement
|
|
# affichées dans la console au lieu d'être envoyées. Voir email_alerts.py.
|
|
smtp_configured: bool = bool(smtp_host)
|
|
|
|
|
|
settings = Settings()
|