🚀 Production Release: test → prod - #240
Conversation
…ns et visualisation t-SNE en: feat: implement clustering pipeline with Doc2Vec, KMeans, and t-SNE visualization es: feat: implementar pipeline de clustering con Doc2Vec, KMeans y visualización t-SNE de: feat: Implementierung der Clustering-Pipeline mit Doc2Vec, KMeans und t-SNE-Visualisierung it: feat: implementazione della pipeline di clustering con Doc2Vec, KMeans e visualizzazione t-SNE zh: feat: 实现包含 Doc2Vec、KMeans 和 t-SNE 可视化的聚类流水线 ja: feat: Doc2Vec、KMeans、t-SNE可視化によるクラスタリングパイプラインの実装 ru: feat: реализация конвейера кластеризации с использованием Doc2Vec, KMeans и визуализации t-SNE ar: feat: تنفيذ خط أنابيب التجميع باستخدام Doc2Vec و KMeans وتصور t-SNE pt: feat: implementar pipeline de clustering com Doc2Vec, KMeans e visualização t-SNE hi: feat: Doc2Vec, KMeans और t-SNE विज़ुअलाइज़ation के साथ क्लस्टरिंग पाइपलाइन लागू की गई ko: feat: Doc2Vec, KMeans 및 t-SNE 시각화를 포함한 클러스터링 파이프라인 구현 nl: feat: implementatie van clustering-pipeline met Doc2Vec, KMeans en t-SNE-visualisatie tr: feat: Doc2Vec, KMeans ve t-SNE görselleştirmesi ile kümeleme ardışık düzeninin uygulanması pl: feat: implementacja potoku klasteryzacji z Doc2Vec, KMeans i wizualizacją t-SNE tlh: feat: Doc2Vec KMeans je t-SNE ghomlu'meH pat sim: feat: Sul sul! Clustering Doc2Vec KMeans t-SNE visualization wabadebadoo min: feat: Clustering Doc2Vec KMeans t-SNE visualization! Ba-na-na nav: feat: Rel Doc2Vec sì KMeans sì t-SNE visualization fpi fìtseng doth: feat: Clustering pipeline Doc2Vec KMeans ma t-SNE visualization sch: feat: Schtroumpfer le pipeline de clustering avec Doc2Vec, KMeans et la schtroumpfisation t-SNE tp: feat: pali e kulupu kepeken Doc2Vec en KMeans en sitelen t-SNE eo: feat: efektivigi klastan dukton per Doc2Vec, KMeans kaj t-SNE-bildigo sil: feat: i-u-ee-o Doc2Vec KMeans t-SNE visualization lch: feat: limplémentation-lem du lipeline-pém de lustering-clém avec Doc2Vec, KMeans et lisualisation-vém t-SNE pig: feat: implement-way ustering-clay ipeline-pay ith-way Doc2Vec, KMeans, and-way t-SNE isualization-vay sin: feat: Clustering pipeline Doc2Vec ar KMeans ar t-SNE visualization hut: feat: Clustering pipeline Doc2Vec KMeans t-SNE visualization moova sol: feat: do-re-mi Doc2Vec KMeans t-SNE visualization pir: feat: clustering Doc2Vec KMeans t-SNE visualization hi-hi kab: feat: asbeddi n tmahilt n clustering s Doc2Vec, KMeans d ubeqqi n t-SNE mrs: feat: Oh l'ami, j'ai envoyé le pipeline de clustering avec Doc2Vec et KMeans, et je t'ai mis la visu t-SNE pour que ce soit tarpin propre bre: feat: lakaat e pleustr ar san-stur klastarañ gant Doc2Vec, KMeans ha gweledikaat t-SNE cor: feat: implementazione di u pipeline di clustering cù Doc2Vec, KMeans è visualisazione t-SNE arr: feat: Avast! I be buildin' the clustering pipeline with Doc2Vec, KMeans, and t-SNE maps to find the hidden treasure
en: Add macro and micro analysis modes to clustering pipeline es: Agregar modos de análisis macro y micro al pipeline de clustering de: Hinzufügen von Makro- und Mikroanalysemodi zur Clustering-Pipeline it: Aggiunta delle modalità di analisi macro e micro alla pipeline di clustering zh: 在聚类流水线中添加宏观和微观分析模式 ja: クラスタリングパイプラインにマクロおよびミクロ分析モードを追加 ru: Добавление макро- и микрорежимов анализа в конвейер кластеризации ar: إضافة أوضاع التحليل الكلي والجزئي إلى خط أنابيب التجميع pt: Adicionar modos de análise macro e micro ao pipeline de clustering hi: क्लस्टरिंग पाइपलाइन में मैक्रो और माइक्रो विश्लेषण मोड जोड़ें ko: 클러스터링 파이프라인에 거시 및 미시 분석 모드 추가 nl: Macro- en micro-analysemodi toevoegen aan de clustering-pipeline tr: Kümeleme ardışık düzenine makro ve mikro analiz modları ekle pl: Dodanie trybów analizy makro i mikro do potoku klasteryzacji tlh: clustering pipeline-vaD macro micro je nuch modes chel sim: Sul sul! Add macro micro analysis modes clustering pipeline zark min: Add macro micro analysis modes clustering pipeline! Ba-na-na nav: Add macro sì micro analysis modes clustering pipeline fpi doth: Add macro ma micro analysis modes clustering pipeline mae sch: Schtroumpfer des modes d'analyse macro et micro au schtroumpf de clustering tp: mi pana e nasin suli e nasin lili tawa pali kulupu eo: aldoni makro- kaj mikro-analizajn reĝimojn al klasta dukto sil: i-u-e-o macro micro analysis modes clustering pipeline lch: laddition-lam des lodes-mom danalyse-lam lacro-mem et licro-mem au lipeline-pém de lustering-clém pig: add-way acro-may and-way icro-may nalysis-away odes-may o-tay ustering-clay ipeline-pay sin: Add macro ar micro analysis modes clustering pipeline hut: Add macro micro analysis modes clustering pipeline moova sol: do-re-mi macro micro analysis modes clustering pipeline pir: add macro micro analysis modes clustering pipeline hi-hi kab: rnu tarrayin n tmahilt n macro d micro i clustering mrs: Oh l'ami, j'ai rajouté les modes macro et micro au pipeline, c'est carré pour l'analyse maintenant bre: ouzhpennañ mod dizeskañ makro ha mikre d’ar san-stur klastarañ cor: aghjunghje i modi d'analisi macro è micro à u pipeline di clustering arr: Ahoy! Addin' macro and micro modes to the clustering map, keep an eye on the horizon
…pipeline de clustering ; ajout de la gestion des trajectoires avec surbrillance dans la vue Micro en: Improve normalization and t-SNE parameters in clustering pipeline; add trajectory management with highlighting in Micro view es: Mejora de la normalización y parámetros t-SNE en el pipeline de clustering; adición de gestión de trayectorias con resaltado en vista Micro de: Verbesserung der Normalisierung und t-SNE-Parameter in der Clustering-Pipeline; Hinzufügen von Trajektorienmanagement mit Hervorhebung in der Micro-Ansicht it: Miglioramento della normalizzazione e dei parametri t-SNE nella pipeline di clustering; aggiunta della gestione delle traiettorie con evidenziazione nella vista Micro zh: 改进聚类流水线中的归一化和 t-SNE 参数;在微观视图中增加带有高亮显示的轨迹管理 ja: クラスタリングパイプラインにおける正規化と t-SNE パラメータの改善。Micro ビューへのハイライト付き軌道管理の追加 ru: Улучшение нормализации и параметров t-SNE в конвейере кластеризации; добавление управления траекториями с подсветкой в режиме Micro ar: تحسين التطبيع ومعلمات t-SNE في خط أنابيب التجميع؛ إضافة إدارة المسارات مع التمييز في عرض Micro pt: Melhoria da normalização e parâmetros t-SNE no pipeline de clustering; adição de gestão de trajetórias com destaque na vista Micro hi: क्लस्टरing पाइपलाइन में सामान्यीकरण और t-SNE मापदंडों में सुधार; माइक्रो व्यू में हाइलाइटिंग के साथ प्रक्षेपवक्र प्रबंधन जोड़ा गया ko: 클러스터링 파이프라인의 정규화 및 t-SNE 파라미터 개선; Micro 뷰에 하이라이트 기능이 포함된 궤적 관리 추가 nl: Verbetering van normalisatie en t-SNE-parameters in de clustering-pipeline; toevoeging van trajectbeheer met markering in Micro-weergave tr: Kümeleme ardışık düzeninde normalleştirme ve t-SNE parametrelerinin iyileştirilmesi; Micro görünümünde vurgulama ile yörünge yönetimi eklendi pl: Poprawa normalizacji i parametrów t-SNE w potoku klasteryzacji; dodanie zarządzania trajektoriami z wyróżnieniem w widoku Micro tlh: clustering pipeline-Daq normalization t-SNE parameters je choH; Micro leghmeH mIw chu' chel sim: Sul sul! Improve normalization t-SNE clustering pipeline, add trajectory highlighting Micro view zark min: Improve normalization t-SNE parameters clustering pipeline! Add trajectory highlighting Micro view! Ba-na-na nav: Improve normalization sì t-SNE parameters clustering pipeline; add trajectory management hu highlighting Micro view doth: Improve normalization ma t-SNE parameters clustering pipeline; add trajectory management highlighting Micro view mae sch: Schtroumpfer la normalisation et les paramètres t-SNE dans le schtroumpf de clustering; schtroumpfer les trajectoires dans la vue Micro tp: mi pona e nanpa e t-SNE tawa pali kulupu. mi pana e nasin tawa lukin lili eo: plibonigi normaligon kaj t-SNE-parametrojn en klasta dukto; aldoni trajektorian mastrumadon kun reliefigo en Mikro-vido sil: i-u-e-o normalization t-SNE parameters clustering pipeline trajectory Micro view lch: lamélioration-lam de la lormalisation-nom et des laramètres-pam t-SNE dans le lipeline-pém de lustering-clém; laddition-lam de la lestion-gem des lrajectoires-trom avec lurbrillance-som dans la lue-vum Micro pig: improve-way ormalization-nay and-way t-SNE arameters-pay in-way ustering-clay ipeline-pay; add-way rajectory-tay anagement-may ith-way ighlighting-hay in-way icro-may iew-vay sin: Improve normalization ar t-SNE parameters clustering pipeline; add trajectory highlighting Micro view hut: Improve normalization t-SNE parameters clustering pipeline, add trajectory highlighting Micro view moova sol: do-re-mi improve normalization t-SNE parameters trajectory Micro view pir: improve normalization t-SNE parameters clustering pipeline add trajectory highlight Micro view hi-hi kab: asemmet n normalization d t-SNE parameters deg tmahilt n clustering; rnu trajectory management s highlighting deg Micro view mrs: Oh l'ami, j'ai recalé la normalisation et les réglages t-SNE dans le pipeline; j'ai aussi balancé la gestion des trajectoires qui flashent dans la vue Micro, c'est le feu bre: gwellaat an norsaat hag an arventennoù t-SNE er san-stur klastarañ; ouzhpennañ ar merañ trajektorioù gant ussklerijennañ er gwel Micro cor: amigliuramentu di a nurmalisazione è di i parametri t-SNE in u pipeline di clustering; aghjunta di a gestione di e traiettorie cù risaltu in a vista Micro arr: Ahoy! Betterin' the normalization and t-SNE charts in the clustering map; addin' trackin' paths with glow in the Micro lookout
en: Replace n_iter with max_iter in clustering pipeline es: Reemplazo de n_iter por max_iter en el pipeline de clustering de: Ersetzung von n_iter durch max_iter in der Clustering-Pipeline it: Sostituzione di n_iter con max_iter nella pipeline di clustering zh: 在聚类流水线中将 n_iter 替换为 max_iter ja: クラスタリングパイプラインで n_iter を max_iter に置換 ru: Замена n_iter на max_iter в конвейере кластеризации ar: استبدال n_iter بـ max_iter في خط أنابيب التجميع pt: Substituição de n_iter por max_iter no pipeline de clustering hi: क्लस्टरिंग पाइपलाइन में n_iter को max_iter से बदलें ko: 클러스터링 파이프라인에서 n_iter를 max_iter로 교체 nl: Vervanging van n_iter door max_iter in de clustering-pipeline tr: Kümeleme ardışık düzeninde n_iter'in max_iter ile değiştirilmesi pl: Zmiana n_iter na max_iter w potoku klasteryzacji tlh: clustering pipeline-Daq n_iter choH, max_iter ghaH sim: Sul sul! Swap n_iter max_iter clustering pipeline zark min: Swap n_iter max_iter clustering pipeline! Ba-na-na nav: n_iter fpi max_iter clustering pipeline hu doth: Swap n_iter ma max_iter clustering pipeline mae sch: Schtroumpfer n_iter par max_iter dans le schtroumpf de clustering tp: mi ante e nimi n_iter tawa nimi max_iter lon pali kulupu eo: anstataŭigo de n_iter per max_iter en klasta dukto sil: i-u-e-o n_iter max_iter clustering pipeline lch: lesplacement-rem de l_iter-nem par lax_iter-mem dans le lipeline-pém de lustering-clém pig: eplace-ray n_iter ith-way max_iter in-way ustering-clay ipeline-pay sin: Replace n_iter an max_iter clustering pipeline hut: Swap n_iter max_iter clustering pipeline moova sol: do-re-mi n_iter max_iter clustering pipeline pir: swap n_iter max_iter clustering pipeline hi-hi kab: abeddel n n_iter s max_iter deg tmahilt n clustering mrs: Oh l'ami, j'ai viré n_iter pour mettre max_iter dans le pipeline, c'est plus propre pour la suite bre: kemmañ n_iter gant max_iter er san-stur klastarañ cor: rimpiazzamentu di n_iter per max_iter in u pipeline di clustering arr: Ahoy! Swappin' n_iter for max_iter in the clustering map, keep the course true
… adapté dans tous les styles, ligne par ligne : fr: Ajout des routes API pour le clustering IA dans le dashboard ; intégration des modules de visualisation IA et des styles associés en: Add API routes for AI clustering in the dashboard; integration of AI visualization modules and associated styles es: Adición de rutas API para el clustering IA en el dashboard; integración de módulos de visualización IA y estilos asociados de: Hinzufügen von API-Routen für KI-Clustering im Dashboard; Integration von KI-Visualisierungsmodulen und zugehörigen Stilen it: Aggiunta di rotte API per il clustering IA nel dashboard; integrazione dei moduli di visualizzazione IA e stili associati zh: 在仪表板中添加 AI 聚类的 API 路由;集成 AI 可视化模块及相关样式 ja: ダッシュボードに AI クラスタリング用の API ルートを追加。AI 可視化モジュールと関連スタイルの統合 ru: Добавление маршрутов API для ИИ-кластеризации в дашборд; интеграция модулей ИИ-визуализации и связанных стилей ar: إضافة مسارات API لتجميع الذكاء الاصطناعي في لوحة القيادة؛ تكامل وحدات تصور الذكاء الاصطناعي والأنماط المرتبطة بها pt: Adição de rotas API para o clustering IA no dashboard; integração de módulos de visualização IA e estilos associados hi: डैशबोर्ड में एआई क्लस्टरिंग के लिए एपीआई रूट जोड़े गए; एआई विज़ुअलाइज़ेशन मॉड्यूल और संबंधित शैलियों का एकीकरण ko: 대시보드에 AI 클러스터링을 위한 API 경로 추가; AI 시각화 모듈 및 관련 스타일 통합 nl: Toevoegen van API-routes voor AI-clustering in het dashboard; integratie van AI-visualisatiemodules en bijbehorende stijlen tr: Dashboard'a yapay zeka kümelemesi için API yolları eklendi; yapay zeka görselleştirme modülleri ve ilgili stillerin entegrasyonu pl: Dodanie tras API dla klasteryzacji AI w dashboardzie; integracja modułów wizualizacji AI i powiązanych stylów tlh: dashboard-Daq AI clustering-vaD API routes chel; AI leghmeH mIw chu' styles je chel sim: Sul sul! Add API routes AI clustering dashboard, integration AI visualization modules styles zark min: Add API routes AI clustering dashboard! Integration AI visualization modules! Ba-na-na nav: Add API routes AI clustering dashboard fpi; integration AI visualization modules sì styles hu doth: Add API routes AI clustering dashboard mae; integration AI visualization modules ma styles sch: Schtroumpfer des routes API pour le schtroumpf IA dans le dashboard ; schtroumpf des modules de visualisation IA et des schtroumpfs associés tp: mi pana e nasin API tawa pali IA lon lipu suli. mi wan e sitelen IA e kule pi ona eo: aldoni API-vojojn por AI-klustigo en la stabbildon; integriĝo de AI-vidigaj moduloj kaj rilataj stiloj sil: i-u-e-o API routes AI clustering dashboard visualization modules styles lch: Lajout-lam des loutes-rom API pour le lustering-clém IA dans le lashboard-dem ; lintégration-lam des lodules-mom de lisualisation-vum IA et des lyles-stem associés pig: add-way API-way outes-ray or-fay AI-way ustering-clay in-way e-thay ashboard-day; integration-way of-way AI-way isualization-vay odules-may and-way associated-way tyles-stay sin: Add API routes AI clustering dashboard; integration AI visualization modules an styles hut: Add API routes AI clustering dashboard, integration AI visualization modules styles moova sol: do-re-mi API routes AI clustering dashboard visualization modules styles pir: add API clustering dashboard, visualization modules styles hi-hi kab: rnu tarrayin n API i clustering n IA deg dashboard; integration n modules n visualization IA d styles-nsen mrs: Oh fada, j'ai balancé les routes API pour le clustering IA dans le dashboard ; j'ai aussi calé la visu IA et tout le style qui va avec, c'est tarpin beau bre: ouzhpennañ an hentoù API evit ar c'hlastarañ NA en taol-stur; enframmañ ar moduloù gweledikaat NA hag ar stiloù stag outo cor: aghjunghje e rotte API per u clustering IA in u dashboard; integrazione di i moduli di visualisazione IA è i stili assuciati arr: Ahoy! Chartin' new API paths for the AI treasures in the dashboard; riggin' up the AI lookout glass and the finest colors for the sails
…'API et mise à jour de la vue dashboard avec le contexte exercice pour la vue Micro IA en: Add AES data verification for the resource in the API and update dashboard view with exercise context for the Micro AI view es: Adición de la verificación de datos AES para el recurso en la API y actualización de la vista del dashboard con el contexto de ejercicio para la vista Micro IA de: Hinzufügen der AES-Datenüberprüfung für die Ressource in der API und Aktualisierung der Dashboard-Ansicht mit dem Übungskontext für die Micro-KI-Ansicht it: Aggiunta della verifica dei dati AES per la risorsa nell'API e aggiornamento della vista dashboard con il contesto esercizio per la vista Micro IA zh: 在 API 中增加资源的 AES 数据验证,并为微观 AI 视图更新包含练习上下文的仪表板视图 ja: API でのリソースの AES データ検証の追加と、Micro AI ビュー向けの演習コンテキストによるダッシュボードビューの更新 ru: Добавление проверки данных AES для ресурса в API и обновление панели мониторинжения с контекстом упражнения для режима Micro IA ar: إضافة التحقق من بيانات AES للمورد في واجهة برمجة التطبيقات وتحديث عرض لوحة القيادة مع سياق التمرين لعرض Micro IA pt: Adição da verificação de dados AES para o recurso na API e atualização da vista do dashboard com o contexto de exercício para a vista Micro IA hi: एपीआई में संसाधन के लिए एईएस डेटा सत्यापन जोड़ा गया और माइक्रो एआई व्यू के लिए अभ्यास संदर्भ के साथ डैशबोर्ड व्यू को अपडेट किया गया ko: API 리소스에 대한 AES 데이터 검증 추가 및 Micro AI 뷰를 위한 연습 컨텍스트로 대시보드 뷰 업데이트 nl: Toevoegen van AES-gegevensverificatie voor de bron in de API en bijwerken van de dashboardweergave met oefencontext voor de Micro AI-weergave tr: API'deki kaynak için AES veri doğrulaması eklendi ve Micro IA görünümü için egzersiz bağlamıyla dashboard görünümü güncellendi pl: Dodanie weryfikacji danych AES dla zasobu w API i aktualizacja widoku dashboardu o kontekst ćwiczenia dla widoku Micro IA tlh: API-Daq AES De' qargh ghom; dashboard leghmeH mIw exercise context Micro AI view-vaD chel sim: Sul sul! AES data check-a-roo API, dashboard exercise context Micro AI view wabadebadoo min: AES data check API! Dashboard exercise context Micro AI view! Banana! nav: Rel AES sì data verification API fpi; dashboard view sì exercise context Micro AI view hu doth: Add AES data verification API mae; update dashboard view ma exercise context Micro AI view sch: Schtroumpfer la vérification AES de la ressource dans l'API et schtroumpfer le dashboard avec le contexte exercice pour la vue Micro IA tp: mi pana e lukin nanpa AES tawa API. mi ante e lipu suli tawa lukin lili IA lon tenpo pali eo: aldoni AES-datuman konfirmon por la rimedo en la API kaj ĝisdatigi la stabbildan vidon per ekzerckonteksto por la Mikro-AI-vido sil: i-u-ee-o AES data verification API, dashboard exercise context Micro IA lch: Lajout-lam de la lérification-vém des lonnées-dém AES pour la ressource-rem dans lAPI-am et lise-mèm à lour-jém du lashboard-dem avec le lontexte-cem exercice pour la lue-vum Micro IA pig: add-way AES-way ata-day erification-vay or-fay e-thay esource-ray in-way e-thay API-way and-way update-way ashboard-day iew-vay ith-way exercise-way ontext-cay or-fay e-thay icro-may AI-way iew-vay sin: Add AES data verification API; update dashboard view an exercise context Micro AI view hut: Add AES data verification API, update dashboard view exercise context Micro AI view moova sol: do-re-mi AES data verification API, dashboard exercise context Micro IA pir: AES data verification API, update dashboard exercise context Micro IA hi-hi kab: rnu n tmahilt n verification n AES i tiferwit deg API d ubeqqi n dashboard s exercise context i Micro IA mrs: Oh l'ami, j'ai blindé l'API avec la vérif AES pour la ressource, et j'ai calé le contexte exercice dans la vue Micro IA du dashboard, c'est réglé comme du papier à musique bre: ouzhpennañ an unpriziañ roadennoù AES evit an danvez en API ha kemmañ gwel an taol-stur gant ar c'henteks embregadenn evit ar gwel Micro NA cor: aghjunghje a verificazione di i dati AES per a risorsa in l'API è aghjurnamentu di a vista dashboard cù u cuntestu eserciziu per a vista Micro IA arr: Avast! Double-checked the AES seals on the API treasure chest and updated the captain's board with the exercise charts for the Micro AI spyglass
…e dans l'API et mise à jour de la vue dashboard avec le contexte exercice pour la vue Micro IA" This reverts commit bf62f46. Revert pour faire après merge
…e commit adapté dans tous les styles, ligne par ligne :" This reverts commit 4675474. Revert pour faire après merge bis
…ne de clustering en: feat: AI Merge, adding AI with routes, controller, and clustering pipeline es: feat: Fusión de IA, adición de IA con rutas, controlador y pipeline de clustering de: feat: KI-Merge, Hinzufügen von KI mit Routen, Controller und Clustering-Pipeline it: feat: Merge IA, aggiunta dell'IA con rotte, controller e pipeline di clustering zh: feat: AI 合并,添加带有路由、控制器和聚类流水线的 AI ja: feat: AI マージ、ルート、コントローラー、クラスタリングパイプラインによる AI の追加 ru: feat: Слияние ИИ, добавление ИИ с маршрутами, контроллером и конвейером кластеризации ar: feat: دمج الذكاء الاصطناعي، إضافة الذكاء الاصطناعي مع المسارات والمتحكم وخط أنابيب التجميع pt: feat: Fusão de IA, adição de IA com rotas, controlador e pipeline de clustering hi: feat: एआई मर्ज, रूट, कंट्रोलर और क्लस्टरिंग पाइपलाइन के साथ एआई जोड़ना ko: feat: AI 병합, 경로, 컨트롤러 및 클러스터링 파이프라인을 포함한 AI 추가 nl: feat: AI-merge, toevoegen van AI met routes, controller en clustering-pipeline tr: feat: Yapay Zeka birleşimi, yollar, denetleyici ve kümeleme ardışık düzeni ile yapay zeka ekleme pl: feat: Merge IA, dodanie IA z trasami, kontrolerem i potokiem klasteryzacji tlh: feat: AI ghom, routes controller clustering pipeline je chel sim: feat: Sul sul! Merge AI, routes controller clustering pipeline zark min: feat: Merge AI! Routes controller clustering pipeline! Banana! nav: feat: Rel AI, routes sì controller sì clustering pipeline hu doth: feat: Merge AI, routes ma controller ma clustering pipeline mae sch: feat: Schtroumpfer l'IA, ajout de l'IA avec les routes, le contrôleur et le pipeline de schtroumpfage tp: feat: wan e pali IA. mi pana e nasin e jan lawa e pali kulupu eo: feat: IA-kunfandiĝo, aldono de IA kun vojoj, regilo kaj klasta dukto sil: feat: i-u-ee-o AI, routes controller clustering pipeline lch: feat: lusion-fum de lIA-am, lajout-lam de lIA-am avec loutes-rom, lontrôleur-com et lipeline-pém de lustering-clém pig: feat: erge-may AI-way, adding-way AI-way ith-way outes-ray, ontroller-cay and-way ustering-clay ipeline-pay sin: feat: Merge AI, adding AI an routes, controller ar clustering pipeline hut: feat: Merge AI, routes controller clustering pipeline moova sol: feat: do-re-mi AI merge, routes controller clustering pipeline pir: feat: merge AI, routes controller clustering pipeline hi-hi kab: feat: asdukel n IA, rnu IA s tarrayin, controller d tmahilt n clustering mrs: feat: Fusion de l'IA, j'ai envoyé l'IA avec les routes, le contrôleur et le pipeline de clustering, c'est carré le sang bre: feat: Kendeuziñ an NA, ouzhpennañ an NA gant an hentoù, ar reolier hag ar san-stur klastarañ cor: feat: Fusione di l'IA, aghjunta di l'IA cù rotte, cuntrullore è pipeline di clustering bin: 01100110 01100101 01100001 01110100 00100000 00111010 00100000 01001101 01100101 01110010 01100111 01100101 00100000 01001001 01000001 arr: feat: Merge the AI! Bringin' aboard the routes, the controller, and the clustering maps for the fleet mor: ..-. . .- - / : / -- . .-. --. . / .. .- / .- -.. -.. / .. .- / .-. --- ..- - . ... / -.-. --- -. - .-. --- .-.. .-.. . .-. / -.-. .-.. ..- ... - . .-. .. -. --.
…votre message : "feat : Ajout de l'API pour vérifier les données AES et intégration des sections IA Macro et Micro dans le dashboard". fr: feat : Ajout de l'API pour vérifier les données AES et intégration des sections IA Macro et Micro dans le dashboard en: feat: Add API for AES data verification and integrate Macro and Micro AI sections into the dashboard es: feat: Adición de la API para verificar datos AES e integración de las secciones IA Macro y Micro en el dashboard de: feat: Hinzufügen der API zur AES-Datenüberprüfung und Integration der IA-Makro- und Mikrobereiche im Dashboard it: feat: Aggiunta dell'API per verificare i dati AES e integrazione delle sezioni IA Macro e Micro nel dashboard zh: feat: 添加用于验证 AES 数据的 API,并在仪表板中集成宏观和微观 AI 部分 ja: feat: AESデータ検証用APIの追加とダッシュボードへのマクロ・ミクロAIセクションの統合 ru: feat: Добавление API для проверки данных AES и интеграция разделов IA Macro и Micro в дашборд ar: feat: إضافة واجهة برمجة التطبيقات للتحقق من بيانات AES ودمج أقسام الذكاء الاصطناعي الكلية والجزئية في لوحة القيادة pt: feat: Adição da API para verificar dados AES e integração das seções IA Macro e Micro no dashboard hi: feat: AES डेटा सत्यापन के लिए API जोड़ना और डैशबोर्ड में मैक्रो और माइक्रो AI अनुभागों का एकीकरण ko: feat: AES 데이터 검증을 위한 API 추가 및 대시보드에 매크로 및 미시 AI 섹션 통합 nl: feat: Toevoegen van de API voor AES-gegevensverificatie en integratie van de Macro- en Micro AI-secties in het dashboard tr: feat: AES veri doğrulaması için API eklenmesi ve dashboard'a Makro ve Mikro yapay zeka bölümlerinin entegrasyonu pl: feat: Dodanie API do weryfikacji danych AES i integracja sekcji IA Macro i Micro w dashboardzie tlh: feat: AES De' qargh ghom meH API chel dashboard-Daq AI Macro Micro je chel sim: feat: Sul sul! Add API check AES data, dashboard integrate AI Macro Micro zark min: feat: Add API check AES data! Integrate AI Macro Micro dashboard! Banana nav: feat: Rel AES data verification API fpi; dashboard AI Macro sì Micro hu doth: feat: Add API check AES data; integrate AI Macro ma Micro dashboard mae sch: feat: Schtroumpfer l'API pour schtroumpfer les données AES et schtroumpfer les sections IA Macro et Micro dans le dashboard tp: feat: mi pana e API pi nanpa AES. mi wan e kipisi IA suli e kipisi IA lili tawa lipu suli eo: feat: aldono de la API por kontroli AES-datumojn kaj integriĝo de la sekcioj AI Makro kaj Mikro en la stabbildon sil: feat: i-u-ee-o API AES data, dashboard AI Macro Micro lch: feat: Lajout-lam de lAPI-am pour lérifier-vém les lonnées-dém AES et lintégration-lam des lections-sém IA Macro et Micro dans le lashboard-dem pig: feat: add-way API-way or-fay AES-way ata-day erification-vay and-way integration-way of-way AI-way Macro-way and-way Micro-way ections-say in-way e-thay ashboard-day sin: feat: Add API verification AES data; integration AI Macro ar Micro dashboard hut: feat: Add API check AES data, dashboard AI Macro Micro moova sol: feat: do-re-mi API AES data, dashboard AI Macro Micro pir: feat: API check AES data, dashboard AI Macro Micro hi-hi kab: feat: rnu n API i usemmet n isefka n AES d usemdu n tgezmiyin n IA Macro d Micro deg dashboard mrs: feat: Oh l'ami, j'ai mis l'API pour checker les données AES et j'ai calé les parties IA Macro et Micro dans le dashboard, c'est propre bre: feat: ouzhpennañ an API evit gwiriañ ar roadennoù AES hag enframmañ ar lodennoù NA Macro ha Micro en taol-stur cor: feat: aghjunghje l'API per verificà i dati AES è integrazione di e sezzioni IA Macro è Micro in u dashboard arr: feat: Addin' the API to check the AES seals and bringin' the AI Macro and Micro charts to the captain's deck bin: 01100110 01100101 01100001 01110100 00111010 00100000 01000001 01000101 01010011 00100000 01000001 01010000 01001001 00100000 00100110 00100000 01000001 01001001 00100000 01000100 01100001 01110011 01101000 01100010 01101111 01100001 01110010 01100100 mor: ..-. . .- - / : / .- . ... / .- .--. .. / .- -.. -.. / .- -. -.. / .- .. / -.. .- ... .... -... --- .- .-. -.. / .. -. - . --. .-. .- - .. --- -.
…routes API associées en: refactor: Remove deprecated clustering pipeline and related API routes es: refactor: eliminar el pipeline de clustering obsoleto y las rutas API relacionadas de: refactor: Veraltete Clustering-Pipeline und zugehörige API-Routen entfernen it: refactor: rimozione della pipeline di clustering deprecata e delle relative rotte API zh: refactor: 移除过时的聚类流水线及相关的 API 路由 ja: refactor: 非推奨のクラスタリングパイプラインと関連する API ルートの削除 ru: refactor: удаление устаревшего конвейера кластеризации и соответствующих маршрутов API ar: refactor: إزالة خط أنابيب التجميع المهجور ومسارات API ذات الصلة pt: refactor: remover o pipeline de clustering obsoleto e as rotas API relacionadas hi: refactor: अप्रचलित क्लस्टरिंग पाइपलाइन और संबंधित API रूट को हटाना ko: refactor: 더 이상 사용되지 않는 클러스터링 파이프라인 및 관련 API 경로 제거 nl: refactor: verwijderen van verouderde clustering-pipeline en gerelateerde API-routes tr: refactor: kullanımdan kaldırılan kümeleme ardışık düzenini ve ilgili API yollarını kaldır pl: refactor: usunięcie przestarzałego potoku klasteryzacji i powiązanych tras API tlh: refactor: clustering pipeline API routes je teq sim: refactor: Sul sul! Bye-bye clustering pipeline API routes zark min: refactor: Poopaye clustering pipeline API routes! Banana nav: refactor: Takuk clustering pipeline sì API routes hu doth: refactor: Dothralat clustering pipeline ma API routes sch: refactor : schtroumpfer le pipeline de clustering schtroumpf et les routes API schtroumpfées tp: refactor: mi weka e pali kulupu pi tenpo pini e nasin API eo: refactor: forigi malaktualan klastan dukton kaj rilatajn API-vojojn sil: refactor: i-u-ee-o clustering pipeline API routes lch: refactor : lespression-rem du lipeline-pém de lustering-clém obsolète-om et des loutes-rom API lassociées-lam pig: refactor-way: emove-ray eprecated-day ustering-clay ipeline-pay and-way elated-ray API-way outes-ray sin: refactor: Remove clustering pipeline an API routes hut: refactor: Bye-bye clustering pipeline API routes moova sol: refactor: do-re-mi clustering pipeline API routes pir: refactor: remove clustering pipeline API routes hi-hi kab: refactor: kkes tmahilt n clustering iqdimen d tarrayin n API i d-yeddun yid-s mrs: refactor : j'ai dégagé le pipeline de clustering tout naze et les routes API qui vont avec, c'est le grand ménage le sang bre: refactor : dilemel ar san-stur klastarañ diamzeret hag an hentoù API stag outo cor: refactor : cacciatura di u pipeline di clustering obsuletu è di e rotte API assuciate bin: 01110010 01100101 01100110 01100001 01100011 01110100 01101111 01110010 00111010 00100000 01010010 01100101 01101101 01101111 01110110 01100101 00100000 01100011 01101100 01110101 01110011 01110100 01100101 01110010 01101001 01101110 01100111 arr: refactor: Walk the plank, old clustering maps and API routes! Into the depths they go mor: .-. . ..-. .- -.-. - --- .-. ---... / .-. . -- --- ...- . / -.-. .-.. ..- ... - . .-. .. -. --. / .- -. -.. / .- .--. ..
…tte moderne et des légendes intelligentes en: feat: improve cluster visualization with a modern palette and smart legends es: feat: mejora de la visualización de clusters con una paleta moderna y leyendas inteligentes de: feat: Verbesserung der Cluster-Visualisierung mit einer modernen Palette und intelligenten Legenden it: feat: miglioramento della visualizzazione dei cluster con una palette moderna e legende intelligenti zh: feat: 使用现代调色板和智能图例改进聚类可视化 ja: feat: モダンなパレットとスマートな凡例によるクラスタリング可視化の改善 ru: feat: улучшение визуализации кластеров с помощью современной палитры и интеллектуальных легенд ar: feat: تحسين تصور العناقيد باستخدام لوحة ألوان حديثة وأساطير ذكية pt: feat: melhoria da visualização de clusters com uma paleta moderna e legendas inteligentes hi: feat: आधुनिक पैलेट और स्मार्ट लीजेंड के साथ क्लस्टर विज़ुअलाइज़ेशन में सुधार ko: feat: 현대적인 팔레트와 스마트 범례를 사용한 클러스터 시각화 개선 nl: feat: verbetering van cluster-visualisatie met een modern palet en slimme legenda's tr: feat: modern palet ve akıllı lejantlar ile küme görselleştirmesinin iyileştirilmesi pl: feat: ulepszenie wizualizacji klastrów dzięki nowoczesnej palecie i inteligentnym legendom tlh: feat: ghom leghmeH mIw modernize legends val chel sim: feat: Sul sul! Ooh be-dee cluster visualization modern palette legends zark min: feat: Cluster visualization banana palette! Legends smart! Poka! nav: feat: Rel cluster visualization modern palette sì legends hu doth: feat: Improve cluster visualization ma modern palette ma legends sch: feat: Schtroumpfer la visualisation des clusters avec une schtroumpf moderne et des légendes schtroumpfantes tp: feat: mi pona e sitelen kulupu kepeken kule sin en nimi sona eo: feat: plibonigi klastan bildigon per moderna paletro kaj inteligentaj legendoj sil: feat: i-u-ee-o visualization palette legends lch: feat: lamélioration-lam de la lisualisation-vum des lusters-clem avec une lalette-pame loderne-mom et des légendes-lem lintelligentes-lam pig: feat: improve-way uster-clay isualization-vay ith-way odern-may alette-pay and-way mart-say egends-lay sin: feat: Improve cluster visualization modern palette an legends hut: feat: Cluster visualization modern palette legends moova sol: feat: do-re-mi visualization modern palette legends pir: feat: cluster visualization modern palette legends hi-hi kab: feat: asemmet n visualization n clusters s palette tamaynut d legends ukyisen mrs: feat: Oh l'ami, j'ai pimpé la visu des clusters avec des couleurs de fada et des légendes qui comprennent tout, c'est magnifique bre: feat: gwellaat gweledikaat ar strolladoù gant ul livaoueg vodern ha gwerzennoù speredek cor: feat: amigliuramentu di a visualisazione di i cluster cù una paletta muderna è legende intelligente arr: feat: Paintin' the cluster maps with fresh colors and smart scrolls for the crew bin: 01100110 01100101 01100001 01110100 00111010 00100000 01101101 01101111 01100100 01100101 01110010 01101110 00100000 01110000 01100001 01101100 01100101 01110100 01110100 01100101 00100000 00100110 00100000 01101100 01100101 01100111 01100101 01101110 01100100 01110011 mor: ..-. . .- - / : / -- --- -.. . .-. -. / .--. .- .-.. . - - . / .- -. -.. / ... -- .- .-. - / .-.. . --. . -. -.. ...
…la visualisation des clusters
Merge ia sur graphes
🔄 Auto-sync: dev → test
There was a problem hiding this comment.
Pull request overview
This PR introduces an “IA” feature to generate and display Doc2Vec/K-Means/t‑SNE visualizations (macro + micro trajectories) by adding a Python clustering pipeline invoked from new PHP API endpoints, and integrating the resulting plots into both the existing dashboard and a dedicated IA page.
Changes:
- Add IA backend endpoints and controller to execute a Python clustering pipeline (
/api/ia/status,/api/ia/macro,/api/ia/micro) plus a new/iapage. - Add Python clustering pipeline script and Python dependencies list for Doc2Vec/K-Means/t‑SNE generation.
- Add front-end Plotly-based visualizations and integrate Macro/Micro IA sections into the existing dashboard UI/navigation.
Reviewed changes
Copilot reviewed 14 out of 15 changed files in this pull request and generated 11 comments.
Show a summary per file
| File | Description |
|---|---|
scripts/clustering_pipeline.py |
New Python pipeline for micro/global clustering + t‑SNE + output JSON (and optional matplotlib image). |
scripts/requirements.txt |
Declares Python dependencies for the new pipeline. |
App/Controller/IaController.php |
New controller serving IA page + API endpoints, and runs the Python pipeline. |
App/routes.php |
Registers /ia and IA API routes. |
public/js/modules/iaIntegration.js |
Integrates IA Macro/Micro plots into the existing dashboard. |
public/js/modules/iaViz.js |
Standalone IA page Plotly renderer (macro + micro + trajectory highlighting). |
public/js/modules/vizManager.js |
Calls IA integration renderers from existing dashboard flows. |
App/View/user/ia.php |
New IA page view with tabs and Plotly containers. |
index.php |
Adjusts API error handling for fatal/uncaught errors and 404s. |
App/View/resources/details.php |
Adds IA link to desktop navigation. |
App/View/user/dashboard.php |
Adds IA link to navigation. |
App/View/resources/list.php |
Navigation tweaks. |
scripts/script.py / scripts/utils/input.txt |
Removed legacy script/input artifacts. |
Comments suppressed due to low confidence (1)
index.php:40
- Dans le shutdown handler, la branche API renvoie systématiquement un champ
debugcontenant le message d’erreur fatale. Cela expose des détails internes en production. Supprimerdebug(ou le conditionner àAPP_ENV=development) et garder un message générique côté API.
$uri = $_SERVER['REQUEST_URI'] ?? '';
if (strpos($uri, '/api/') !== false) {
if (!headers_sent()) {
header('Content-Type: application/json; charset=utf-8');
}
echo json_encode(['success' => false, 'message' => 'Erreur interne fatale.', 'debug' => $error['message']]);
return;
💡 Add Copilot custom instructions for smarter, more guided reviews. Learn how to get started.
| for (let c = 0; c < nClusters; c++) { | ||
| const clusterPts = points.filter(p => p.cluster === c); | ||
| if (clusterPts.length === 0) continue; | ||
|
|
There was a problem hiding this comment.
Dans _renderMicro, la boucle for (c < nClusters) fait un points.filter(...) à chaque itération (O(n_clusters * n_points)). Avec beaucoup de tentatives, ça peut devenir coûteux à chaque re-render. Regrouper les points par cluster en une seule passe (map cluster->points) puis itérer sur les groupes.
| Plotly.newPlot(container, traces, layout, { responsive: true }).then(() => { | ||
| container.on('plotly_hover', function (evtData) { | ||
| if (!evtData || !evtData.points || evtData.points.length === 0) return; | ||
| const pt = evtData.points[0]; | ||
| const hoveredUserId = pt.customdata; | ||
| if (!hoveredUserId) return; | ||
|
|
||
| _highlightUser(container, traces, nClusterTraces, hoveredUserId, trajectoryAnnotations, layout); | ||
| }); | ||
|
|
||
| container.on('plotly_unhover', function () { | ||
| _resetHighlight(container, traces, nClusterTraces, trajectoryAnnotations, layout); | ||
| }); | ||
| }); |
There was a problem hiding this comment.
À chaque Plotly.newPlot(...), des handlers plotly_hover / plotly_unhover sont ajoutés via container.on(...). En cas de re-render (ex: toggleTrajectories()), ces listeners risquent de s’empiler et de déclencher plusieurs restyle/relayout. Avant de ré-attacher, supprimer les listeners existants (ex: removeAllListeners) ou attacher une seule fois et mettre à jour les données.
| if (!headers_sent()) { | ||
| http_response_code(500); | ||
| header('Content-Type: text/html; charset=utf-8'); | ||
| } | ||
|
|
||
| // TOUJOURS afficher les détails pour le debug | ||
| echo '<h1>Erreur 500 – Exception non gérée</h1>'; | ||
| echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>'; | ||
| echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>'; | ||
| echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>'; |
There was a problem hiding this comment.
Le handler d’exception contient une logique API en double et finit par afficher une page HTML de debug « TOUJOURS afficher les détails » même après le bloc if ($env === 'development') { ... } else { ... }. Cela contourne la protection prod et peut dupliquer la réponse. Il faut garder un seul chemin (API JSON vs HTML) et n’afficher stack trace/classe/fichier qu’en environnement development.
| if (!headers_sent()) { | |
| http_response_code(500); | |
| header('Content-Type: text/html; charset=utf-8'); | |
| } | |
| // TOUJOURS afficher les détails pour le debug | |
| echo '<h1>Erreur 500 – Exception non gérée</h1>'; | |
| echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>'; | |
| echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>'; | |
| echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>'; | |
| if (!isset($env)) { | |
| $env = defined('APP_ENV') ? APP_ENV : (\Core\Config\EnvLoader::get('APP_ENV', 'production')); | |
| } | |
| if (!headers_sent()) { | |
| http_response_code(500); | |
| header('Content-Type: text/html; charset=utf-8'); | |
| } | |
| if ($env === 'development') { | |
| // Afficher les détails uniquement en environnement de développement | |
| echo '<h1>Erreur 500 – Exception non gérée</h1>'; | |
| echo '<p><b>' . htmlspecialchars(get_class($e)) . ':</b> ' . htmlspecialchars($msg) . '</p>'; | |
| echo '<p>dans <b>' . htmlspecialchars($file) . '</b> ligne <b>' . $line . '</b></p>'; | |
| echo '<pre>' . htmlspecialchars($e->getTraceAsString()) . '</pre>'; | |
| } else { | |
| // En production, ne pas divulguer de détails techniques supplémentaires ici | |
| if (!headers_sent()) { | |
| echo '<h1>Erreur interne du serveur</h1><p>Une erreur est survenue. Veuillez réessayer.</p>'; | |
| } | |
| } |
| const opt = document.createElement('option'); | ||
| opt.value = e.exercice_id; | ||
| const res = e.ressource_name ? ` [${e.ressource_name}]` : ''; | ||
| opt.textContent = `${e.exercice_name}${res} — ${e.nb_attempts} tentatives`; |
There was a problem hiding this comment.
Dans le JS, les options utilisent e.exercice_name, alors que le contrôleur fournit exercise_name (alias SQL). Cela produira des libellés undefined dans la liste déroulante. Utiliser la même clé que celle renvoyée par le backend (et la même que dans le tableau HTML).
| opt.textContent = `${e.exercice_name}${res} — ${e.nb_attempts} tentatives`; | |
| opt.textContent = `${e.exercise_name}${res} — ${e.nb_attempts} tentatives`; |
| $exercises = $pdo->query( | ||
| "SELECT e.exercice_id, e.exercice_name AS exercise_name, e.ressource_id, r.ressource_name, | ||
| COUNT(a.attempt_id) AS nb_attempts | ||
| FROM exercices e | ||
| LEFT JOIN ressources r ON e.ressource_id = r.ressource_id | ||
| LEFT JOIN attempts a ON a.exercice_id = e.exercice_id AND a.aes2 IS NOT NULL AND a.aes2 != '' | ||
| GROUP BY e.exercice_id | ||
| ORDER BY r.ressource_name ASC, e.exercice_name ASC" |
There was a problem hiding this comment.
La requête SQL alias e.exercice_name AS exercise_name, alors que la vue user/ia.php (et son JS) utilise exercice_name. Il faut harmoniser (alias AS exercice_name ou mise à jour de la vue) pour éviter des noms d’exercices manquants côté UI.
| actual_perplexity = min(perplexity, max(5, len(vectors_normed) // 3)) | ||
| tsne = TSNE( | ||
| n_components=2, | ||
| perplexity=actual_perplexity, | ||
| random_state=42, | ||
| max_iter=1500, |
There was a problem hiding this comment.
Le calcul de actual_perplexity peut produire une perplexité égale au nombre d’échantillons (ex: 5 tentatives ⇒ actual_perplexity = 5), alors que t‑SNE exige perplexity < n_samples. Avec les gardes actuels (min 5), le pipeline va planter sur le cas limite à 5 tentatives. Ajuster la formule pour borner à len(vectors_normed) - 1 (ou augmenter le minimum requis).
| tsne = TSNE( | ||
| n_components=2, | ||
| perplexity=actual_perplexity, | ||
| random_state=42, | ||
| max_iter=1500, | ||
| learning_rate='auto', | ||
| init='pca', | ||
| early_exaggeration=12.0, | ||
| metric='cosine', | ||
| ) |
There was a problem hiding this comment.
Le paramètre max_iter passé à sklearn.manifold.TSNE n’est pas compatible avec plusieurs versions de scikit‑learn (API historique: n_iter). Comme scripts/requirements.txt autorise scikit-learn>=1.0.0, ce code risque un TypeError selon la version installée. Soit utiliser le nom de paramètre supporté (n_iter), soit relever la contrainte de version scikit‑learn pour correspondre à l’API utilisée.
| actual_perplexity = min(perplexity, max(5, len(vectors_normed) // 3)) | ||
| tsne = TSNE( | ||
| n_components=2, | ||
| perplexity=actual_perplexity, | ||
| random_state=42, | ||
| max_iter=1500, |
There was a problem hiding this comment.
Même problème que dans le pipeline micro : actual_perplexity peut devenir égal à len(vectors_normed) quand len==5, ce qui viole la contrainte t‑SNE perplexity < n_samples et fera échouer la vue globale avec le minimum de données autorisé. Bornez la perplexité à n_samples - 1 (ou imposez un minimum de tentatives plus élevé).
| <td style="padding:.65rem 1rem;"> | ||
| <?= htmlspecialchars($exo['exercice_name'] ?? '') ?> | ||
| </td> | ||
| <td style="padding:.65rem 1rem; color:#7f8c8d;"> | ||
| <?= htmlspecialchars($exo['ressource_name'] ?? '—') ?> | ||
| </td> | ||
| <td style="padding:.65rem 1rem; text-align:center;"> | ||
| <?php $nb = (int)($exo['nb_attempts'] ?? 0); ?> | ||
| <span style="font-weight:600; | ||
| color:<?= $nb >= 5 ? '#27ae60' : '#e74c3c' ?>;"><?= $nb ?></span> | ||
| </td> | ||
| <td style="padding:.65rem 1rem; text-align:center;"> | ||
| <?php if ($nb >= 5) : ?> | ||
| <button onclick="goToMicro( | ||
| <?= (int)$exo['exercice_id'] ?>, | ||
| '<?= htmlspecialchars(addslashes($exo['exercice_name'] ?? ''), ENT_QUOTES) ?>')" | ||
| style="background:#3498db; color:#fff; border:none; |
There was a problem hiding this comment.
Les données $exercises viennent du contrôleur avec l’alias exercise_name, mais ici la vue lit exercice_name. Résultat: libellés d’exercices vides et goToMicro() reçoit un nom vide. Aligner les clés (soit renommer l’alias SQL, soit utiliser exercise_name partout dans la vue).
| <nav class="nav-menu"> | ||
| <a href="<?= BASE_URL ?>/resources" class="active">Ressources</a> | ||
| <a href="<?= BASE_URL ?>/exercises">Exercices</a> | ||
| <a href="<?= BASE_URL ?>/ia">IA</a> | ||
| </nav> |
There was a problem hiding this comment.
Le lien « IA » est ajouté dans la nav desktop, mais il n’est pas présent dans le menu burger (mobile). Pour éviter une navigation incohérente selon la taille d’écran, ajouter aussi l’entrée « IA » dans la liste du menu burger.
🚀 Déploiement en Production
✅ Auto-generated tests passed on test
Cette PR a été automatiquement créée par le pipeline CI/CD après validation des tests automatiquement générés sur la branche
test.📋 Checklist de déploiement :
Créée automatiquement par GitHub Actions