- Utilisation de sed en premier (plus simple)
- Fallback avec Python en une seule ligne si sed échoue
- Pas de heredoc complexe qui cause des problèmes d'échappement
- Création de team.tsx directement dans le Dockerfile
- Modification de Navigation.tsx avec Python inline
- Méthode alternative si le pattern regex ne fonctionne pas
- Plus simple et plus fiable que d'utiliser un script séparé
- Utilisation de return au lieu de exit pour ne pas tuer le shell parent
- Le Dockerfile gère déjà les erreurs avec || exit 1
- Retour 0 à la fin pour indiquer le succès
- Simplification de la gestion d'erreurs dans Dockerfile
- Suppression de set -e dans le script pour mieux gérer les erreurs
- Vérification que Navigation.tsx existe avant modification
- Affichage du contenu en cas d'échec
- Désactivation temporaire de set -e pour voir toutes les erreurs
- Capture du code de sortie du script
- Affichage du contenu de Navigation.tsx en cas d'échec
- Réactivation de set -e à la fin
- Utilisation de if/then au lieu de && pour mieux gérer les erreurs
- Affichage du contenu de Navigation.tsx en cas d'échec
- Affichage du contenu du dossier pages/ si team.tsx n'existe pas
- Messages d'erreur plus clairs
- Affichage du contenu de Navigation.tsx avant modification
- Affichage complet après modification pour vérification
- Exit code 1 si la modification échoue
- Logs détaillés pour identifier le problème
- Utilisation de sed en premier (plus simple)
- Fallback avec Python si sed échoue
- Logs détaillés pour voir le contenu avant/après
- Affichage du contenu modifié pour vérification
- Ajout de /app/.techradar/public/ dans la recherche
- Logs détaillés avec pwd pour voir le répertoire actuel
- Vérification après copie pour confirmer le succès
- Meilleur diagnostic des chemins
- Vérification explicite que team.html existe dans public/ source
- Logs détaillés pour identifier où le fichier se trouve
- Vérification après copie dans .techradar/public/
- Recherche dans .techradar/public/
- Recherche dans /app/public/
- Recherche dans ../public/
- Logs détaillés pour diagnostic
- Copie de team-visualization-data.json également
- Installation de Python3 dans Dockerfile
- Logs détaillés pour diagnostic
- Vérification après modification
- set -e pour arrêter en cas d'erreur
- Vérification dans Dockerfile que le script a réussi
- Utilisation de Python au lieu de sed/awk pour modification précise
- Insertion correcte du lien Équipe après Overview
- Page team.tsx avec iframe pour charger team.html
- Script create-team-page.sh pour créer team.tsx et modifier Navigation
- Page Next.js qui charge team.html dynamiquement
- Lien Équipe ajouté directement dans le composant Navigation React
- Plus fiable que l'injection JavaScript
- Vérification de l'existence de team.html dans out/ au démarrage
- Copie automatique depuis public/ si absent
- Ajout de --single à serve pour gérer les routes SPA (peut aider pour les fichiers HTML)
- Utilisation de MutationObserver pour détecter quand le header est ajouté au DOM
- Timeout de sécurité après 5 secondes
- Amélioration de la logique d'initialisation pour éviter les exécutions multiples
- Logs détaillés pour diagnostic
- Logs dans initWhenReady() pour voir si le header est trouvé
- Logs dans addLinksToHeader() pour voir si la fonction est appelée
- Retry avec limite de 10 tentatives pour trouver le header
- Logs pour vérifier l'ajout du lien Équipe
- Logs détaillés pour voir ce qui est copié dans out/
- Vérification du contenu de out/ avant et après copie
- Diagnostic amélioré pour identifier le problème
- Amélioration de la copie de team.html avec vérifications et logs
- Fonction initWhenReady() pour attendre que le header soit disponible
- Logs de debug pour vérifier l'ajout du lien Équipe
- Vérification de l'existence des fichiers avant copie dans out/
- Correction logique addLinksToHeader() pour éviter retour prématuré
- Utilisation d'un conteneur dédié pour les liens de navigation
- Copie explicite de team.html et team-visualization-data.json dans out/ après build
- Le lien Équipe s'affiche maintenant correctement dans le header
- Création de guide-page-equipe.md avec documentation complète
- Description des 3 visualisations (graphe réseau, matrice congestion, équipe genèse)
- Instructions pour régénérer les données
- Guide de personnalisation et cas d'usage
- Mise à jour du README avec lien vers la nouvelle documentation
- Création du script generate-team-visualization-data.js pour générer les données JSON
- Page /team.html avec 3 visualisations :
* Graphe réseau (Cytoscape.js) : technologies ↔ membres
* Matrice de congestion : technologies core et disponibilité
* Équipe de genèse MVP : sélection automatique pour MVP 2 mois
- Ajout du lien '👥 Équipe' dans le header du radar
- Données JSON générées pour visualisations interactives
- Identification des congestions et technologies non couvertes
- Création de 12 fichiers de profils individuels dans docs/data/team/
- Chaque profil contient métadonnées YAML complètes (compétences, projets, soft skills)
- Correction du script extract-technologies.js pour charger toutes les compétences depuis les fichiers
- Mise à jour des blips radar avec les données d'équipe correctes
- Suppression des anciens fichiers dans radar/ (remplacés par radar-business/)
- 58 compétences au total chargées depuis les fichiers individuels
- Légende remontée de bottom: 220px à bottom: 320px
- Plus d'espace entre la légende et le quadrant 4
- La légende est maintenant bien plus haute à droite
- Quadrant 4 descendu à bottom: 10px (tout en bas)
- Légende remontée à bottom: 220px (en haut à droite)
- La légende prend maintenant la place qu'occupait le quadrant 4
- Le quadrant 4 est maintenant en bas à droite
- Largeur des labels augmentée à 180px (au lieu de 160px)
- Tailles de police augmentées : titre 15px, description 12px
- Labels positionnés à 10px des bords (extrêmes coins)
- Quadrant 4 remonté à 240px du bas (très haut)
- Légende positionnée à 10px du bas à droite (coin extrême)
- Espacement maximal entre tous les éléments
- Utilisation de sélecteurs basés sur la structure réelle du DOM
- Réduction de la largeur des labels à 160px
- Réduction de toutes les tailles de police (titre 14px, description 11px)
- Labels positionnés à 60px des bords
- Quadrant 4 remonté à 160px du bas pour la légende
- Légende positionnée à 60px du bas à droite
- Z-index 100 pour la légende
- Sélecteurs ciblant directement [class*='Radar_radar'] [class*='Label_label']
- Approche simplifiée avec sélecteurs plus génériques
- Marges augmentées à 50px pour tous les quadrants
- Quadrant 4 repositionné à 200px du bas
- Légende repositionnée à 50px du bas à droite
- Z-index augmenté pour la légende
- Suppression des sélecteurs trop spécifiques qui ne fonctionnaient pas
- Tous les quadrants maintenant à 40px des bords (au lieu de 30px)
- Quadrant 4 repositionné à 220px du bas (au lieu de 180px) pour plus d'espace
- Légende repositionnée à 40px du bas à droite
- Espacement maximal pour éviter tout chevauchement
- Augmentation des marges à 30px pour tous les quadrants
- Quadrant 4 repositionné à 180px du bas (au lieu de 120px)
- Légende repositionnée à 30px du bas à droite
- Réduction de la taille des labels (170px au lieu de 180px)
- Réduction de la taille de la police pour économiser l'espace
- Z-index augmenté pour la légende pour s'assurer qu'elle est au-dessus
- Position absolute explicite pour la légende
- Augmentation des marges des 4 quadrants à 20px des bords
- Repositionnement du quadrant 4 à 120px du bas pour laisser de la place à la légende
- Repositionnement de la légende en bas à droite à 20px des bords
- La légende ne chevauche plus le quadrant 4
- Réduction de la largeur des labels à 180px
- Positionnement à 10px des bords (au lieu de 30px) pour être vraiment en dehors des cercles
- Les labels sont maintenant complètement en dehors de la zone des cercles (rayon max 400px)
- Ajustement de la légende avec position fixe en bas à droite
- Ajout de box-shadow pour améliorer la visibilité
- Sélecteurs CSS plus spécifiques pour garantir l'application des styles
- Retrait de no_cache (non supporté dans docker-compose)
- Ajustement précis des positions pour les 4 quadrants (30px des bords)
- Les labels ne chevauchent plus les cercles du radar
- Amélioration de l'invalidation du cache dans Dockerfile
- Documentation pour utiliser 'No cache' dans Portainer
- Ajout de marges et padding pour éviter le chevauchement avec les cercles du radar
- Ajustement spécifique pour le quadrant 2 (Technologies de Commodité)
- Ajustement de la position de la légende en bas à droite
- Ajout d'un fond semi-transparent avec blur pour améliorer la lisibilité
- Z-index pour s'assurer que les éléments sont au-dessus des cercles
- Activation de no_cache: true pour forcer le rebuild sans cache
- Utilisation de nanosecondes (date +%s%N) pour CACHE_BUST afin de garantir l'unicité
- Cela devrait résoudre le problème de cache Docker dans Portainer
- Plus besoin de supprimer manuellement l'image avant chaque rebuild
- Ajout d'un build arg CACHE_BUST avec timestamp pour invalider le cache
- Ajout d'une instruction RUN tôt dans le Dockerfile pour forcer l'invalidation
- Amélioration de la documentation avec guide détaillé pour forcer le rebuild
- Explication du problème de cache Docker et solutions multiples
- Instructions pour utiliser --no-cache dans Portainer
- Ajout de styles CSS pour rendre les icônes SVG plus visibles
- Force la couleur #2ecc71 pour les icônes de navigation
- Améliore la visibilité des liens dans la navigation
- S'assure que l'icône '?' est toujours visible
- Ajout d'une introduction plus détaillée sur le radar
- Explication complète de chaque anneau (Adopt, Trial, Assess, Hold)
- Exemples concrets de technologies pour chaque anneau
- Explications de quand utiliser chaque anneau
- Documentation des quadrants avec descriptions détaillées
- Formatage amélioré pour une meilleure lisibilité
- Ajout de 'pull: true' dans docker-compose pour forcer le pull de l'image de base
- Ajout de build args (BUILD_DATE, BUILD_VERSION) pour invalider le cache
- Ajout de labels dans Dockerfile pour tracer les builds
- Cela évite d'avoir à supprimer manuellement l'image avant chaque rebuild
- Portainer utilisera maintenant toujours la dernière version du code
- Création d'un fichier about.md adapté pour le radar Laplank
- Légende détaillée en français pour chaque anneau avec exemples
- Amélioration des descriptions des anneaux dans config-business.json
- Explications claires de quand utiliser chaque anneau
- Documentation des quadrants également incluse