Files
ferrovia-panel/docs/PERTURBATIONS_README.md
T
2026-08-25 01:23:13 +02:00

5.6 KiB

Fonctionnalité de Gestion des Perturbations

Vue d'ensemble

Cette fonctionnalité permet de créer, modifier et supprimer des perturbations affectant les horaires de trains. Elle comprend :

  • Une page principale listant les perturbations groupées par horaire dans un accordion
  • Une page de création de perturbation en 2 étapes
  • Une page de modification de perturbation existante
  • Un aperçu visuel du parcours avec la perturbation appliquée

Structure des fichiers

Base de données

  • supabase_perturbations_tables.sql : Schéma des tables pour les perturbations
    • Table perturbations : Stocke les perturbations principales
    • Table perturbations_modifications_parcours : Détails des modifications de parcours

API

  • src/api/perturbations.js : Fonctions pour interagir avec Supabase
    • getAllPerturbations() : Récupère toutes les perturbations
    • getPerturbationsGroupedByHoraire() : Groupe les perturbations par horaire
    • getPerturbationById(id) : Récupère une perturbation spécifique
    • createPerturbation(payload, modificationsParcours) : Crée une nouvelle perturbation
    • updatePerturbation(id, payload, modificationsParcours) : Met à jour une perturbation
    • deletePerturbation(id) : Supprime une perturbation (soft delete)
    • getPerturbationsByHoraire(horaireId) : Récupère les perturbations d'un horaire

Pages

  • src/pages/perturbations/Perturbations.js : Page principale avec la liste des perturbations
  • src/pages/perturbations/CreerPerturbation.js : Page de création en 2 étapes
  • src/pages/perturbations/ModifierPerturbation.js : Page de modification
  • src/pages/perturbations/Perturbations.css : Styles pour toutes les pages

Navigation

  • Ajout de l'item "Perturbations" dans src/components/nav-panel/NavPanel.js
  • Routes ajoutées dans src/pages/router/PanelRouter.js :
    • /perturbations : Liste des perturbations
    • /perturbations/creer : Création d'une perturbation
    • /perturbations/modifier/:id : Modification d'une perturbation

Types de perturbations

  1. Retard : Le train circule avec un retard (en minutes)
  2. Suppression : Le train ne circule pas
  3. Modification de parcours : Le parcours du train est modifié

Causes disponibles

  • Incident technique
  • Accident de personne
  • Conditions météorologiques
  • Travaux
  • Mouvement social
  • Intervention police
  • Affluence
  • Malveillance
  • Autre

Processus de création d'une perturbation

Étape 1 : Sélection de l'horaire

  1. Rechercher un horaire par numéro de train, gare ou ligne
  2. Sélectionner l'horaire à perturber
  3. Visualiser les détails de l'horaire
  4. Cliquer sur "Suivant"

Étape 2 : Définition de la perturbation

  1. Choisir le type de perturbation (retard, suppression, modification)
  2. Renseigner les détails selon le type :
    • Retard : Durée en minutes
    • Suppression/Modification : Train de substitution (optionnel)
  3. Indiquer la cause de la perturbation
  4. Définir la période de validité
  5. Ajouter des notes internes (optionnel)
  6. Visualiser l'aperçu du parcours dans le panneau de droite
  7. Cliquer sur "Créer la perturbation"

Fonctionnalités de la page principale

  • Recherche : Filtrer les perturbations par numéro de train, gare ou ligne
  • Accordion : Perturbations groupées par horaire
  • Actions :
    • Modifier une perturbation
    • Supprimer une perturbation
  • Badges de couleur :
    • 🟡 Orange : Retard
    • 🔴 Rouge : Suppression
    • 🔵 Bleu : Modification de parcours

Aperçu du parcours

L'aperçu du parcours affiche :

  • Toutes les gares du trajet
  • Les horaires d'arrivée et de départ
  • L'application de la perturbation :
    • Retard : Ajout du retard aux horaires (+XX')
    • Suppression : Message "Ce train sera supprimé"
    • Modification : Gares supprimées/ajoutées/modifiées avec badges de couleur

Installation de la base de données

Exécutez le script SQL dans Supabase :

# Dans le SQL Editor de Supabase
supabase_perturbations_tables.sql

Ce script créera :

  • La table perturbations
  • La table perturbations_modifications_parcours
  • Les index pour améliorer les performances
  • Les triggers pour la mise à jour automatique de updated_at

Composants WCS SNCF utilisés

  • wcs-button : Boutons d'action
  • wcs-input : Champs de saisie
  • wcs-select : Sélecteurs déroulants
  • wcs-textarea : Zones de texte
  • wcs-checkbox : Cases à cocher
  • wcs-radio : Boutons radio
  • wcs-badge : Badges de statut et type
  • wcs-accordion : Accordéon pour grouper les perturbations
  • wcs-card : Cartes pour afficher les détails
  • wcs-message : Messages d'information/erreur
  • wcs-spinner : Indicateurs de chargement
  • wcs-mat-icon : Icônes Material Design

Améliorations futures possibles

  1. Modifications de parcours détaillées :

    • Interface pour ajouter/supprimer des gares du parcours
    • Modification des horaires gare par gare
  2. Notifications :

    • Envoi de notifications aux utilisateurs concernés
    • Intégration avec un système de messagerie
  3. Historique :

    • Suivi des modifications des perturbations
    • Archivage des perturbations passées
  4. Statistiques :

    • Tableau de bord des perturbations
    • Analyses par cause, type, ligne, etc.
  5. Import/Export :

    • Import de perturbations depuis un fichier CSV
    • Export des perturbations pour reporting
  6. Récurrence :

    • Perturbations récurrentes (ex: travaux tous les week-ends)
    • Modèles de perturbations réutilisables

Support

Pour toute question ou problème, consultez la documentation du projet ou contactez l'équipe de développement.