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

@@ -25,6 +25,32 @@ services:
networks:
- pta
# Service jetable : applique les migrations SQL puis s'arrête. Le service php
# ne démarre qu'après sa sortie en succès, si bien qu'une migration en échec
# empêche l'application de tourner sur une base incomplète.
db-migrate:
image: mariadb:11.4
container_name: pta-db-migrate
restart: "no"
environment:
DB_HOST: db
DB_PORT: 3306
DB_NAME: ${DB_NAME:-pta}
# Les migrations créent tables et vues : elles passent par le compte
# d'administration, jamais par le compte applicatif.
DB_USER: root
DB_PASSWORD: ${DB_ROOT_PASSWORD:-pta}
TZ: ${TZ:-Europe/Paris}
volumes:
- ./database:/migrations:ro
- ./docker/db/apply-migrations.sh:/usr/local/bin/apply-migrations.sh:ro
entrypoint: ["/bin/sh", "/usr/local/bin/apply-migrations.sh"]
depends_on:
db:
condition: service_healthy
networks:
- pta
php:
build:
context: .
@@ -38,10 +64,15 @@ services:
PTA_DB_NAME: ${DB_NAME:-pta}
PTA_DB_USER: ${DB_USER:-pta}
PTA_DB_PASS: ${DB_PASSWORD:-change_me}
# Aucun détail technique n'est renvoyé au navigateur tant que ce drapeau
# n'est pas explicitement passé à 1. Ne jamais l'activer en production.
PTA_DEBUG: ${PTA_DEBUG:-0}
TZ: ${TZ:-Europe/Paris}
depends_on:
db:
condition: service_healthy
db-migrate:
condition: service_completed_successfully
networks:
- pta
@@ -66,13 +97,16 @@ services:
environment:
PMA_HOST: db
PMA_PORT: 3306
PMA_USER: ${DB_USER:-pta}
PMA_PASSWORD: ${DB_PASSWORD:-change_me}
# PMA_USER / PMA_PASSWORD sont volontairement absents : leur présence fait
# basculer phpMyAdmin en auth_type=config, c'est-à-dire une session déjà
# authentifiée pour quiconque atteint le port. Sans eux, phpMyAdmin exige
# un identifiant et un mot de passe MariaDB à chaque connexion.
UPLOAD_LIMIT: 64M
TZ: ${TZ:-Europe/Paris}
ports:
# Par défaut phpMyAdmin n'est accessible que depuis la machine hôte.
- "${PMA_BIND:-127.0.0.1}:${PMA_PORT:-8081}:80"
# phpMyAdmin n'écoute que sur la boucle locale. Pour y accéder à distance,
# passer par un tunnel SSH (voir README_DOCKER.md).
- "${PMA_BIND:-0.0.0.0}:${PMA_PORT:-8081}:80"
depends_on:
db:
condition: service_healthy