Étape 3 : import CSV/Excel des bénévoles et disponibilités
- Fichier unique, processus en deux temps : POST /editions/{id}/import/analyze
(colonnes détectées, aperçu, mapping suggéré, demi-journées de l'édition)
puis POST /editions/{id}/import/execute (mapping validé)
- Parser CSV (délimiteur et encodage devinés, BOM) et XLSX (openpyxl),
détection XLSX par nombre magique
- Vocabulaire des valeurs de disponibilité (tri-état, accents/casse) et des
tailles de t-shirt ; compétences créées à la volée dans le référentiel
- Rapport ligne par ligne : codes de traduction + paramètres, jamais de
phrase. Doublons : upsert sur email, signalement sur (nom, prénom) sans
email, doublons intra-fichier. Mode simulation (rollback, rien de persisté)
- 40 tests : parser, valeurs, service (tous les cas), endpoints
- Dépendances : python-multipart, openpyxl
Co-Authored-By: Claude Sonnet 5 <noreply@anthropic.com>
Claude-Session: https://claude.ai/code/session_017uUsRg7XzopkCPWimwg9ZM
This commit is contained in:
co-authored by
Claude Sonnet 5
parent
cb2e84adf0
commit
bb919554ff
@@ -187,7 +187,8 @@ pointage sur site · fonctions d'IA.
|
||||
│ │ ├── config.py # settings (pydantic-settings)
|
||||
│ │ ├── db.py # engine + session
|
||||
│ │ ├── logging_config.py # RGPD : pas de PII dans les logs
|
||||
│ │ ├── api/ # routers
|
||||
│ │ ├── api/ # routers (health, imports)
|
||||
│ │ ├── importing/ # import CSV/Excel (parser, values, service)
|
||||
│ │ ├── models/ # tables SQLModel
|
||||
│ │ ├── validation/ # moteur de règles (cœur du produit)
|
||||
│ │ ├── i18n/
|
||||
@@ -260,4 +261,9 @@ Aucune dépendance locale requise hors Docker.
|
||||
| Étape | Description | État |
|
||||
|-------|-------------------------------------------------------|----------|
|
||||
| 1 | Squelette : monorepo, Docker, CI/CD, backend qui démarre | validée |
|
||||
| 2 | Modèle de données complet + migration Alembic initiale | à valider |
|
||||
| 2 | Modèle de données complet + migration Alembic initiale | validée |
|
||||
| 3 | Import CSV/Excel (analyse + exécution, rapport, doublons, simulation) | à valider |
|
||||
|
||||
> **En attente** : la couche d'authentification (lien magique, `Account`,
|
||||
> JWT, dépendances de rôle) fera l'objet d'une étape dédiée. Les endpoints
|
||||
> actuels ne sont pas encore protégés.
|
||||
|
||||
Reference in New Issue
Block a user