- 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.
103 lines
7.9 KiB
Markdown
103 lines
7.9 KiB
Markdown
# Progress
|
|
|
|
Dernière mise à jour : 2026-02-23
|
|
|
|
## Ce qui fonctionne
|
|
|
|
- [x] Projet Laravel 12 initialisé (livewire-starter-kit)
|
|
- [x] Livewire 4 + Flux UI Free v2 installés
|
|
- [x] Fortify installé (authentification existante, non utilisée par Filament)
|
|
- [x] Documentation API rédigée avec accents (`documentation/documentation_api_logistics.md`)
|
|
- [x] Memory bank créé et structuré (`memory-bank/`, `.cursor/rules/memory-bank.mdc`)
|
|
- [x] Configuration API Logistics (`.env`, `config/logistics.php`) avec timeout et retry
|
|
- [x] `LogisticsService` créé (`app/Services/LogisticsService.php`) avec 23 méthodes, timeout, retry, gestion d'erreur
|
|
- [x] `LogisticsApiException` créée (`app/Exceptions/LogisticsApiException.php`) avec messages français
|
|
- [x] Migration `api_request_logs` créée
|
|
- [x] Filament v5.0.0 installé et configuré sans authentification
|
|
- [x] 7 pages Filament créées : Documentation, TablesExplorer, Articles, Documents, Journaux, Tiers, Divers
|
|
- [x] 7 vues Blade associées dans `resources/views/filament/pages/`
|
|
- [x] Toggle Lecture/Ecriture sur toutes les pages entité (Articles, Documents, Journaux, Tiers, Divers)
|
|
- [x] Page Documents : 9 endpoints couverts (7 lecture + 2 écriture)
|
|
- [x] Page Articles : 4 endpoints couverts (2 lecture + 2 écriture : art_add, art_mod)
|
|
- [x] Page Tiers : 4 endpoints couverts (2 lecture + 2 écriture : third_add, third_mod)
|
|
- [x] Page Divers : 3 endpoints couverts (2 lecture + 1 écriture fonctionnel en MODE=1 Restock)
|
|
- [x] Page Journaux : 1 endpoint couvert (1 lecture, aucun endpoint d'écriture disponible via l'API)
|
|
- [x] Gestion d'erreur dans toutes les pages Filament (LogisticsApiException + Throwable)
|
|
- [x] Logging des requêtes API réussies et échouées dans `api_request_logs`
|
|
- [x] Système de design unifié : 11 composants Blade dans `resources/views/components/logistics/`
|
|
- [x] Convention de design documentée dans `.cursor/rules/design-system.mdc`
|
|
- [x] Toutes les pages Filament utilisent les composants `x-logistics.*`
|
|
- [x] Thème Filament personnalisé (`resources/css/filament/admin/theme.css`)
|
|
- [x] Plugin `@tailwindcss/typography` activé pour le rendu prose
|
|
- [x] Styles `.documentation-prose` personnalisés pour le dark mode
|
|
- [x] TablesExplorer amélioré : selectTable, déduplication colonnes, filtre, badges de types
|
|
- [x] Page Documentation avec rendu markdown stylisé et export PDF
|
|
- [x] Connectivité API fonctionnelle (serveur `tse-10-test.esi.local`)
|
|
- [x] Convention d'écriture avec accents français appliquée
|
|
- [x] Règle Cursor `.cursor/rules/accents.mdc` créée pour formaliser la convention des accents
|
|
- [x] `README.md` créé
|
|
- [x] Formatage Pint validé
|
|
- [x] CI GitHub Actions (lint + tests)
|
|
- [x] `ApiErrorTranslator` créé (`app/Support/ApiErrorTranslator.php`) : normalisation et traduction des erreurs API
|
|
- [x] Composant `error-banner` amélioré (supporte `nl2br` pour les explications)
|
|
- [x] Composant `json-block` amélioré (prop `$searched` + état vide)
|
|
- [x] Badge de comptage corrigé (`count($data)` au lieu de `$metadata['rowcount']`)
|
|
- [x] Validation des champs obligatoires sur toutes les pages API (messages en français)
|
|
- [x] Propriétés de tracking (`$hasSearched`, etc.) sur toutes les pages
|
|
- [x] `ApiErrorTranslator` intégré dans toutes les pages API
|
|
- [x] Investigation paramètre `results` : sans effet sur `art_list` (5 max) et `third_list` (10 max), limite fixe côté serveur
|
|
- [x] Investigation paramètre `barcode` : sans effet observable sur `art_list`, `search` reste obligatoire
|
|
- [x] Page Articles : `$results` supprimé, `$barcode` ajouté, formulaire mis à jour
|
|
- [x] Documentation `art_list` et `third_list` corrigée (métadonnées réelles, paramètres inefficaces documentés)
|
|
- [x] Investigation complète des 9 endpoints Documents (appels API réels, structures de réponse, formats)
|
|
- [x] Document_GetPDF reclassé comme fonctionnel (LAYOUT numérique en string, ex: "1")
|
|
- [x] Format de date YYYY-MM-DD confirmé et documenté pour tous les endpoints avec paramètre date
|
|
- [x] Codes paydelay et paymode documentés via codes_list
|
|
- [x] Paramètre `results` ajouté à document_list (fonctionne, défaut ~108)
|
|
- [x] Investigation complète des 2 endpoints Tiers et 3 endpoints Divers (appels API réels)
|
|
- [x] `custom_geninv_updatestock` reclassé comme FONCTIONNEL (MODE=1 Restock)
|
|
- [x] Composant `<x-logistics.param-table>` créé : tableau de référence des paramètres API réutilisable
|
|
- [x] Tableaux de paramètres ajoutés sous chaque endpoint de toutes les pages
|
|
- [x] **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)
|
|
- [x] **4 nouvelles méthodes dans LogisticsService** : `artAdd()`, `artMod()`, `thirdAdd()`, `thirdMod()`
|
|
- [x] **Page Articles : mode écriture implémenté** avec formulaires art_add et art_mod, tableaux de paramètres, blocs JSON de résultat
|
|
- [x] **Page Tiers : mode écriture implémenté** avec formulaires third_add et third_mod, tableaux de paramètres, blocs JSON de résultat
|
|
- [x] **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
|
|
- [x] **Tableau récapitulatif CRUD** en introduction de la section 7 (par page)
|
|
- [x] **DocumentationTest corrigé** : ancres mises à jour, assertions ajoutées pour 5 nouveaux endpoints
|
|
- [x] **6 nouveaux tests LogisticsServiceTest** : documentAdd, documentMod, artAdd, artMod, thirdAdd, thirdMod
|
|
- [x] **7 nouveaux tests ArticlesPageTest** : art_add, art_mod (succès, validation, erreurs)
|
|
- [x] **6 nouveaux tests TiersPageTest** : third_add, third_mod (succès, validation, erreurs)
|
|
- [x] **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 database` peut apparaître lors de `composer update` si la base n'est pas encore créée.
|
|
- L'API retourne chaque colonne en double dans `column_list`. Le `TablesExplorer` déduplique côté client.
|
|
- Le paramètre `results` n'a aucun effet sur `art_list` (toujours 5 max) ni sur `third_list` (toujours 10 max). En revanche, `results` fonctionne sur `document_list` et `jnl_list`.
|
|
- Le paramètre `barcode` n'a aucun effet observable sur `art_list`. Le paramètre `search` reste obligatoire même avec `barcode`.
|
|
- La colonne `custname` n'existe pas dans `third_list`. Le nom du tiers est dans la colonne `name`.
|
|
- `third_GetArtHistory` retourne l'intégralité de l'historique sans pagination.
|
|
- `custom_geninv_updatestock` MODE=0 (Inventaire) dépend de la configuration des journaux KI du dossier.
|
|
- `third_add` est 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)
|