- Introduced `ApiErrorTranslator` to normalize and translate API error messages, providing clearer feedback in French. - Updated all Filament pages (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer) to utilize the new error translation mechanism, improving user experience during API interactions. - Added validation for required fields before API calls, ensuring users receive immediate feedback when mandatory inputs are missing. - Implemented tracking properties to distinguish between "never searched" and "searched without results," enhancing the user interface. - Removed the obsolete `$results` property from the Articles page and added a new `$barcode` property to align with API requirements. - Updated documentation to reflect changes in API behavior and error handling, including new metadata returned by the `art_list` endpoint. - Added new tests to verify the functionality of the barcode handling and validation logic.
5.4 KiB
5.4 KiB
Progress
Dernière mise à jour : 2026-02-23
Ce qui fonctionne
- Projet Laravel 12 initialisé (livewire-starter-kit)
- Livewire 4 + Flux UI Free v2 installés
- Fortify installé (authentification existante, non utilisée par Filament)
- Documentation API rédigée avec accents (
documentation/documentation_api_logistics.md) - Memory bank créé et structuré (
memory-bank/,.cursor/rules/memory-bank.mdc) - Configuration API Logistics (
.env,config/logistics.php) avec timeout et retry LogisticsServicecréé (app/Services/LogisticsService.php) avec 19 méthodes, timeout, retry, gestion d'erreurLogisticsApiExceptioncréée (app/Exceptions/LogisticsApiException.php) avec messages français- Migration
api_request_logscréée - Filament v5.0.0 installé et configuré sans authentification
- 7 pages Filament créées : Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers
- 7 vues Blade associées dans
resources/views/filament/pages/ - Toggle Lecture/Ecriture sur toutes les pages entité (Articles, Documents, Journaux, Tiers, Divers)
- Page Documents : 9 endpoints couverts (7 lecture + 2 écriture)
- Page Divers : 3 endpoints couverts (2 lecture + 1 écriture non fonctionnel)
- Gestion d'erreur dans toutes les pages Filament (LogisticsApiException + Throwable)
- Logging des requêtes API réussies et échouées dans
api_request_logs - Système de design unifié : 10 composants Blade dans
resources/views/components/logistics/ - Convention de design documentée dans
.cursor/rules/design-system.mdc - Toutes les pages Filament utilisent les composants
x-logistics.* - Thème Filament personnalisé (
resources/css/filament/admin/theme.css) - Plugin
@tailwindcss/typographyactivé pour le rendu prose - Styles
.documentation-prosepersonnalisés pour le dark mode - TablesExplorer amélioré : selectTable, déduplication colonnes, filtre, badges de types
- Page Documentation avec rendu markdown stylisé et export PDF
- Connectivité API fonctionnelle (serveur
tse-10-test.esi.local) - Convention d'écriture avec accents français appliquée
- 84 tests Pest passent (205 assertions)
README.mdcréé- Formatage Pint validé
- CI GitHub Actions (lint + tests)
ApiErrorTranslatorcréé (app/Support/ApiErrorTranslator.php) : normalisation et traduction des erreurs API- Composant
error-banneramélioré (supportenl2brpour les explications) - Composant
json-blockamélioré (prop$searched+ état vide) - Badge de comptage corrigé (
count($data)au lieu de$metadata['rowcount']) - Validation des champs obligatoires sur toutes les pages API (messages en français)
- Propriétés de tracking (
$hasSearched, etc.) sur toutes les pages ApiErrorTranslatorintégré dans toutes les pages API (Articles, Documents, Divers, Journaux, Tiers, TablesExplorer)- 4 nouveaux fichiers de tests : ArticlesPageTest, JournauxPageTest, TiersPageTest, ApiErrorTranslatorTest
- Tests existants mis à jour (DiversPageTest, DocumentsPageTest) avec validation et tracking
- Investigation paramètre
results: sans effet surart_list(5 max) etthird_list(10 max), limite fixe côté serveur - Investigation paramètre
barcode: sans effet observable surart_list,searchreste obligatoire - Page Articles :
$resultssupprimé,$barcodeajouté, formulaire mis à jour - Documentation
art_listetthird_listcorrigée (métadonnées réelles, paramètres inefficaces documentés) - 2 nouveaux tests barcode dans ArticlesPageTest (envoi quand renseigné, omission quand vide)
Ce qui reste à faire
- Corriger le test pré-existant
FilamentDashboardTest > it displays project statistics - Vérifier le rendu visuel de toutes les pages avec de vraies données API
- Éventuellement : pagination / tri côté client pour les grands tableaux
- Éventuellement : page de consultation des logs API
Problèmes connus
- Le test
FilamentDashboardTest > it displays project statisticséchoue car le dashboard ne contient pas la section "Endpoints API" / "Tables accessibles" / "Pages Filament" / "Tests Pest". Le test a été créé avant la refonte du dashboard. - L'erreur
SQLSTATE[HY000] [1049] Unknown databasepeut apparaître lors decomposer updatesi la base n'est pas encore créée (scriptboost:update). Sans impact une fois la base créée. - L'API retourne chaque colonne en double dans
column_list. LeTablesExplorerdéduplique côté client. - Le paramètre
resultsn'a aucun effet surart_list(toujours 5 max) ni surthird_list(toujours 10 max). Limite fixe côté serveur. - Le paramètre
barcoden'a aucun effet observable surart_list. Le paramètresearchreste obligatoire même avecbarcode.
Métriques
- Tests : 124 passent, 1 en échec pré-existant
- Pages Filament : 7 (Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers)
- Composants Blade design system : 10
- Endpoints API couverts par LogisticsService : 19
- Endpoints accessibles depuis l'interface : 19 (dont 2 non fonctionnels)
- Migrations : 5 (users, cache, jobs, two_factor, api_request_logs)
- Règles Cursor : 4 (laravel-boost, memory-bank, design-system, update-documentation)
- Classes support : 1 (ApiErrorTranslator)