Commit Graph

7 Commits

Author SHA1 Message Date
Nabil Derouiche ba77ef8240 refonte: style HF, ticker alertes, sidebar Claude, cards KPI
- Typographie Inter, fond #f9fafb, couleur primaire #2563eb
- Sidebar toggle ⊞ style Claude.ai, état persisté localStorage
- Ticker alertes critiques CSS pur, vitesse dynamique
- Cards KPI icône à gauche, grid 4 colonnes responsive
- Badges pill #fee2e2/#fef3c7/#dcfce7 sur toutes les tables
- Search bar full-width pour Marchés et Pipeline AO
- Hover tables #f1f5f9, padding 12×16px, shadows subtiles

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-05-30 12:08:00 +01:00
Nabil Derouiche 0a0ffc31cf feat: intégration table 872 — Pipeline AO enrichi + Modernisation succession
1. routes/pipeline.js — enrichissement AO
   - Phase calculée (Préparation/Ouvert/Dépouillé/Évaluation/Attribué)
   - Jours restants avant date-limite
   - Régions avec couleurs config
   - Estimation totale agrégée

2. routes/modernisation.js (nouveau)
   - Croise table 856 (nature Modernisation) avec table 872 (pipeline)
   - Jointure par région
   - Retourne actuel + suivant(s) par région

3. server.js — route /api/modernisation (admin+)

4. index.html
   - Slide 6 Pipeline AO : 8 colonnes, phases badges, région tags, jours alerte
   - Slide 4 Par Région : bloc "AO en lancement" sous chaque carte région
   - Slide 9 Modernisation (nouveau) : vue chaîne actuel → suivant par région
   - Nav : bouton Modernisation (admin+)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 10:59:10 +01:00
Nabil Derouiche 7ca0eccb96 feat: ajouter region_csc à toutes les références marchés
Implémente buildRef(r) dans calc.js :
  ref = id_marche + ' - ' + region_csc  (ex: AO 58/2024 : Lot01 - ULS Gabes)

Propagé dans :
- services/calc.js       → champ ref de normalizeMarche()
- services/export-xlsx.js → toutes les cellules référence
- routes/export.js        → PPTX + DOCX (3 occurrences)
- index.html              → normalizeMarche() champ id_marche

export-pdf.js déjà couvert via r.ref (utilise normalizeMarche)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 10:40:07 +01:00
Nabil Derouiche 2074893978 feat: Vue Générale — synthèse exécutive complète
- Phrase de situation dynamique (actifs, avancement moyen, alertes)
- 3 blocs statut colorés : Critiques / Attention / Dans les délais
- Jauges d'avancement par région (CSS, couleurs config.js)
- Table complète de TOUS les marchés en alerte par ordre de priorité
  avec numéro de priorité, délai coloré rouge/orange
- Suppression donut chart, bar charts et alertes-preview limités
- Suppression Chart.js (plus nécessaire)

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-19 10:17:54 +01:00
Nabil Derouiche f5a8e9a14b feat: v4 — améliorations complètes UX/bugs/architecture
Bugs corrigés :
- Remplace logo-TT.png et photo absents par logo-RLA.svg + avatar initiales
- Thème par défaut synchronisé avec CONFIG.DEFAULT_THEME
- showSlide() ne cible plus que les btn-slide-N (fix index des boutons export)
- Filtre entrepreneur "En Service" se réinitialise au changement de région
- Suppression variable `const now` inutilisée

Améliorations :
- normalizeMarche() : préprocesseur unifié des champs API multi-noms
- ALL_REGIONS centralisé dans config.js, buildRegionOptions() partout
- 2 bar charts région dans Vue Générale (avancement moyen + nb marchés)
- Taille de page configurable 10/25/50/100
- Icônes de tri actives (fa-sort-up/down + classe CSS)
- Filtres période (date) sur liste Marchés + bouton reset
- Filtres région + état dans Pilotage Proactif
- Modal édition utilisateur (rôle, région, mot de passe)
- Toast confirmation suppression utilisateur (remplace confirm natif)
- Gestion session expirée : 401 → toast + déconnexion auto
- Titre onglet dynamique avec badge alertes
- Toast unifié error/success/warning
- Touche Escape ferme le modal

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-04-18 16:52:53 +01:00
Nabil Derouiche 8d901da125 feat: v3 — refonte thème + avancement physique + exports conformes cibles
- index.html: refonte complète thème dark gradient (top-header + slide-nav, 9 vues)
- calc.js: ajout resultatPhysique(), avancement physique partout
- routes/pilotage.js: catégories Normal/Sous Avancement/Dépassement/Non déterminé
- services/export-xlsx.js: rapport complet multi-feuilles (Situation + Pilotage)
- routes/export.js: XLSX/PPTX/DOCX — sortie unique complète Zone Sud
  - PPTX: 5 slides (couverture, synthèse, alertes, pilotage, par région)
  - DOCX: rapport structuré (couverture, KPIs, alertes, par région, pilotage)
- services/export-pdf.js: colonnes avancement physique uniquement

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-13 19:45:53 +01:00
Nabil Derouiche 88a0dbe6d2 feat: RLA API v1.0.0 — API complète + exports + thème McKinsey
- 9 endpoints métier : synthese, alertes, en-service, en-cours,
  par-region, clotures, pilotage-proactif, matrice-risque
- Exports PDF (tous rôles) / XLSX PPTX DOCX (superadmin)
- services/calc.js : helpers normalisés partagés
- services/export-pdf.js : PDF async PDFKit par vue
- Thème McKinsey (#1C2B4B / bleu pétrole / gris sobre)
- Boutons XLSX/DOCX front (superadmin uniquement)
- BASEROW_API_URL → https://baserow.bolbol.tn/api/
- dotenv override: true

Co-Authored-By: Claude Sonnet 4.6 <noreply@anthropic.com>
2026-03-12 23:47:10 +01:00