115 lines
5.2 KiB
Markdown
115 lines
5.2 KiB
Markdown
# 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
|
||
|
||
```text
|
||
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é :
|
||
|
||
```text
|
||
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 ; elle est appliquée
|
||
automatiquement au déploiement par le service `db-migrate` du docker-compose.
|
||
|
||
## 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`.
|
||
|
||
## V7.11 — Connexion par jeton, espace DSI et journal d’activité
|
||
|
||
`role.php` n’est plus un sélecteur de rôle : chaque utilisateur se connecte avec un jeton personnel
|
||
distribué par la DSI, dont la base ne conserve qu’une empreinte SHA-256. Un quatrième rôle `DSI`
|
||
ouvre `dsi.php` : gestion des comptes d’accès (dont les administrateurs Service Enfance) et lecture
|
||
du journal d’activité, qui trace les connexions, les écritures en base et les refus d’accès. La
|
||
migration `database/migration_v7_9e_dsi_comptes_journal.sql` est obligatoire ; elle crée aussi le
|
||
compte DSI d’installation dont le jeton, public, est à régénérer immédiatement. Voir
|
||
`README_V7_11.md`.
|
||
|
||
## V7.12 — Mot de passe des comptes privilégiés
|
||
|
||
Les comptes Service Enfance et DSI ajoutent un second facteur à leur jeton : un mot de passe choisi
|
||
par leur titulaire à sa première connexion, que la DSI ne peut qu’effacer, jamais lire. Les agents et
|
||
les responsables de lieu restent à un seul facteur. Migration
|
||
`database/migration_v7_9f_mot_de_passe_admin.sql`. Voir `README_V7_12.md`.
|
||
|
||
## V7.13 — Nom et prénom modifiables
|
||
|
||
La fiche agent laisse désormais corriger le nom et le prénom, à côté des autres champs déjà
|
||
modifiables. Le matricule et la quotité de travail restent immuables. Un renommage est journalisé
|
||
avec l’identité précédente. Aucune migration. Voir `README_V7_13.md`.
|
||
|
||
## V7.14 — Groupe de navigation « Management »
|
||
|
||
Les agents et les lieux d’affectation quittent l’onglet « Administration » pour deux onglets
|
||
distincts, réunis dans un groupe « Management » de la barre de navigation, au même titre que
|
||
« Piloter » ou « Planifier ». « Administration » ne conserve que les horaires de couverture.
|
||
Migration `database/migration_v7_9g_management.sql` (droits d’accès aux deux pages). Voir
|
||
`README_V7_14.md`.
|
||
|
||
## V7.15 — Affectations bornées par le contrat
|
||
|
||
Un agent ne peut plus être planifié avant sa date de début de contrat ni après sa date de fin, quel
|
||
que soit le chemin d’écriture (saisie, déplacement, copie de semaine, semaine type). La validation
|
||
signale les affectations devenues hors contrat, et raccourcir un contrat sous des affectations
|
||
existantes est refusé. Aucune migration. Voir `README_V7_15.md`.
|