PTA 30cb50031d Droit à l'enveloppe de formation par agent, et motif « Formation » filtré à la saisie
Nouvelle colonne `agent.droit_enveloppe_formation`, cochée par défaut, saisie à
la création de l'agent et modifiable depuis sa fiche. Un agent sans ce droit :

- ne voit plus le motif « Formation » dans le sélecteur de motif de l'éditeur de
  planning ni dans le modal de la vue individuelle ;
- se voit refuser toute affectation de ce motif par le serveur, avec un message
  qui nomme le motif et l'agent (save_planning.php et update_agent_entry.php) ;
- a une enveloppe de formation de 0 min au PTA annuel, et une ALERTE
  FORMATION_SANS_DROIT si des heures de formation subsistent dans son planning.

À ne pas confondre avec `formation_repartition_annuelle`, qui existait déjà :
celle-ci dit que la formation est déjà comptée dans la répartition annuelle —
l'agent y a droit, l'enveloppe complémentaire n'est simplement pas ajoutée. Les
deux règles sont désormais rassemblées dans AgentModel::trainingEnvelopeMinutes(),
qui remplace les deux calculs « 840 ou 0 » jusque-là dupliqués.

Le motif interdit reste affiché lorsqu'il est déjà celui de la plage en cours
d'édition : le retirer de la liste changerait silencieusement le motif d'une
saisie existante. C'est le contrôle de saisie, puis le serveur, qui demandent
alors de corriger la plage.

La migration est nommée v7_9b et non v7_10 : les fichiers sont joués dans
l'ordre alphabétique, où « v7_10 » passerait avant « v7_8 ».

Co-Authored-By: Claude Opus 5 <noreply@anthropic.com>
2026-08-11 15:30:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:19:14 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00
2026-08-07 16:13:43 +02:00

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.js et week-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.js et la partie configuration de coverage.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

  1. Configurer config.php.
  2. Utiliser le schéma SQL correspondant à la V5.20.
  3. Placer le dossier sur le serveur PHP.
  4. Ouvrir index.php ou planning.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.

Description
No description provided
Readme 1.4 MiB
Languages
PHP 67.1%
JavaScript 26.9%
CSS 5.5%
Shell 0.4%