- Optimisation des listes de passages (user/admin) - Amélioration du flux de création avec validation temps réel - Amélioration du flux de consultation avec export multi-formats - Amélioration du flux de modification avec suivi des changements - Ajout de la génération PDF pour les reçus - Migration de la structure des uploads - Implémentation de la file d'attente d'emails - Ajout des permissions de suppression de passages - Corrections de bugs et optimisations performances 🤖 Generated with [Claude Code](https://claude.ai/code) Co-Authored-By: Claude <noreply@anthropic.com>
93 lines
3.1 KiB
Markdown
93 lines
3.1 KiB
Markdown
# Réorganisation de l'arborescence des uploads
|
|
|
|
## 📅 Date : 20/08/2025
|
|
|
|
## 🎯 Objectif
|
|
Uniformiser et simplifier l'arborescence des fichiers uploads pour une meilleure organisation et maintenance.
|
|
|
|
## 📂 Arborescence actuelle (PROBLÈME)
|
|
```
|
|
uploads/
|
|
├── entites/
|
|
│ └── 5/
|
|
│ ├── logo/
|
|
│ ├── operations/
|
|
│ │ └── 1525/
|
|
│ │ └── documents/
|
|
│ │ └── exports/
|
|
│ │ └── excel/
|
|
│ │ └── geosector-export-*.xlsx
|
|
│ └── recus/
|
|
│ └── 3124/
|
|
│ └── recu_*.pdf
|
|
└── 5/
|
|
└── operations/
|
|
├── 1525/
|
|
└── 2021/
|
|
```
|
|
|
|
**Problèmes identifiés :**
|
|
- Duplication des structures (dossier `5` à la racine ET dans `entites/`)
|
|
- Chemins trop profonds pour les exports Excel (6 niveaux)
|
|
- Incohérence dans les chemins
|
|
|
|
## ✅ Nouvelle arborescence (SOLUTION)
|
|
```
|
|
uploads/
|
|
└── {entite_id}/ # Un seul dossier par entité à la racine
|
|
├── logo/ # Logo de l'entité
|
|
│ └── logo_*.{jpg,png}
|
|
├── operations/ # Exports par opération
|
|
│ └── {operation_id}/
|
|
│ └── *.xlsx # Exports Excel directement ici
|
|
└── recus/ # Reçus par opération
|
|
└── {operation_id}/
|
|
└── recu_*.pdf
|
|
```
|
|
|
|
## 📝 Fichiers à modifier
|
|
|
|
### 1. EntiteController.php (Upload logo)
|
|
**Actuel :** `/entites/{$entiteId}/logo`
|
|
**Nouveau :** `/{$entiteId}/logo`
|
|
|
|
### 2. ReceiptService.php (Stockage reçus PDF)
|
|
**Actuel :** `/entites/{$entiteId}/recus/{$operationId}`
|
|
**Nouveau :** `/{$entiteId}/recus/{$operationId}`
|
|
|
|
### 3. ExportService.php (Export Excel)
|
|
**Actuel :** `/{$entiteId}/operations/{$operationId}/exports/excel`
|
|
**Nouveau :** `/{$entiteId}/operations/{$operationId}`
|
|
|
|
### 4. ExportService.php (Export JSON)
|
|
**Actuel :** `/{$entiteId}/operations/{$operationId}/exports/json`
|
|
**Nouveau :** `/{$entiteId}/operations/{$operationId}` (ou supprimer si non utilisé)
|
|
|
|
## 🔄 Plan de migration
|
|
|
|
### Étape 1 : Modifier le code
|
|
1. Mettre à jour tous les chemins dans les contrôleurs et services
|
|
2. Tester en environnement DEV
|
|
|
|
### Étape 2 : Script de migration des fichiers existants
|
|
Créer un script PHP pour :
|
|
1. Lister tous les fichiers existants
|
|
2. Les déplacer vers la nouvelle structure
|
|
3. Supprimer les anciens dossiers vides
|
|
|
|
### Étape 3 : Déploiement
|
|
1. Exécuter le script de migration sur REC
|
|
2. Vérifier le bon fonctionnement
|
|
3. Exécuter sur PROD
|
|
|
|
## 🚀 Avantages de la nouvelle structure
|
|
- **Plus simple** : Chemins plus courts et plus logiques
|
|
- **Plus cohérent** : Une seule structure pour toutes les entités
|
|
- **Plus maintenable** : Facile de naviguer et comprendre
|
|
- **Performance** : Moins de niveaux de dossiers à parcourir
|
|
|
|
## ⚠️ Points d'attention
|
|
- Vérifier les permissions (nginx:nobody 775/664)
|
|
- S'assurer que les anciens fichiers sont bien migrés
|
|
- Mettre à jour la documentation
|
|
- Informer l'équipe du changement |