eptm_dashboard/src
Julien Balet 6d1b7c8044 retenue: avis PDF + notices Escada + mapping profession
- nouvelle page /retenue : sélection apprenti, date retenue, date du
  problème, motif (3 cases mutex), branche (autocomplete + saisie libre
  depuis NotesExamen), remarque. Génération PDF basée sur le template
  AcroForm officiel, séparation des 3 widgets Date partagés en 3 champs
  distincts pour ne remplir que celui de la case cochée. Téléchargement
  ou envoi par email (3 destinataires).
- profession : nouveau champ ApprentiFiche.profession, dérivé du préfixe
  de classe via mapping configurable dans Paramètres
  ("AUTOMAT" → "Automaticien CFC" par défaut). Section dédiée avec
  classes orphelines détectées automatiquement.
- notices Escada : nouvelle table Notice (apprenti, titre, remarque,
  date, status). Checkbox "Ajouter automatiquement une notice sur
  Escada" sur /retenue qui crée une entrée pending. Bloc dédié sur
  /escada listant les pending, bouton "Pousser les notices" qui lance
  scripts/push_notices.py (Playwright : navigation Classes → Élèves →
  Notices → Ajouter, fill date / titre / remarque, vérification post-save,
  suppression DB si OK, marquage failed sinon). Nouveau task_kind "push_notices"
  dans le cron pour exécution planifiée.

Co-Authored-By: Claude Opus 4.7 (1M context) <noreply@anthropic.com>
2026-05-11 11:24:15 +02:00
..
__init__.py mise en route server avec dev 2026-05-07 23:43:05 +02:00
db.py retenue: avis PDF + notices Escada + mapping profession 2026-05-11 11:24:15 +02:00
email_sender.py auth: flow email pour mdp + page profil + restriction d'accès par classe 2026-05-10 19:52:10 +02:00
importer.py tuiles sanction et webmanifest 2026-05-10 19:11:25 +02:00
importer_bn.py tuiles sanction et webmanifest 2026-05-10 19:11:25 +02:00
importer_matu.py mise en route server avec dev 2026-05-07 23:43:05 +02:00
importer_notes.py tuiles sanction et webmanifest 2026-05-10 19:11:25 +02:00
logger.py import escada ok 2026-05-09 23:27:46 +02:00
notifier.py sync escada : gestion fine des pendings + détection orphelines 2026-05-10 15:24:43 +02:00
parser.py mise en route server avec dev 2026-05-07 23:43:05 +02:00
parser_bn.py upgrade css + ajout documentation 2026-05-10 17:02:21 +02:00
parser_matu.py mise en route server avec dev 2026-05-07 23:43:05 +02:00
password_emails.py auth: flow email pour mdp + page profil + restriction d'accès par classe 2026-05-10 19:52:10 +02:00
password_tokens.py auth: flow email pour mdp + page profil + restriction d'accès par classe 2026-05-10 19:52:10 +02:00
profession.py retenue: avis PDF + notices Escada + mapping profession 2026-05-11 11:24:15 +02:00
retenue_pdf.py retenue: avis PDF + notices Escada + mapping profession 2026-05-11 11:24:15 +02:00
sanction_pdf.py tuiles sanction et webmanifest 2026-05-10 19:11:25 +02:00
stats.py mise en route server avec dev 2026-05-07 23:43:05 +02:00
user_access.py auth: flow email pour mdp + page profil + restriction d'accès par classe 2026-05-10 19:52:10 +02:00