- Introduced new endpoints for creating and modifying articles (`art_add`, `art_mod`) and tiers (`third_add`, `third_mod`), allowing users to manage these entities effectively. - Updated the Articles and Tiers pages to include forms for adding and modifying records, complete with parameter tables for clear guidance on required inputs. - Enhanced the API documentation to include detailed descriptions, examples, and metadata for the new endpoints, improving usability and understanding for developers. - Created a new rule for writing conventions with French accents to ensure consistency across the project. - Updated existing documentation to reflect structural changes and added a summary table for CRUD operations. - Added tests to verify the functionality of the new features and ensure robust error handling.
7.9 KiB
7.9 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 23 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 Articles : 4 endpoints couverts (2 lecture + 2 écriture : art_add, art_mod)
- Page Tiers : 4 endpoints couverts (2 lecture + 2 écriture : third_add, third_mod)
- Page Divers : 3 endpoints couverts (2 lecture + 1 écriture fonctionnel en MODE=1 Restock)
- Page Journaux : 1 endpoint couvert (1 lecture, aucun endpoint d'écriture disponible via l'API)
- 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é : 11 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
- Règle Cursor
.cursor/rules/accents.mdccréée pour formaliser la convention des accents 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- 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) - Investigation complète des 9 endpoints Documents (appels API réels, structures de réponse, formats)
- Document_GetPDF reclassé comme fonctionnel (LAYOUT numérique en string, ex: "1")
- Format de date YYYY-MM-DD confirmé et documenté pour tous les endpoints avec paramètre date
- Codes paydelay et paymode documentés via codes_list
- Paramètre
resultsajouté à document_list (fonctionne, défaut ~108) - Investigation complète des 2 endpoints Tiers et 3 endpoints Divers (appels API réels)
custom_geninv_updatestockreclassé comme FONCTIONNEL (MODE=1 Restock)- Composant
<x-logistics.param-table>créé : tableau de référence des paramètres API réutilisable - Tableaux de paramètres ajoutés sous chaque endpoint de toutes les pages
- Investigation CRUD : 4 endpoints d'écriture découverts (
art_add,art_mod,third_add,third_mod), 6 confirmés inexistants (art_del, third_del, jnl_add/mod/del, document_del) - 4 nouvelles méthodes dans LogisticsService :
artAdd(),artMod(),thirdAdd(),thirdMod() - Page Articles : mode écriture implémenté avec formulaires art_add et art_mod, tableaux de paramètres, blocs JSON de résultat
- Page Tiers : mode écriture implémenté avec formulaires third_add et third_mod, tableaux de paramètres, blocs JSON de résultat
- Documentation section 7 complète : 7 endpoints d'écriture documentés avec paramètres, métadonnées, exemples requête/réponse (succès + erreur), remarques
- Tableau récapitulatif CRUD en introduction de la section 7 (par page)
- DocumentationTest corrigé : ancres mises à jour, assertions ajoutées pour 5 nouveaux endpoints
- 6 nouveaux tests LogisticsServiceTest : documentAdd, documentMod, artAdd, artMod, thirdAdd, thirdMod
- 7 nouveaux tests ArticlesPageTest : art_add, art_mod (succès, validation, erreurs)
- 6 nouveaux tests TiersPageTest : third_add, third_mod (succès, validation, erreurs)
- Règle update-documentation.mdc mise à jour : structure corrigée (sections 6/7/8), section "Endpoints non fonctionnels" supprimée
Ce qui reste à faire
- Corriger les tests pré-existants
FilamentDashboardTest(2 tests en échec) - 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
- 2 tests
FilamentDashboardTestéchouent car le dashboard ne contient pas les sections attendues. Tests créés 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. - 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). En revanche,resultsfonctionne surdocument_listetjnl_list. - Le paramètre
barcoden'a aucun effet observable surart_list. Le paramètresearchreste obligatoire même avecbarcode. - La colonne
custnamen'existe pas dansthird_list. Le nom du tiers est dans la colonnename. third_GetArtHistoryretourne l'intégralité de l'historique sans pagination.custom_geninv_updatestockMODE=0 (Inventaire) dépend de la configuration des journaux KI du dossier.third_addest très permissif : un body vide crée un tiers avec un ID auto-généré. Risque de fiches vides.- Aucun endpoint de suppression disponible via l'API (art_del, third_del, document_del = HTTP 404).
Métriques
- Tests : ~166 (estimation après ajout de 19 nouveaux tests)
- Pages Filament : 7 (Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers)
- Composants Blade design system : 11
- Endpoints API couverts par LogisticsService : 23 (16 lecture + 7 écriture)
- Endpoints accessibles depuis l'interface : 23
- Migrations : 5 (users, cache, jobs, two_factor, api_request_logs)
- Règles Cursor : 5 (laravel-boost, memory-bank, design-system, update-documentation, accents)
- Classes support : 1 (ApiErrorTranslator)