V7.10 — Tableau de bord, guide, semaine type et enveloppe de formation

Reprise dans le répertoire de production du travail mené dans le worktree
ux-service-enfance :

- tableau de bord Service Enfance (dashboard.php) et navigation regroupée ;
- guide d'utilisation (faq.php) accessible depuis toute la navigation ;
- éditeur de semaine type mis en avant sur l'écran de saisie ;
- droit à l'enveloppe de formation par agent, en remplacement de la case
  « formation déjà prévue dans la répartition annuelle » ;
- correctif de « [object Object] » sur les cartes de quota du PTA ;
- motif de travail par défaut à la saisie, heures travaillées complètes
  dans les PDF.

Le docker-compose.yml de production est conservé : celui du worktree décrit
une pile de test (conteneurs et volume suffixés « test », ports 9080/9081),
qui aurait fait redémarrer l'application sur un volume MariaDB vide.

Les migrations database/migration_v7_9*.sql sont obligatoires ; le service
db-migrate les applique au déploiement.

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
This commit is contained in:
PTA
2026-08-17 16:53:04 +02:00
parent 57bd8da5c8
commit 4201894e28
69 changed files with 5228 additions and 246 deletions

View File

@@ -0,0 +1,30 @@
-- ============================================================================
-- PTA — Guide d'utilisation (page « faq »)
-- ============================================================================
-- Appliquée automatiquement au démarrage par le service db-migrate.
-- Pour un import manuel sur une base existante :
-- SOURCE database/migration_v7_9d_faq.sql;
--
-- Le guide suit la règle posée en V7.8 : une page absente de acces_role_page
-- est refusée. Il est ouvert aux trois rôles — c'est un secours, pas un droit
-- métier — et son bouton d'accès n'apparaît dans la barre de navigation que si
-- cette migration a été jouée.
--
-- La page est purement statique : aucune table, aucune vue, aucune donnée
-- métier n'est touchée. L'ordre d'affichage est indicatif, le bouton étant
-- ancré à droite de la barre plutôt que rangé dans un groupe d'onglets.
-- ============================================================================
INSERT INTO acces_role_page (role, page, ordre_affichage) VALUES
('AGENT', 'faq', 200),
('RESPONSABLE_STRUCTURE', 'faq', 200),
('SERVICE_ENFANCE', 'faq', 200)
ON DUPLICATE KEY UPDATE ordre_affichage = VALUES(ordre_affichage);
-- ============================================================================
-- Vérification après import :
-- SELECT role, page FROM v_acces_role_page WHERE page = 'faq';
--
-- Retour arrière :
-- DELETE FROM acces_role_page WHERE page = 'faq';
-- ============================================================================