feat(catalog) : M7 — page liste /admin/storages (ERP-216) #168

Open
tristan wants to merge 1 commits from feat/erp-216-storages-list-page into develop
Owner

Page d'entrée du répertoire stockage (admin-only), miroir front de M6 /admin/products.

Contenu

  • Route /admin/storages (shell admin), gate page sur catalog.storages.view.
  • Liste paginée usePaginatedList<Storage>({ url: '/storages' }) + MalioDataTable — colonnes Nom (displayName, RG-7.05) et Site (formaté « Nom (Code) », miroir de l'export back).
  • Bouton + Ajouter (visible si catalog.storages.manage) → /admin/storages/new ; clic ligne → /admin/storages/{id}/edit.
  • Bouton ExporterGET /api/storages/export.xlsx via useApi() (blob), filtres actifs propagés.
  • Drawer Filtrer : recherche (numéro), type (storageTypeId), état (state), sites (siteId[], OR). État brouillon→appliqué, badge compteur, 100 % local (jamais dans l'URL, règle n°6).
  • Item sidebar « Catalogue stockages » placé juste sous « Catalogue produits ».

Fichiers

  • frontend/modules/catalog/types/storage.ts (type Storage, contrat ERP-215)
  • frontend/modules/catalog/pages/admin/storages/index.vue
  • frontend/modules/catalog/pages/__tests__/storagesIndex.spec.ts (13 tests)
  • frontend/i18n/locales/fr.json (bloc admin.storages.* + label sidebar)
  • config/sidebar.php (placement de l'item)

Vérifications

  • make nuxt-test : (colonnes mappées sur le JSON réel § 4.0.bis)
  • Suite back PHPUnit (hook pre-commit) : 940 tests

Note

Colonnes non triables côté client : le StorageProvider applique un tri fixe et n'expose aucun OrderFilter (identique à /admin/products). À cadrer côté back si un vrai tri par colonne est souhaité.

Page d'entrée du répertoire stockage (admin-only), miroir front de M6 `/admin/products`. ## Contenu - Route `/admin/storages` (shell admin), gate page sur `catalog.storages.view`. - Liste paginée `usePaginatedList<Storage>({ url: '/storages' })` + `MalioDataTable` — colonnes **Nom** (`displayName`, RG-7.05) et **Site** (formaté « Nom (Code) », miroir de l'export back). - Bouton **+ Ajouter** (visible si `catalog.storages.manage`) → `/admin/storages/new` ; clic ligne → `/admin/storages/{id}/edit`. - Bouton **Exporter** → `GET /api/storages/export.xlsx` via `useApi()` (blob), filtres actifs propagés. - Drawer **Filtrer** : recherche (numéro), type (`storageTypeId`), état (`state`), sites (`siteId[]`, OR). État brouillon→appliqué, badge compteur, 100 % local (jamais dans l'URL, règle n°6). - Item sidebar « **Catalogue stockages** » placé juste sous « Catalogue produits ». ## Fichiers - `frontend/modules/catalog/types/storage.ts` (type `Storage`, contrat ERP-215) - `frontend/modules/catalog/pages/admin/storages/index.vue` - `frontend/modules/catalog/pages/__tests__/storagesIndex.spec.ts` (13 tests) - `frontend/i18n/locales/fr.json` (bloc `admin.storages.*` + label sidebar) - `config/sidebar.php` (placement de l'item) ## Vérifications - `make nuxt-test` : ✅ (colonnes mappées sur le JSON réel § 4.0.bis) - Suite back PHPUnit (hook pre-commit) : ✅ 940 tests ## Note Colonnes non triables côté client : le `StorageProvider` applique un tri fixe et n'expose aucun `OrderFilter` (identique à `/admin/products`). À cadrer côté back si un vrai tri par colonne est souhaité.
tristan added the type/featfrontM7-Stockage labels 2026-06-30 09:16:55 +00:00
tristan added 1 commit 2026-06-30 09:16:56 +00:00
feat(catalog) : M7 — page liste des stockages /admin/storages (ERP-216)
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 55s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m54s
fd6b7e4c79
- Page /admin/storages (MalioDataTable + usePaginatedList), colonnes Nom (displayName, RG-7.05) et Site, gate catalog.storages.view
- Bouton Ajouter (catalog.storages.manage) → /admin/storages/new, clic ligne → /admin/storages/{id}/edit
- Export XLSX via useApi() et drawer de filtres (search, type, état, sites), état 100 % local
- Type Storage, libellés i18n, item sidebar « Catalogue stockages » sous Catalogue produits
- Tests Vitest de la page (mapping colonnes, gates, navigation, export, filtres)
Some checks are pending
Pull Request — Quality gate / Frontend (lint + Vitest + build) (pull_request) Successful in 55s
Pull Request — Quality gate / Backend (PHP CS + PHPUnit) (pull_request) Successful in 3m54s
This pull request can be merged automatically.
You are not authorized to merge this pull request.
View command line instructions

Checkout

From your project repository, check out a new branch and test the changes.
git fetch -u origin feat/erp-216-storages-list-page:feat/erp-216-storages-list-page
git checkout feat/erp-216-storages-list-page
Sign in to join this conversation.