5.6 KiB
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
- Table
API
src/api/perturbations.js: Fonctions pour interagir avec SupabasegetAllPerturbations(): Récupère toutes les perturbationsgetPerturbationsGroupedByHoraire(): Groupe les perturbations par horairegetPerturbationById(id): Récupère une perturbation spécifiquecreatePerturbation(payload, modificationsParcours): Crée une nouvelle perturbationupdatePerturbation(id, payload, modificationsParcours): Met à jour une perturbationdeletePerturbation(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 perturbationssrc/pages/perturbations/CreerPerturbation.js: Page de création en 2 étapessrc/pages/perturbations/ModifierPerturbation.js: Page de modificationsrc/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
- Retard : Le train circule avec un retard (en minutes)
- Suppression : Le train ne circule pas
- 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
- Rechercher un horaire par numéro de train, gare ou ligne
- Sélectionner l'horaire à perturber
- Visualiser les détails de l'horaire
- Cliquer sur "Suivant"
Étape 2 : Définition de la perturbation
- Choisir le type de perturbation (retard, suppression, modification)
- Renseigner les détails selon le type :
- Retard : Durée en minutes
- Suppression/Modification : Train de substitution (optionnel)
- Indiquer la cause de la perturbation
- Définir la période de validité
- Ajouter des notes internes (optionnel)
- Visualiser l'aperçu du parcours dans le panneau de droite
- 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'actionwcs-input: Champs de saisiewcs-select: Sélecteurs déroulantswcs-textarea: Zones de textewcs-checkbox: Cases à cocherwcs-radio: Boutons radiowcs-badge: Badges de statut et typewcs-accordion: Accordéon pour grouper les perturbationswcs-card: Cartes pour afficher les détailswcs-message: Messages d'information/erreurwcs-spinner: Indicateurs de chargementwcs-mat-icon: Icônes Material Design
Améliorations futures possibles
-
Modifications de parcours détaillées :
- Interface pour ajouter/supprimer des gares du parcours
- Modification des horaires gare par gare
-
Notifications :
- Envoi de notifications aux utilisateurs concernés
- Intégration avec un système de messagerie
-
Historique :
- Suivi des modifications des perturbations
- Archivage des perturbations passées
-
Statistiques :
- Tableau de bord des perturbations
- Analyses par cause, type, ligne, etc.
-
Import/Export :
- Import de perturbations depuis un fichier CSV
- Export des perturbations pour reporting
-
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.