# 🚀 Déploiement - Import Référentiels **Date:** 22 décembre 2025 **Objectif:** Corriger les erreurs 404 sur l'import de référentiels en production ## 📋 Fichiers à déployer (URGENT) ### 1. Script standalone d'import (NOUVEAU) ``` public/import-referentials.php ``` **Raison:** Script de fallback garanti de fonctionner, indépendant du routeur ### 2. Vue des référentiels (MODIFIÉ) ``` app/Views/referentials/index.php ``` **Modifications:** - Handler d'import CSV intégré (lignes 1-149) - Handler de template CSV intégré (lignes 1-149) - JavaScript avec 5 fallbacks (lignes ~860-880) - Gestion d'erreur JSON robuste ### 3. Routeur principal (MODIFIÉ) ``` public/index.php ``` **Modifications:** - Ajout route: `POST /referentials` - Ajout route: `GET /referentials/export` - Ajout route: `GET /referentials/template` - Ajout route: `POST /referentials/import` ### 4. Contrôleur (MODIFIÉ - optionnel si routes fonctionnent) ``` app/Controllers/ReferentialController.php ``` **Modifications:** - Méthode `template()` ajoutée (ligne ~390) - Méthode `import()` améliorée ## 🔧 Actions post-déploiement ### 1. Vider le cache navigateur ```bash # Sur Windows: Ctrl + Shift + R # Sur Mac: Cmd + Shift + R # Ou dans DevTools: Network > Disable cache > Refresh ``` ### 2. Tester l'import 1. Accéder à: https://maintenance-back.insuite-ci.com/public/referentials 2. Cliquer sur "Template" pour télécharger un exemple 3. Remplir le CSV avec des données 4. Cliquer sur "Import" et uploader le fichier 5. Vérifier le succès ### 3. Diagnostics disponibles #### Script de vérification ``` https://maintenance-back.insuite-ci.com/public/verify-referentials-fix.php ``` Vérifie si tous les fichiers sont à jour #### Test direct du script standalone ```bash curl -X POST \ -F "type=maintenance_types" \ -F "file=@template.csv" \ -b "cookies.txt" \ https://maintenance-back.insuite-ci.com/public/import-referentials.php ``` ## 🎯 Ordre de fallback JavaScript Le JS tentera automatiquement dans cet ordre: 1. **Route dédiée via routeur:** `POST /public/referentials/import` (champs: `file`, `type`) 2. **Route directe avec préfixe:** `POST /public/referentials/import` (champs: `file`, `type`) 3. **Handler inline via routeur:** `POST /public/referentials` (champs: `import_file`, `import_type`) 4. **Handler inline direct:** `POST /public/referentials` (champs: `import_file`, `import_type`) 5. **Script standalone (GARANTI):** `POST /public/import-referentials.php` (champs: `file`, `type`) ## ✅ Checklist de déploiement - [ ] Sauvegarder les fichiers actuels en prod - [ ] Upload `public/import-referentials.php` - [ ] Upload `app/Views/referentials/index.php` - [ ] Upload `public/index.php` - [ ] Upload `app/Controllers/ReferentialController.php` (optionnel) - [ ] Tester le téléchargement de template - [ ] Tester l'import CSV - [ ] Vérifier les données importées dans la base - [ ] Supprimer les fichiers de diagnostic si souhaité ## 🐛 Résolution de problèmes ### Erreur: "Non authentifié" - Vérifier que l'utilisateur est connecté - Vérifier que le cookie de session est valide ### Erreur: "Accès non autorisé" - Vérifier que l'utilisateur a le rôle `admin` ### Erreur: "Fichier non uploadé" - Vérifier `upload_max_filesize` dans php.ini (min 10M) - Vérifier `post_max_size` dans php.ini (min 10M) ### Tous les endpoints retournent 404 - **Cause:** Fichiers non déployés en production - **Solution:** Déployer les 3 fichiers listés ci-dessus ### Import réussit mais données non visibles - Actualiser la page (Ctrl+R) - Vérifier la table dans phpMyAdmin - Vérifier que `active = 1` dans les données importées ## 📊 Format CSV attendu ### maintenance_types ```csv name,active Maintenance préventive,1 Maintenance corrective,1 ``` ### locations ```csv name,client_id,active Paris,1,1 Lyon,1,1 ``` ### priority_levels ```csv name,sort_order,color,description Critique,1,#FF0000,Priorité maximale Haute,2,#FFA500,Priorité haute ``` ## 🔗 URLs utiles - Page des référentiels: https://maintenance-back.insuite-ci.com/public/referentials - Vérification: https://maintenance-back.insuite-ci.com/public/verify-referentials-fix.php - Test diagnostic: https://maintenance-back.insuite-ci.com/public/check-template-route.php --- **Note:** Le script standalone `import-referentials.php` garantit le fonctionnement même si le routeur n'est pas à jour.