# Changelog ## [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 ```bash 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 ```bash 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.