- importer.py : nouvelle logique pour les 4 cas d'absence × pending :
* abs en PDF + pending modify : pending wins (sans force) / override (force)
* abs en PDF + pas en DB + pending action=clear : respecte la suppression
locale (sans force) / recrée l'abs (force)
* orpheline (DB sans PDF) sans pending : supprimée + comptée + détaillée
* orpheline avec pending : conservée (sans force) / supprimée (force)
- importer.py : query orpheline par classe + fenêtre de dates du PDF
(couvre les abs locales avec import_id=None)
- run_imports.py : remonte orphelines + pending_skipped dans res_abs
- notifier.py : niveau detailed inclut absences supprimées par classe
+ détail des orphelines (max 5 par classe)
- escada.py : sépare cache disque (toutes classes pour matching Matu)
vs liste UI (filtrée MP/MI/Formation)
- escada.py : timeout polling import passe de 60s à 15min
- escada.py : retire mode test push, fix bouton Actualiser bloqué sans
classe sélectionnée
- cron.py : reset last_run_at à l'activation d'un job pour relance
immédiate au prochain tick
Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
34 lines
1,015 B
YAML
34 lines
1,015 B
YAML
services:
|
|
app:
|
|
build:
|
|
context: .
|
|
dockerfile: Dockerfile.dev
|
|
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
|
|
env_file:
|
|
- .env.prod
|
|
environment:
|
|
- FRONTEND_PORT=3001
|
|
- BACKEND_PORT=8001
|
|
- API_URL=https://dev.dashboard.eptm-automation.ch
|
|
# É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
|