Matthieu
378026ebce
chore(frontend) : update submodule — add buttons repositioned
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 11:32:56 +01:00
Matthieu
ea2b813728
chore(frontend) : update submodule — product delete confirmation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 11:07:06 +01:00
Matthieu
20653b9046
docs(changelog) : add delete confirmation dialog entry
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 10:59:48 +01:00
Matthieu
c6deef6028
chore(frontend) : update submodule — delete confirmation dialog
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-06 10:59:10 +01:00
Matthieu
e922b14419
feat(api) : add /api/health endpoint for monitoring
...
- Returns status, version, timestamp, PHP version, DB latency and memory usage
- Accessible without authentication (PUBLIC_ACCESS)
- Returns 200 when healthy, 503 when degraded (DB down)
2026-03-06 09:51:09 +01:00
Matthieu
d16b042739
chore(frontend) : update submodule — changelog v1.8.1
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 17:39:07 +01:00
Matthieu
2b3c1fe08e
docs(changelog) : complete v1.8.1 changelog with all frontend changes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 17:36:37 +01:00
Matthieu
51248b7854
chore(release) : v1.8.1
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.8.1
2026-03-05 17:27:29 +01:00
Matthieu
0e11f4ad2d
refactor(api) : remove TypeMachine skeleton system, fix ModelType serialization
...
- Remove TypeMachine, TypeMachineComponentRequirement, TypeMachinePieceRequirement,
TypeMachineProductRequirement entities and related repositories/state processor
- Replace MachineSkeletonController with MachineStructureController
- Link CustomField directly to Machine instead of TypeMachine
- Add migration to drop TypeMachine tables and migrate custom fields to machines
- Fix ModelType serialization: Annotation\Groups → Attribute\Groups (Symfony 8 compat)
and add product:read, composant:read, piece:read groups for embedded category display
- Fix Profile: same Annotation → Attribute import
- Fix SearchFilter: partial → ipartial on Comment and Document
- Update frontend submodule (remove skeleton pages/components, simplify machine creation)
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-05 17:26:16 +01:00
Matthieu
f2539099bc
chore(frontend) : update submodule — DataTable global + filtres server-side
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:07:03 +01:00
Matthieu
e5dc60467e
feat(api) : ajout filtres SearchFilter ipartial sur noms de types et commentaires
...
- Piece : typePiece.name ipartial
- Composant : typeComposant.name ipartial
- Product : typeProduct.name ipartial + OrderFilter supplierPrice
- Comment : entityName partial + OrderFilter authorName, status
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 16:05:24 +01:00
Matthieu
fbc0372bd6
docs(readme) : comprehensive project documentation
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:49:35 +01:00
Matthieu
1483b0075b
chore(frontend) : update submodule — README
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:45:53 +01:00
Matthieu
74e88923dc
chore(frontend) : update submodule — README
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:38:19 +01:00
Matthieu
ef61d1a0d3
chore : remove obsolete docs and update submodule
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:10:40 +01:00
Matthieu
3f0fb0d5c2
chore : remove stale TODO.md and temp files
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:06:08 +01:00
Matthieu
dd1497beac
chore : bump v1.8.0, update changelog, gitignore and submodule
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-04 10:01:00 +01:00
Matthieu
7cd8772617
chore(frontend) : update submodule — navbar reorder and icons
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 15:31:36 +01:00
Matthieu
d89c97f0a0
feat(documents) : filesystem storage, server-side pagination and PDF compression
...
- Add DocumentStorageService for file-based storage (replaces Base64 in DB)
- Add DocumentServeController with /file and /download endpoints
- Add DocumentUploadProcessor using FormData + filesystem storage
- Add DocumentNormalizer exposing fileUrl/downloadUrl on all responses
- Add DocumentFileCleanupListener for automatic file deletion
- Add MigrateDocumentsToFilesystemCommand (Base64 → files, memory-safe)
- Add ApiFilter (SearchFilter, ExistsFilter, OrderFilter) on Document entity
- Add PdfCompressorService + refactor CompressPdfCommand for batch processing
- Fix TypeMachine PUT: deserialize=false + validate=false to prevent
UniqueEntity false positive and writableLink collection interference
- Update CHANGELOG for v1.8.0
- Update frontend submodule
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.8.0
2026-03-03 15:18:55 +01:00
Matthieu
7a5dd0b555
feat(skeleton) : add custom PUT processor and edit guard for linked machines
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-03 10:13:45 +01:00
Matthieu
44d69db560
chore(frontend) : update submodule — description field on catalog forms
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 17:35:57 +01:00
Matthieu
453065c9f0
feat(entities) : add description field to Piece and Composant
...
Add nullable TEXT description column to both pieces and composants
tables with corresponding Doctrine entity mappings, getters/setters
and serialization groups.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 17:35:37 +01:00
Matthieu
eb85323116
chore(frontend) : update submodule — fix site edit modal
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 16:33:34 +01:00
Matthieu
2dfa501a65
fix(sites) : add PATCH operation and fix migration constraint drop
...
Add Patch operation to Site entity (was only Put, causing 405 errors).
Fix migration to use ALTER TABLE DROP CONSTRAINT instead of DROP INDEX
for the piece name unique constraint.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 16:33:22 +01:00
Matthieu
c22f9dbf2b
chore(release) : bump version to 1.7.0
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.7.0
2026-03-02 14:36:58 +01:00
Matthieu
27a1b09d62
chore(frontend) : update submodule — comments system and constructeur fixes
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 14:06:31 +01:00
Matthieu
7bbb693924
feat(comments) : add comment entity, controller and migration
...
Create Comment entity with API Platform annotations (GET, PATCH, DELETE).
Add CommentController with POST (create), PATCH (resolve) and GET
(unresolved count) endpoints. Add migration for comments table and
piece reference unique index.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 14:06:25 +01:00
Matthieu
9661fd5d91
fix(entities) : add unique constraints for constructeur name and piece reference
...
Add UniqueEntity validation on Constructeur.name and Piece.reference.
Move unique DB constraint from piece name to piece reference column.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 14:06:19 +01:00
Matthieu
d9ab583879
chore(frontend) : update submodule — package-lock.json
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 10:02:17 +01:00
Matthieu
5d41bda997
fix(ui) : replace checkbox with toggle switch for boolean custom fields
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 09:56:56 +01:00
Matthieu
3d037083c6
feat(ui) : display role badge in profile dropdown
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-03-02 09:42:09 +01:00
Matthieu
a3e440c254
feat(permissions) : add role-based access control system
...
Backend:
- Add role hierarchy (ADMIN > GESTIONNAIRE > VIEWER > USER) in security.yaml
- Add password authentication on profile activation (SessionProfileController)
- Add SessionProfileAuthenticator with stateless API firewall
- Add ProfilePasswordHasher state processor for API Platform
- Add security annotations on all 18 API Platform entities
- Add denyAccessUnlessGranted on all 13 custom controllers
- Add AdminProfileController for profile/role management (/api/admin/profiles)
- Add InitProfilePasswordsCommand for initial admin setup
- Simplify SessionProfilesController to list-only (removed create/delete)
Frontend (submodule update):
- Add usePermissions composable (isAdmin, canEdit, canView, isGranted)
- Add password login modal on profiles page
- Add admin backoffice page for profile management
- Disable all form fields for ROLE_VIEWER across all edit/create pages
- Show navigation buttons for all roles, hide destructive actions for viewers
- Add readonly mode to ModelTypeForm and site/constructeur modals
- Guard /admin routes in middleware
- Configure Vite proxy for API requests
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-26 13:37:12 +01:00
Matthieu
adc44b99d3
fix(machines) : fix skeleton creation — pagination, duplication, custom fields
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.6.2
2026-02-18 10:40:09 +01:00
Matthieu
60afeb4cfd
chore(frontend) : update submodule — Playwright e2e setup
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-13 09:07:37 +01:00
Matthieu
02ff8b1a96
feat(audit) : extend audit logging to machines, constructeurs, model types, documents and conversions
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.6.1
2026-02-12 14:51:26 +01:00
Matthieu
2156df22c6
chore(release) : bump version to 1.6.0
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.6.0
2026-02-12 14:27:47 +01:00
Matthieu
cd2a3fac55
feat(categories) : add bidirectional piece/component category conversion
...
Backend service and controller for converting piece categories to component
categories (and vice-versa). Uses raw SQL in a transaction to preserve IDs
and transfer all related data (documents, custom fields, constructeurs).
Includes php-cs-fixer formatting pass on existing controllers/entities.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 14:27:07 +01:00
Matthieu
6300a3588a
chore(docker) : replace pgAdmin with Adminer for lighter DB management
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-12 12:10:52 +01:00
Matthieu
45213103e4
Merge branch 'develop' into master — fix documents OOM
2026-02-11 17:16:41 +01:00
Matthieu
91b8b424d6
fix(documents) : add serialization groups to prevent OOM on collection endpoint
...
The path field (base64 data URIs) is now excluded from GetCollection
via document:list group. Individual GET returns path via document:detail
group. Related entities expose id+name in document:list for attachment
display. Frontend lazy-loads path on download/preview click.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 17:16:27 +01:00
Matthieu
0d1c9277e5
Merge branch 'develop' into master — changelog page
2026-02-11 17:01:53 +01:00
Matthieu
db16d26103
chore(frontend) : update submodule — changelog page
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 17:01:45 +01:00
Matthieu
0eb64d0975
Merge branch 'develop' into master — v1.5.0
2026-02-11 16:51:22 +01:00
Matthieu
39e503ae18
chore(release) : bump version to 1.5.0
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
v1.5.0
2026-02-11 16:50:59 +01:00
Matthieu
70ed354c42
Merge branch 'fix/filtres-listes' into develop
2026-02-11 16:50:48 +01:00
Matthieu
ba98ae37f4
feat(entity) : auto-capitalize first letter of names on Composant and ModelType
...
Update setName() to use mb_strtoupper on the first character so that
category and component names always start with an uppercase letter.
Also update frontend submodule with URL state preservation and back
button improvements.
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 16:48:46 +01:00
Matthieu
906d39793f
fix(filters) : repair broken filters on catalog and document pages
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 15:33:20 +01:00
Matthieu
f970c1928d
fix(api) : cap pagination to 200 items/page to prevent OOM in production
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-11 11:11:09 +01:00
Matthieu
2a1d966b87
chore(frontend) : update submodule — smart cache on composables
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 09:18:50 +01:00
Matthieu
a393b62e9f
chore(frontend) : update submodule — Malio brand colors
...
Co-Authored-By: Claude Opus 4.6 <noreply@anthropic.com >
2026-02-10 09:06:30 +01:00