Implement toggle for read/write mode across entity pages and enhance Documents and Divers functionality
- Added a toggle for switching between read and write modes on the Articles, Documents, Journaux, Tiers, and Divers pages, allowing users to access both data retrieval and data submission endpoints. - Updated the Documents page to cover all 9 documented endpoints, including 7 for reading and 2 for writing, with appropriate error handling. - Created a new Divers page to handle three endpoints: getserialnumber, codes_list, and custom_geninv_updatestock (the latter being non-functional). - Introduced new methods in LogisticsService for handling PDF generation and stock updates, with corresponding updates in the API documentation. - Improved form field components for better visual spacing in input fields.
This commit is contained in:
@@ -1,6 +1,6 @@
|
||||
# Active Context
|
||||
|
||||
Dernière mise à jour : 2026-02-20
|
||||
Dernière mise à jour : 2026-02-21
|
||||
|
||||
## Travail en cours
|
||||
|
||||
@@ -8,72 +8,68 @@ Aucun travail en cours.
|
||||
|
||||
## Décisions récentes
|
||||
|
||||
- **Convention d'écriture avec accents** (2026-02-20) : Tous les contenus rédigés en français (documentation, memory bank, règles Cursor) doivent utiliser les accents appropriés. La documentation API et le memory bank ont été entièrement réécrits avec les accents.
|
||||
- **Page Documentation ajoutée** (2026-02-20) : Nouvelle page Filament `Documentation` qui affiche le fichier markdown `documentation/documentation_api_logistics.md` converti en HTML via `Str::markdown()`. Actions d'en-tête : télécharger en PDF et ouvrir dans un nouvel onglet.
|
||||
- **Styles prose personnalisés** (2026-02-20) : Le thème CSS Filament (`theme.css`) a été enrichi avec des styles `.documentation-prose` dédiés au rendu du markdown en dark mode : hiérarchie de titres avec bordures, tableaux avec bordures et en-têtes stylisés, blocs de code avec fond sombre, code inline coloré, liens bleus, listes à marqueurs, séparateurs visibles.
|
||||
- **Plugin @tailwindcss/typography** (2026-02-20) : Ajout du plugin via `@plugin "@tailwindcss/typography"` dans le thème Filament pour activer les classes `prose`.
|
||||
- **Export PDF de la documentation** (2026-02-20) : Route `documentation.download-pdf` dans `routes/web.php` utilisant `barryvdh/laravel-dompdf` pour générer un PDF téléchargeable de la documentation.
|
||||
- **Règle update-documentation** (2026-02-20) : Nouvelle règle Cursor `.cursor/rules/update-documentation.mdc` définissant la procédure de mise à jour de la documentation quand l'utilisateur dit "update documentation".
|
||||
- **Toggle Lecture/Ecriture** (2026-02-21) : Toutes les pages entité (Articles, Documents, Journaux, Tiers, Divers) disposent d'un toggle en haut de page permettant de basculer entre le mode Lecture (endpoints de récupération de données) et le mode Ecriture (endpoints d'envoi de données). Les pages sans endpoint d'écriture (Articles, Journaux, Tiers) affichent un état vide en mode écriture. TablesExplorer ne reçoit pas ce toggle (page de structure).
|
||||
- **Endpoints Documents complétés** (2026-02-21) : La page Documents couvre désormais les 9 endpoints documentés : 7 en lecture (document_list, document_detail, Document_GetStatusList, Document_GetUnitPriceAndVat, Document_GetDueDate, Document_GetAttachListThumbnail, Document_GetPDF) et 2 en écriture (document_add, document_mod). Les champs tableaux (Artid, Qty, Saleprice, etc.) sont saisis en texte séparé par virgules et convertis en arrays PHP côté serveur via `splitCsv()`.
|
||||
- **Page Divers créée** (2026-02-21) : Nouvelle page Filament pour les endpoints divers : getserialnumber (lecture), codes_list (lecture), custom_geninv_updatestock (écriture, non fonctionnel).
|
||||
- **Endpoints non fonctionnels dans le service** (2026-02-21) : Les méthodes `documentGetPdf()` et `customGeninvUpdatestock()` ont été ajoutées au LogisticsService pour permettre le test de ces endpoints depuis l'interface, même s'ils sont non fonctionnels. Un bandeau d'avertissement ambre est affiché dans les formulaires correspondants.
|
||||
- **Padding gauche sur les inputs** (2026-02-21) : Ajout de `pl-3` dans le composant `form-field.blade.php` pour un meilleur espacement visuel du texte dans les champs de saisie.
|
||||
- **Convention d'écriture avec accents** (2026-02-20) : Tous les contenus rédigés en français (documentation, memory bank, règles Cursor) doivent utiliser les accents appropriés.
|
||||
- **Page Documentation ajoutée** (2026-02-20) : Nouvelle page Filament `Documentation` qui affiche le fichier markdown converti en HTML via `Str::markdown()`. Actions d'en-tête : télécharger en PDF et ouvrir dans un nouvel onglet.
|
||||
- **Système de design unifié** (2026-02-20) : 10 composants Blade réutilisables dans `resources/views/components/logistics/` avec convention documentée dans `.cursor/rules/design-system.mdc`.
|
||||
- **Filament v5 sans authentification** : Le `AdminPanelProvider` a été configuré sans `->login()` et sans `authMiddleware` pour permettre un accès libre au dashboard.
|
||||
- **Pages personnalisées plutôt que Resources** : L'application interroge une API externe, il n'y a pas de modèles Eloquent à gérer en CRUD.
|
||||
- **MySQL au lieu de SQLite** : Choix de l'utilisateur pour la base de données.
|
||||
- **LogisticsService** : Toutes les interactions avec l'API sont centralisées dans un seul service.
|
||||
- **Heroicon enum** : Filament v5 impose l'utilisation de `BackedEnum` pour `$navigationIcon` au lieu de strings.
|
||||
- **$view non-static** : Filament v5 a changé `$view` de static à instance property.
|
||||
- **Timeout et retry configurables** : Les paramètres sont dans `config/logistics.php` et pilotés par `.env`.
|
||||
- **LogisticsApiException** : Exception dédiée créée pour distinguer les erreurs de connexion des erreurs de requête génériques.
|
||||
- **Logging des échecs** : Les requêtes échouées sont aussi enregistrées dans `api_request_logs` avec `response_status = 0`.
|
||||
- **Système de design unifié** (2026-02-20) : Création de 10 composants Blade réutilisables dans `resources/views/components/logistics/` et d'une convention documentée dans `.cursor/rules/design-system.mdc`.
|
||||
- **Thème Filament personnalisé** (2026-02-20) : Création de `resources/css/filament/admin/theme.css` enregistré dans `AdminPanelProvider` via `->viteTheme()`.
|
||||
- **TablesExplorer amélioré** (2026-02-20) : Remplacement de `wire:then` (invalide) par une méthode `selectTable()`. Ajout de la déduplication des colonnes, d'un filtre de tables, de la propriété computed `filteredTables`, des labels de type (`getDataTypeLabel`), et du stockage des métadonnées.
|
||||
- **Connectivité API résolue** (2026-02-20) : Le serveur API est accessible via `http://tse-10-test.esi.local` (réseau interne). Le timeout a été augmenté à 300s dans `.env`.
|
||||
|
||||
## Changements récents (2026-02-20, session documentation)
|
||||
## Changements récents (2026-02-21, session endpoints manquants)
|
||||
|
||||
- Page Filament `Documentation` créée (`app/Filament/Pages/Documentation.php`).
|
||||
- Vue Blade `resources/views/filament/pages/documentation.blade.php` créée.
|
||||
- Documentation markdown réécrite intégralement avec accents français.
|
||||
- Styles CSS `.documentation-prose` ajoutés dans `theme.css` (titres, tableaux, code, liens, listes).
|
||||
- Plugin `@tailwindcss/typography` activé dans le thème Filament.
|
||||
- Route PDF (`documentation.download-pdf`) ajoutée dans `routes/web.php`.
|
||||
- Template PDF (`resources/views/pdf/documentation.blade.php`) créé.
|
||||
- 5 tests Pest créés pour la page Documentation (`tests/Feature/DocumentationTest.php`).
|
||||
- Règle Cursor `update-documentation.mdc` créée.
|
||||
- Memory bank entièrement réécrit avec accents français.
|
||||
- Total : 61 tests passent (165 assertions).
|
||||
- 2 méthodes ajoutées à `LogisticsService` : `documentGetPdf()`, `customGeninvUpdatestock()`.
|
||||
- Page `Documents.php` réécrite avec 9 endpoints (7 lecture + 2 écriture), toggle Lecture/Ecriture, méthode `splitCsv()`.
|
||||
- Pages `Articles.php`, `Journaux.php`, `Tiers.php` : ajout de la propriété `$mode` et du toggle Lecture/Ecriture.
|
||||
- Page `Divers.php` créée avec 3 endpoints (getserialnumber, codes_list, custom_geninv_updatestock).
|
||||
- 7 vues Blade mises à jour ou créées : documents, articles, journaux, tiers, divers.
|
||||
- Composant `form-field.blade.php` : ajout de `pl-3`.
|
||||
- 23 nouveaux tests Pest : `DocumentsPageTest.php` (13 tests), `DiversPageTest.php` (8 tests), 2 tests ajoutés dans `LogisticsServiceTest.php`.
|
||||
- Documentation API mise à jour (références service pour les endpoints non fonctionnels).
|
||||
- Total : 84 tests passent (205 assertions), 1 test pré-existant en échec (FilamentDashboardTest > it displays project statistics).
|
||||
|
||||
## Historique
|
||||
|
||||
### 2026-02-20 (session documentation)
|
||||
|
||||
- Page Filament `Documentation` créée.
|
||||
- Documentation markdown réécrite intégralement avec accents français.
|
||||
- Styles CSS `.documentation-prose` ajoutés dans `theme.css`.
|
||||
- Plugin `@tailwindcss/typography` activé.
|
||||
- Route PDF + template PDF créés.
|
||||
- 5 tests Pest pour la page Documentation.
|
||||
- Règle Cursor `update-documentation.mdc` créée.
|
||||
- Memory bank réécrit avec accents français.
|
||||
|
||||
### 2026-02-20 (session design)
|
||||
|
||||
- 10 composants Blade créés dans `resources/views/components/logistics/`.
|
||||
- Convention de design documentée dans `.cursor/rules/design-system.mdc`.
|
||||
- 5 pages Filament refactorisées pour utiliser les composants du système de design.
|
||||
- `TablesExplorer.php` amélioré : `selectTable()`, déduplication, filtre, computed property, métadonnées, labels de types.
|
||||
- Thème Filament personnalisé créé (`resources/css/filament/admin/theme.css`).
|
||||
- `AdminPanelProvider.php` mis à jour avec `->viteTheme()`.
|
||||
- 6 tests Pest créés pour `TablesExplorer` (Livewire).
|
||||
- TablesExplorer amélioré.
|
||||
- Thème Filament personnalisé créé.
|
||||
|
||||
### 2026-02-20 (session robustesse)
|
||||
|
||||
- `LogisticsService` mis à jour : timeout, connectTimeout, retry, gestion d'erreur avec `LogisticsApiException`.
|
||||
- `LogisticsApiException` créée dans `app/Exceptions/`.
|
||||
- `config/logistics.php` étendu avec timeout et retry.
|
||||
- `.env` et `.env.example` complétés avec les nouvelles variables.
|
||||
- Les 5 pages Filament mises à jour pour attraper `LogisticsApiException`.
|
||||
- LogisticsService mis à jour : timeout, connectTimeout, retry, gestion d'erreur.
|
||||
- LogisticsApiException créée.
|
||||
- Tests passés de 8 à 12.
|
||||
|
||||
### 2026-02-19
|
||||
|
||||
- Installation de Filament v5.0.0 (31 packages ajoutés).
|
||||
- 5 pages Filament créées : TablesExplorer, Articles, Documents, Journaux, Tiers.
|
||||
- `LogisticsService` créé avec 17 endpoints.
|
||||
- Migration `api_request_logs` créée.
|
||||
- 8 tests Pest écrits et validés.
|
||||
- Installation de Filament v5.0.0.
|
||||
- 5 pages Filament créées.
|
||||
- LogisticsService créé avec 17 endpoints.
|
||||
- Migration api_request_logs créée.
|
||||
|
||||
## Prochaines étapes
|
||||
|
||||
- Corriger le test pré-existant `FilamentDashboardTest > it displays project statistics`.
|
||||
- Tester toutes les pages avec de vraies données API et vérifier le rendu visuel.
|
||||
- Éventuellement : ajouter des pages pour les endpoints d'écriture (document_add, document_mod).
|
||||
- Éventuellement : ajouter de la pagination ou du tri côté client pour les grands tableaux.
|
||||
- Éventuellement : ajouter une page de consultation des logs API.
|
||||
|
||||
Reference in New Issue
Block a user