6.2 KiB
6.2 KiB
Changelog
[1.8.1] - 2026-03-05
Ajouts
- Composant DataTable generique : nouveau composant
DataTable.vue+ composableuseDataTable.tsavec 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,TypeMachineProductRequirementsont supprimees avec leurs repositories et state processors. Les champs personnalises machines sont desormais lies directement a chaque machine (relationCustomField → 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
MachineSkeletonControllerparMachineStructureControlleravec 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\Groupsobsolete dansModelType(remplace parAttribute\Groupspour Symfony 8) + groupes de serialisation manquants (product:read,composant:read,piece:read). - Fix import
Serializer\Annotation\Groups→Attribute\GroupsdansProfile. - Fix filtre
SearchFilter:partial→ipartialsurComment.entityNameetDocument.name/Document.filenamepour 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}/fileet/api/documents/{id}/downloadservent 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-pdfpour 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 :
fileUrletdownloadUrltoujours exposes dans l'API (meme sanspathdans le groupe de serialisation). - Fix recursion infinie dans
DocumentNormalizer(getSupportedTypesretournefalsepour desactiver le cache). - Fix edition de squelettes machines :
deserialize: false+validate: falsesur 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.