Sync push_then_sync : préserve les absences 'publiee_escada' contre écrasement/orphelines après push (PDF Escada stale). UI reconnaît le statut (calendrier, éditeur, KPIs) au lieu d'afficher 'présent'. Sync_esacada : timeout grille 20s → 45s + retry après reload (AUTOMAT 1 échouait à la 1re classe après changement de langue). Telegram : ajoute liste d'erreurs + tail du log dans les notifs d'échec même en mode normal — avant on avait juste 'a échoué (code 1)'. UX : - Calendrier toujours visible (même sans absences) et démarre sur le mois courant (pas sur le 1er mois d'absence) ; tous les jours cliquables pour pouvoir ajouter une absence. - Date du jour pré-sélectionnée aussi via navigate_to (clic depuis /classe). - KPIs cards taggées kpi-card/kpi-value pour CSS responsive mobile. - Badge 'DEV' dans la sidebar (APP_ENV=dev) — invisible en prod. - Badge 'Built with Reflex' masqué. - KPIs retirés du dashboard /accueil. Prod : - Dockerfile.prod multi-stage (Reflex export bundle + runtime slim). - docker-compose.prod.yml séparé (port 3002, projet eptm-dashboard-prod). - .gitignore + .dockerignore nettoyés. Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
44 lines
1.4 KiB
YAML
44 lines
1.4 KiB
YAML
# Nom de projet distinct de la prod pour que les deux stacks cohabitent
|
|
# sans que `compose up` côté prod ne recrée le container dev (ou inverse).
|
|
name: eptm-dashboard-dev
|
|
|
|
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
container_name: eptm-dashboard-app-1
|
|
init: true
|
|
restart: "no"
|
|
# Pas de ports exposés sur le host : accès uniquement via NPM (proxy_net)
|
|
# → http://eptm-automation.ch:3001 ne fonctionne plus, utiliser https://dev.dashboard.eptm-automation.ch
|
|
volumes:
|
|
- ./eptm_dashboard:/app/eptm_dashboard
|
|
- ./rxconfig.py:/app/rxconfig.py
|
|
- ./data:/app/data
|
|
- ./logs:/logs
|
|
- ./assets:/app/assets
|
|
- ./scripts:/app/scripts
|
|
- ./src:/app/src
|
|
- ./docs:/app/docs:ro
|
|
- ./templates:/app/templates:ro
|
|
env_file:
|
|
- .env.prod
|
|
environment:
|
|
- FRONTEND_PORT=3001
|
|
- BACKEND_PORT=8001
|
|
- API_URL=https://dev.dashboard.eptm-automation.ch
|
|
# Active le badge "DEV" dans la sidebar (sidebar.py:_IS_DEV).
|
|
# En prod, cette variable n'est pas définie → pas de badge.
|
|
- APP_ENV=dev
|
|
# Évite la boucle infinie de hot-reload causée par SQLite WAL/SHM dans data/
|
|
- REFLEX_HOT_RELOAD_EXCLUDE_PATHS=/app/data
|
|
# Timezone du container : aligne avec le host (cohérence cron + logs)
|
|
- TZ=Europe/Zurich
|
|
networks:
|
|
- default
|
|
- proxy_net
|
|
|
|
networks:
|
|
proxy_net:
|
|
external: true
|