# Campagne photos 4×4 — étudiants

## Objectif

La campagne permet de photographier ou d’importer les élèves un par un, de recadrer chaque image au format carré et de l’enregistrer immédiatement dans la fiche existante de l’étudiant.

## Accès

`École > Étudiants > Campagne photos 4×4`

La page est réservée aux administrateurs de l’école et respecte l’isolation multi-école.

## Fonctionnement

1. Filtrer par année, section, classe et statut de photo.
2. Sélectionner un élève dans la liste.
3. Importer une image ou ouvrir la caméra.
4. Déplacer, zoomer ou tourner l’image dans le cadre carré.
5. Cliquer sur **Enregistrer et suivant**.
6. L’enregistrement est immédiatement validé en base avant le passage à l’élève suivant.

La campagne reprend naturellement sur les élèves sans photo si elle est interrompue.

## Image finale

- ratio carré 1:1 ;
- résolution 800 × 800 pixels ;
- JPEG optimisé côté navigateur ;
- contrôle serveur du MIME, des dimensions et de la taille ;
- nouveau nom de fichier unique pour éviter les problèmes de cache.

## Réutilisation

La photo utilise toujours `Etudiant.photoName` et `Etudiant::getPhotoPath()`. Elle est donc immédiatement disponible dans :

- l’administration ;
- le portail parent ;
- le player TV, le podium et les fiches résultats ;
- les suivis ;
- les rapports PDF de suivi.

## Caméra

L’accès caméra nécessite une page HTTPS et l’autorisation du navigateur. L’import de fichier reste disponible en permanence comme solution de secours.

## Dépendances

Aucune bibliothèque JavaScript externe, GD ou Imagick n’est requise. Le cadrage est réalisé avec Canvas dans le navigateur, puis contrôlé par Symfony.
