This commit is contained in:
2026-06-18 22:05:43 +02:00
parent 663c57306d
commit 96296bbed9
10 changed files with 549 additions and 5 deletions

View File

@@ -313,3 +313,69 @@ Exemple pour un export tous les jours à 02:00 :
```bash
0 2 * * * cd /var/www/ton-projet && npm run export:academie-excel >> /var/log/academy-export.log 2>&1
```
## Export Excel des demandes projet lycée
Le script `scripts/export-lycee-excel.js` génère un fichier `.xlsx` depuis la table MySQL `projet_lycee_demandes`, puis l'envoie dans Microsoft 365 via Microsoft Graph.
### Migration SQL
À exécuter une fois sur la base si tu veux utiliser le mode `pending` :
```sql
source server/database/2026-06-16_lycee_excel_export.sql;
```
### Variables d'environnement
Les variables MySQL et Microsoft Graph communes sont les mêmes que pour l'export Académie :
```env
NUXT_MYSQL_HOST=...
NUXT_MYSQL_PORT=3306
NUXT_MYSQL_DATABASE=...
NUXT_MYSQL_USER=...
NUXT_MYSQL_PASSWORD=...
MICROSOFT_TENANT_ID=...
MICROSOFT_CLIENT_ID=...
MICROSOFT_CLIENT_SECRET=...
GRAPH_DRIVE_ID=...
```
Variables lycée à ajouter :
```env
LYCEE_GRAPH_EXCEL_UPLOAD_PATH=Projets lycee/Demandes/inscriptions-lycee-{date}.xlsx
LYCEE_EXCEL_REPORT_EMAIL=...
```
Optionnel :
```env
LYCEE_GRAPH_EXCEL_ITEM_ID=...
LYCEE_EXCEL_EXPORT_MODE=all
LYCEE_EXCEL_LOCAL_OUTPUT=tmp/inscriptions-lycee-{date}.xlsx
LYCEE_EXCEL_SKIP_UPLOAD=1
```
Modes :
- `LYCEE_EXCEL_EXPORT_MODE=all` : exporte toutes les demandes dans un fichier complet, puis met à jour `exported_to_excel_at` et `export_error`.
- `LYCEE_EXCEL_EXPORT_MODE=pending` : exporte seulement les lignes non exportées, puis met aussi `exported_to_excel` à `1`. Nécessite la migration SQL ci-dessus.
- En cas d'échec après lecture des demandes, `export_error` est renseigné sur les lignes concernées.
- `{date}` dans `LYCEE_GRAPH_EXCEL_UPLOAD_PATH` ou `LYCEE_EXCEL_LOCAL_OUTPUT` est remplacé par la date du jour au format `YYYY-MM-DD`.
- `LYCEE_EXCEL_REPORT_EMAIL` reçoit un email de compte rendu après chaque export, ou un email d'erreur si le traitement échoue.
### Test local sans upload
```bash
LYCEE_EXCEL_SKIP_UPLOAD=1 LYCEE_EXCEL_LOCAL_OUTPUT=tmp/inscriptions-lycee-{date}.xlsx npm run export:lycee-excel
```
### Cron nocturne
Exemple pour un export tous les jours à 02:15 :
```bash
15 2 * * * cd /var/www/ton-projet && npm run export:lycee-excel >> /var/log/lycee-export.log 2>&1
```