Gestion-des-Marches-RLA/CLAUDE.md

3.2 KiB

RLA API — Gestion des Marchés Tunisie Telecom Zone Sud

Stack cible : Node.js Express + Baserow + Docker (NAS 192.168.100.33) URL prod : https://rla.bolbol.tn Fichiers existants : index.html, config.js uniquement

Règles strictes (abonnement Pro limité en tokens)

  • Lire UNIQUEMENT les fichiers demandés explicitement
  • 1 tâche par session, pas de mélange de modules
  • Ne jamais réécrire ce qui fonctionne déjà
  • Réponses courtes et précises, sans blabla
  • Travailler fichier par fichier

MCP disponibles

Architecture frontend (index.html)

  • Fichier unique SPA — HTML + CSS + JS inline
  • API REST : /api/auth/login, /api/marches, /api/stats, /api/pilotage-proactif, /api/pipeline, /api/users, /api/logs, /api/export/:format
  • JWT stocké en localStorage (rla_jwt)
  • Thème persisté en localStorage (rla_theme)
  • Rôles : user (lecture, régions restreintes) · admin (pipeline) · superadmin (users, logs, exports)

Champs API normalisés via normalizeMarche(r)

Appeler normalizeMarche(r) à la réception — ensuite utiliser uniquement :

  • r.id_marche, r.region, r.taux_phy (number), r.tot_marche (number), r.date_debut, r.date_fin, r.observation (string)

Régions Zone Sud — source unique

Défini dans CONFIG.ALL_REGIONS (config.js). Ne pas dupliquer dans le HTML. Accès via la variable globale ALL_REGIONS (initialisée depuis CONFIG).

Changelog v4 — 2026-04-18

Bugs corrigés

  • logo-TT.png / Nabil.Derouiche.jpg absents → remplacés par logo-RLA.svg + avatar initiales
  • Thème par défaut : loadTheme() utilise désormais CONFIG.DEFAULT_THEME (plus d'incohérence avec config.js)
  • showSlide() : active uniquement les btn-slide-N, pas les boutons export (ancien bug d'index)
  • Filtre entrepreneur "En Service" : se réinitialise quand la région change (onServiceRegionChange)
  • Variable const now inutilisée supprimée

Améliorations

  • normalizeMarche() : préprocesseur centralisé des champs API multi-noms
  • ALL_REGIONS centralisé dans config.js, injecté partout via buildRegionOptions()
  • 2 graphiques région dans Vue Générale : avancement moyen + marchés actifs par région (bar charts)
  • Taille de page configurable : sélecteur 10/25/50/100 dans la pagination
  • Icônes de tri actives : fa-sort-up / fa-sort-down + classe CSS sur colonne active
  • Filtres période sur liste Marchés (date début / date fin) + bouton reset
  • Filtre région + état dans slide Pilotage Proactif
  • Modal édition utilisateur : modifier rôle, région, mot de passe (PATCH /api/users/:id)
  • Toast de confirmation pour suppression utilisateur (remplace confirm() natif)
  • Gestion session expirée : 401 → toast warning + déconnexion automatique après 1,5s
  • Titre onglet dynamique : ⚠️ N alertes — Marchés RLA si alertes actives
  • Toast unifié (error / success / warning) remplace errorToast mono-usage
  • Footer : avatar initiales SVG remplace image absente
  • Touche Escape ferme le modal édition