Files
Inventory/CHANGELOG.md
2026-03-05 17:36:37 +01:00

6.2 KiB

Changelog

[1.8.1] - 2026-03-05

Ajouts

  • Composant DataTable generique : nouveau composant DataTable.vue + composable useDataTable.ts avec tri, recherche, pagination et filtres server-side. Toutes les pages catalogue (composants, pieces, produits, documents, constructeurs, commentaires, journal d'audit, admin) migrees vers ce composant partage.
  • Messages d'erreur humanises : les erreurs backend (violations de contraintes, erreurs serveur) sont desormais traduites en messages comprehensibles pour l'utilisateur final (errorMessages.ts).
  • Icones Lucide dans la navbar : reorganisation des groupes de navigation et ajout d'icones pour chaque section.
  • Modal d'ajout d'entites aux machines (AddEntityToMachineModal.vue) : ajout direct de composants, pieces et produits depuis la fiche machine.
  • Filtres SearchFilter ipartial sur les noms de types de modeles et commentaires cote API.

Refactoring

  • Suppression du systeme TypeMachine (squelettes machines) : les entites TypeMachine, TypeMachineComponentRequirement, TypeMachinePieceRequirement, TypeMachineProductRequirement sont supprimees avec leurs repositories et state processors. Les champs personnalises machines sont desormais lies directement a chaque machine (relation CustomField → Machine).
  • Suppression des pages squelettes machines : pages /machine-skeleton, /type/[id], /type/edit/[id] et tous les composants associes (TypeEditForm, MachineSkeletonSummary, MachineCreatePreview, selectors de requirements, useMachineTypesApi, useMachineSkeletonEditor, useMachineCreateSelections, useMachineCreatePreview).
  • Simplification de la creation de machines : plus besoin de selectionner un squelette, ajout direct de composants/pieces/produits.
  • Refactoring MachineStructureController : remplacement de MachineSkeletonController par MachineStructureController avec gestion directe de la structure machine.
  • Migration de toutes les tables vers DataTable : suppression du code de tableau duplique dans chaque page au profit du composant generique.

Corrections

  • Fix affichage categorie sur les pages edit : les categories (produit, composant, piece) s'affichent correctement sur les pages d'edition au lieu de "Categorie inconnue". Cause : import Serializer\Annotation\Groups obsolete dans ModelType (remplace par Attribute\Groups pour Symfony 8) + groupes de serialisation manquants (product:read, composant:read, piece:read).
  • Fix import Serializer\Annotation\GroupsAttribute\Groups dans Profile.
  • Fix filtre SearchFilter : partialipartial sur Comment.entityName et Document.name/Document.filename pour recherche insensible a la casse.

Migration requise

docker compose exec web php bin/console doctrine:migrations:migrate

[1.8.0] - 2026-03-03

Ajouts

  • Stockage documents sur disque : les documents sont desormais stockes en fichiers sur le systeme de fichiers au lieu de Base64 en base de donnees. Les endpoints /api/documents/{id}/file et /api/documents/{id}/download servent les fichiers directement.
  • Commande de migration app:migrate-documents-to-filesystem : migre les documents existants (Base64 → fichiers) avec dry-run, batch-size et limit.
  • Pagination serveur sur la page Documents : recherche, tri (date/nom/taille), filtre par rattachement (site/machine/composant/piece/produit), selecteur par page (20/50/100).
  • Compression PDF automatique : les documents PDF uploades sont compresses automatiquement via Ghostscript. Commande app:compress-pdf pour compresser les PDFs existants.
  • Nettoyage automatique des fichiers : suppression du fichier sur disque lors de la suppression d'un document.
  • Champ description sur les entites Piece et Composant, visible dans les catalogues avec popover au survol.

Corrections

  • Fix normalisation des documents : fileUrl et downloadUrl toujours exposes dans l'API (meme sans path dans le groupe de serialisation).
  • Fix recursion infinie dans DocumentNormalizer (getSupportedTypes retourne false pour desactiver le cache).
  • Fix edition de squelettes machines : deserialize: false + validate: false sur le PUT pour eviter le conflit UniqueEntity et l'interference du deserialiseur avec les collections writableLink.
  • Fix sites : ajout operation PATCH et correction migration contrainte.
  • Retrocompatibilite : le controleur de service gere transparentement les anciens documents Base64 et les nouveaux fichiers.

Migration requise

docker compose exec php php bin/console doctrine:migrations:migrate
docker compose exec php php bin/console app:migrate-documents-to-filesystem

[1.7.0] - 2026-03-02

Ajouts

  • Systeme de commentaires / tickets : les utilisateurs peuvent laisser des commentaires sur les fiches (machines, pieces, composants, produits, categories, squelettes). Les gestionnaires peuvent les resoudre.
  • Page commentaires (/comments) : vue centralisee avec filtres (statut, type d'entite), pagination et liens cliquables vers les fiches.
  • Badge notifications : compteur de commentaires ouverts sur l'avatar utilisateur et dans le menu profil (polling 60s).
  • Controle d'acces par roles : ROLE_ADMIN, ROLE_GESTIONNAIRE, ROLE_VIEWER avec permissions granulaires sur toutes les pages.
  • Badge de role dans le dropdown du profil utilisateur.
  • Journal d'audit etendu : audit logging sur machines, constructeurs, types de modeles, documents et conversions.
  • Commande app:init-profile-passwords : initialisation en masse des mots de passe et roles.

Corrections

  • Toggle switch pour les champs personnalises booleens (remplace les checkboxes).
  • Recherche constructeur : filtrage cote client au lieu d'appels API debounce.
  • Prevention des doublons de noms de constructeurs et de references de pieces (contraintes unique).
  • Fix creation de squelettes machines : pagination, duplication, champs personnalises.

Migration requise

docker compose exec php php bin/console doctrine:migrations:migrate
docker compose exec php php bin/console app:init-profile-passwords

[1.6.0] - 2026-02-12

  • Version initiale avec gestion du parc machines, pieces, composants, produits et categories.