La fiche agent portait deux cases à cocher pour la formation depuis l'ajout du droit à l'enveloppe : celle-ci faisait doublon et disparaît, avec sa colonne `agent.formation_repartition_annuelle` et tout ce qui la lisait — projection SQL, création et modification d'agent, formulaires d'administration, JS, et liste des colonnes obligatoires de SchemaModel. L'enveloppe de formation ne dépend donc plus que du droit : AgentModel::trainingEnvelopeMinutes() rend 14 h ou 0. La colonne est retirée du socle (le CREATE TABLE ne la crée plus sur une base neuve) et par migration_v7_9c sur les bases existantes. migration_v7_9b perd sa clause AFTER, qui pointait sur la colonne supprimée et aurait fait échouer l'installation d'une base neuve ; sa réécriture est sans risque, le script de migration rejoue un fichier modifié et l'ALTER reste idempotent. Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
PTA V6 — application PHP MVC multipage
PTA n’est plus une SPA. Chaque fonction principale correspond à une page PHP distincte :
planning.php: saisie, brouillon, validation et semaines types ;pending.php: plannings en attente de validation ;coverage.php: contrôle des créneaux sans agent ;structures.php: planning hebdomadaire par lieu ;agents.php: planning mensuel et bilan par agent ;vacations.php: aperçu et enregistrement des vacances scolaires ;administration.php: lieux, agents et règles de couverture.
index.php redirige vers le choix de rôle lors de la première visite, puis vers la page d’accueil autorisée pour le profil sélectionné.
Architecture
page PHP
→ PageController
→ Models / Services
→ View dédiée
View
→ API JSON uniquement pour les actions asynchrones utiles
Les contrôleurs métier, modèles, services PDF et endpoints API de la V5.20 sont conservés. La différence principale porte sur l’interface : plus de routeur JavaScript, plus de vues cachées et plus de chargement de tous les modules sur une seule page.
JavaScript chargé par page
- Saisie :
planning-editor.jsetweek-templates.js; - À valider :
pending-validation.js; - Couverture :
coverage.js; - Par lieu :
structure-overview.js; - Par agent :
agent-overview.js; - Vacances :
vacation-calendar.js; - Administration :
administration.jset la partie configuration decoverage.js.
assets/js/page-bootstrap.js initialise uniquement les modules déclarés par la page et applique les filtres transmis dans l’URL.
Liens directs
Une page de contrôle peut ouvrir directement le planning concerné :
planning.php?structure_id=2&agent_id=7&week=2026-W31&focus=validation
Installation
- Configurer
config.php. - Utiliser le schéma SQL correspondant à la V5.20.
- Placer le dossier sur le serveur PHP.
- Ouvrir
index.phpouplanning.php.
Aucune migration SQL supplémentaire n’est nécessaire pour passer de la V5.20 à la V6.
Version 7
Voir README_V7.md pour le nouveau socle PTA annuel, les équipes des mercredis/vacances et les contrôles métier associés.
V7.2 — Vue annuelle
La page annual.php reproduit l’esprit du tableau annuel historique : douze mois côte à côte, codes AP/PP/AE/PE, couleurs métier, vacances scolaires et accès direct à la semaine à corriger. Voir README_V7_2.md.
V7.8 — Sécurité et droits en base
Les correctifs de sécurité et le déplacement de la matrice des droits dans des
vues SQL sont décrits dans README_V7_8.md. La migration
database/migration_v7_8_securite_acces.sql est obligatoire.
V7.4 — Rôles et droits d’accès
La première arrivée ouvre role.php. Les droits Agent, Responsable de structure et Service Enfance sont vérifiés dans les pages et les contrôleurs API. Voir README_V7_4.md.