# Éditeur visuel AccroCbio L'administration éditoriale fonctionne depuis **le frontend** : `http://ADRESSE-DU-SERVEUR:1028/admin` ou `https://votre-domaine/admin` (si nginx dirige cette URL vers React). L'URL `:1029/admin/` correspond toujours à **Django Admin**, un outil différent. ## Première mise en route 1. Installer / redémarrer les deux conteneurs avec le `docker-compose.yml` habituel. 2. Dans le conteneur backend Django, exécuter `python manage.py migrate` (nouvelle migration `education/0003_sitecontent.py`). 3. Créer un compte administrateur si nécessaire : `python manage.py createsuperuser` (ou utiliser un utilisateur Django existant avec `is_staff=True`). 4. Ouvrir `http://IP:1028/admin` et s'identifier. 5. Dans l'onglet **Pages**, choisir une page : le **mode édition** s'active automatiquement. Cliquer sur les petits crayons à côté des textes et sur **Changer l'image** près des illustrations. **Enregistrer** publie le changement, **Restaurer** remet la valeur par défaut. 6. Utiliser les onglets **Ressources / Avis / Offres / Messages** pour créer, modifier, masquer et supprimer les éléments de la base. 7. **Terminer** désactive les crayons ; **Tableau de bord** revient au panneau d'administration. ## Informations techniques - Le frontend reste sur le port **1028** et le backend Django sur le port **1029** ; les fichiers Docker d'origine sont conservés. - Le `vite.config.js` transmet automatiquement `/api/` au service Docker `backend:1029`. En production derrière nginx, veiller à transmettre `/api/` à Django et toutes les routes du frontend, notamment `/admin`, à React. - Les images téléversées (PNG, JPG, WebP ; maximum 5 Mo) sont conservées dans `backend/media/editor/`. Sauvegarder ce dossier avec la base de données. Les liens HTTPS vers des images externes fonctionnent aussi. - Les textes modifiés sont enregistrés dans la table `education_sitecontent` (différentiel par rapport au texte du code). L'édition ne nécessite ni recompilation React ni redémarrage Docker. - Le mot de passe n'est pas stocké dans le navigateur. Le jeton d'accès est conservé uniquement durant l'onglet ouvert (`sessionStorage`) et est contrôlé côté API. Utiliser **HTTPS** en dehors du réseau local. - Les modifications des liens n'acceptent que les chemins internes (`/contact`) ou les URL HTTPS. - Le texte de la page et les illustrations peuvent être édités ; il ne s'agit pas encore d'un constructeur de sections glisser-déposer. Les composants React/shadcn et les mises en page restent définis dans le code. ## Vérifications Tests Django (dans le conteneur backend avec sa configuration de test) : ```bash python manage.py test education ``` Compilation du frontend : ```bash npm run build ```